
:root{
  --bg:#f4f7fb;--panel:#fff;--ink:#172033;--muted:#657187;--line:#d9e0eb;
  --accent:#2d5bd1;--accent2:#153a98;--ok:#147a43;--warn:#9a5b00;--danger:#b42318;
  --water:#dceeff;--wood:#def4e3;--fire:#ffe2df;--earth:#f3ead7;--metal:#ececf4;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Yu Gothic UI","Yu Gothic",Meiryo,sans-serif;line-height:1.55}
.container{max-width:1180px;margin:0 auto;padding:24px}
.hero{background:linear-gradient(135deg,#173b97,#3e72e8);color:#fff;border-radius:22px;padding:28px 30px;box-shadow:0 16px 38px rgba(28,64,145,.20)}
.hero h1{margin:0 0 8px;font-size:clamp(25px,4vw,40px);letter-spacing:.03em}
.hero p{margin:0;opacity:.92}
.badge{display:inline-block;padding:4px 10px;border:1px solid rgba(255,255,255,.45);border-radius:999px;font-size:12px;margin-bottom:10px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:22px;margin-top:18px;box-shadow:0 8px 24px rgba(31,49,84,.06)}
.panel h2{margin:0 0 16px;font-size:20px}
.form-grid{display:grid;grid-template-columns:1.2fr 1fr 1.2fr auto;gap:14px;align-items:end}
label{display:block;font-weight:700;font-size:13px;margin-bottom:6px}
input,select,button{font:inherit}
input,select{width:100%;border:1px solid #bac5d6;border-radius:10px;padding:11px 12px;background:#fff;color:var(--ink)}
button{border:0;border-radius:11px;padding:12px 22px;font-weight:800;cursor:pointer}
.primary{background:var(--accent);color:#fff;box-shadow:0 6px 14px rgba(45,91,209,.25)}
.primary:hover{background:var(--accent2)}
.secondary{background:#eef3ff;color:#24459e}
.notice{margin-top:14px;padding:12px 14px;background:#fff8e7;border-left:4px solid #e9a321;border-radius:8px;font-size:13px;color:#684900}
.error{display:none;margin-top:12px;padding:11px 14px;background:#fff0ef;border:1px solid #f1b7b1;color:#8f1d13;border-radius:9px}
.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.summary-card{border:1px solid var(--line);border-radius:14px;padding:16px;background:#fbfcff}
.summary-card .kicker{font-size:12px;color:var(--muted);font-weight:800;letter-spacing:.08em}
.summary-card .main{font-size:24px;font-weight:900;margin:2px 0}
.summary-card .sub{font-size:13px;color:var(--muted)}
.plate-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.plate-card{border:1px solid var(--line);border-radius:16px;padding:16px;background:#fff}
.plate-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:12px}
.plate-head h3{margin:0;font-size:20px}.plate-meta{font-size:12px;color:var(--muted);text-align:right}
.board-wrap{position:relative;padding:25px 22px 20px}
.compass{position:absolute;font-weight:900;color:#26354e;font-size:12px}
.compass.s{top:0;left:50%;transform:translateX(-50%)}.compass.n{bottom:0;left:50%;transform:translateX(-50%)}
.compass.e{left:0;top:50%;transform:translateY(-50%)}.compass.w{right:0;top:50%;transform:translateY(-50%)}
.board{display:grid;grid-template-columns:repeat(3,1fr);border:2px solid #27344b;aspect-ratio:1/1;max-width:330px;margin:0 auto;background:#fff}
.palace{border:1px solid #7d8797;min-width:0;padding:7px 4px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative}
.palace.center{outline:3px solid #263f87;outline-offset:-4px}
.palace .dir{position:absolute;top:3px;left:5px;font-size:10px;font-weight:800;color:#556075}
.palace .num{font-size:clamp(24px,4vw,38px);font-weight:950;line-height:1}
.palace .name{font-size:12px;font-weight:800;margin-top:4px}
.palace .elem{font-size:10px;color:#596477}
.element-water{background:var(--water)}.element-wood{background:var(--wood)}.element-fire{background:var(--fire)}.element-earth{background:var(--earth)}.element-metal{background:var(--metal)}
.details-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.detail{border:1px solid var(--line);border-radius:12px;padding:14px;background:#fbfcfe}
.detail h3{margin:0 0 9px;font-size:15px}.detail dl{display:grid;grid-template-columns:130px 1fr;gap:5px 10px;margin:0;font-size:13px}.detail dt{color:var(--muted)}.detail dd{margin:0;font-weight:650}
.test-list{display:grid;gap:8px}.test{display:flex;gap:9px;align-items:flex-start;padding:9px 10px;border-radius:9px;background:#f7f9fc;font-size:13px}.test.ok{color:var(--ok)}.test.ng{color:var(--danger)}
small.foot{display:block;margin-top:15px;color:var(--muted)}
.method{font-size:13px;color:#46536a}.method strong{color:#1f2c42}
@media(max-width:900px){.form-grid{grid-template-columns:1fr 1fr}.plate-grid,.summary-grid{grid-template-columns:1fr}.details-grid{grid-template-columns:1fr}}
@media(max-width:520px){.container{padding:12px}.hero{padding:22px 18px;border-radius:16px}.panel{padding:16px}.form-grid{grid-template-columns:1fr}.board-wrap{padding-left:18px;padding-right:18px}.palace .name{font-size:10px}}
@media print{body{background:#fff}.container{max-width:none;padding:0}.hero{box-shadow:none}.panel{box-shadow:none;break-inside:avoid}.form-grid,.notice,.error,#testPanel{display:none}.plate-grid{grid-template-columns:repeat(3,1fr)} }

/* 第2段階 */
.input-pair{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.input-box{border:1px solid var(--line);border-radius:15px;padding:17px;background:#fbfcff}
.input-box h3{margin:0 0 13px;font-size:17px}
.compact-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:12px}
.input-actions{display:flex;gap:10px;align-items:center;justify-content:flex-end;margin-top:15px;flex-wrap:wrap}
.check-row{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:13px;font-weight:700;color:#46536a}
.check-row input{width:auto;accent-color:var(--accent)}
.identity-banner{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.identity-card{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:16px;padding:18px;background:linear-gradient(145deg,#fff,#f6f8fe)}
.identity-card::after{content:"";position:absolute;width:90px;height:90px;border-radius:50%;right:-34px;bottom:-44px;background:rgba(45,91,209,.08)}
.identity-card .label{font-size:12px;font-weight:900;letter-spacing:.08em;color:var(--muted)}
.identity-card .star{font-size:27px;font-weight:950;margin-top:3px}
.identity-card .caption{font-size:12px;color:var(--muted);margin-top:5px}
.status-box{margin-top:14px;border-radius:11px;padding:12px 14px;font-size:13px;font-weight:650}
.status-box.ok{background:#ecf8f0;border:1px solid #b8dfc6;color:#126536}
.status-box.warn{background:#fff7e7;border:1px solid #ead096;color:#735000}
.profile-meta{margin-top:12px;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.profile-meta div{border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px 12px;font-size:12px}
.profile-meta strong{display:block;color:#27344b;font-size:13px}
.legend{display:flex;gap:10px 16px;align-items:center;flex-wrap:wrap;margin:0 0 12px;font-size:12px;color:#46536a}
.legend-item{display:inline-flex;align-items:center;gap:7px}
.legend-mark{width:22px;height:17px;border-radius:4px;background:#fff}
.legend-mark.honmei{box-shadow:inset 0 0 0 4px #d09300}
.legend-mark.getsumei{box-shadow:inset 0 0 0 3px #7357bd}
.legend-mark.both{box-shadow:inset 0 0 0 4px #d09300, inset 0 0 0 7px #7357bd}
.palace.mark-honmei{box-shadow:inset 0 0 0 4px #d09300;z-index:1}
.palace.mark-getsumei{box-shadow:inset 0 0 0 3px #7357bd;z-index:1}
.palace.mark-both{box-shadow:inset 0 0 0 4px #d09300,inset 0 0 0 7px #7357bd;z-index:1}
.marker-tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}
.marker-tag{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800;background:#f3f5fa;border:1px solid var(--line)}
.marker-tag.honmei{border-color:#d4a83e;background:#fff9e8;color:#775100}
.marker-tag.getsumei{border-color:#a996db;background:#f5f1ff;color:#50368d}
.position-table-wrap{overflow-x:auto}
.position-table{width:100%;border-collapse:collapse;min-width:690px}
.position-table th,.position-table td{border:1px solid var(--line);padding:11px 12px;text-align:left;font-size:13px}
.position-table th{background:#edf3ff;color:#253b72;font-weight:900}
.position-table td strong{font-size:14px}
.step-note{padding:13px 15px;border-radius:10px;background:#eef4ff;border-left:4px solid var(--accent);font-size:13px;color:#334466}
@media(max-width:900px){.input-pair,.identity-banner{grid-template-columns:1fr}.profile-meta{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.compact-grid,.profile-meta{grid-template-columns:1fr}.input-actions{justify-content:stretch}.input-actions button{flex:1}.identity-card .star{font-size:23px}}
@media print{.input-pair,.input-actions,.check-row,#birthStatusHelp{display:none}.identity-banner{grid-template-columns:repeat(3,1fr)}}


/* 第3段階 */
.bad-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.bad-summary-card{border:1px solid #e2c4c0;border-radius:15px;padding:16px;background:linear-gradient(145deg,#fff,#fff7f5)}
.bad-summary-card h3{margin:0 0 10px;font-size:18px}
.bad-summary-card dl{display:grid;grid-template-columns:72px 1fr;gap:7px 8px;margin:0;font-size:13px}
.bad-summary-card dt{font-weight:900;color:#8f1d13}.bad-summary-card dd{margin:0;font-weight:750;color:#3f2b2a}
.bad-summary-card .none{color:var(--muted);font-weight:700}
.legend-separator{width:1px;height:22px;background:var(--line);margin:0 2px}
.legend-mark.goko{background:#8f1d13}.legend-mark.anken{background:#52213f}.legend-mark.ha{background:#c75c00}
.palace.has-bad::before{content:"";position:absolute;inset:0;background:rgba(180,35,24,.12);pointer-events:none;z-index:0}
.palace.has-bad>*{position:relative;z-index:1}
.palace.has-bad .num{transform:translateY(-5px)}
.palace.has-bad .name,.palace.has-bad .elem{transform:translateY(-5px)}
.bad-tags{position:absolute!important;z-index:3!important;left:3px;right:3px;bottom:3px;display:flex;gap:2px;justify-content:center;flex-wrap:wrap}
.bad-tag,.bad-pill{display:inline-flex;align-items:center;justify-content:center;border-radius:5px;padding:2px 5px;color:#fff;font-size:9px;font-weight:950;line-height:1.25;white-space:nowrap}
.bad-tag.goko,.bad-pill.goko{background:#8f1d13}.bad-tag.anken,.bad-pill.anken{background:#52213f}.bad-tag.ha,.bad-pill.ha{background:#c75c00}
.bad-pill{font-size:11px;padding:4px 7px;margin:1px 3px 1px 0}
.direction-status{font-size:12px;color:#46536a}.direction-status strong{color:#8f1d13}
.no-bad{color:#687386;font-size:12px}
.bad-table-wrap{overflow-x:auto}
.bad-table{width:100%;border-collapse:collapse;min-width:760px}
.bad-table th,.bad-table td{border:1px solid var(--line);padding:10px 11px;text-align:left;font-size:13px;vertical-align:top}
.bad-table th{background:#fff0ed;color:#6f211b;font-weight:900}
.bad-table td:first-child{font-weight:950;background:#fbfcff;white-space:nowrap}
.bad-table tr.has-any td:first-child{box-shadow:inset 4px 0 0 #b42318}
.bad-explain{margin-top:13px;padding:12px 14px;border-radius:10px;background:#fff6f3;border:1px solid #efcbc4;color:#6b302b;font-size:13px}
@media(max-width:900px){.bad-summary-grid{grid-template-columns:1fr}}
@media(max-width:520px){.legend-separator{display:none}.bad-tags{left:1px;right:1px;bottom:2px}.bad-tag{font-size:8px;padding:1px 3px}.palace.has-bad .num{transform:translateY(-7px)}.palace.has-bad .name,.palace.has-bad .elem{transform:translateY(-7px)}}
@media print{.bad-summary-grid{grid-template-columns:repeat(3,1fr)}.bad-table{min-width:0}.bad-pill{color:#000;border:1px solid #444;background:#fff!important}}

/* 第4段階 */
.personal-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.personal-summary-card{border:1px solid #cfcae8;border-radius:15px;padding:16px;background:linear-gradient(145deg,#fff,#faf8ff)}
.personal-summary-card h3{margin:0 0 10px;font-size:18px}
.personal-summary-card dl{display:grid;grid-template-columns:94px 1fr;gap:7px 8px;margin:0;font-size:13px}
.personal-summary-card dt{font-weight:900;color:#44317a}.personal-summary-card dd{margin:0;font-weight:750;color:#342f44}
.personal-summary-card .none{color:var(--muted);font-weight:700}
.personal-summary-card .candidate{color:#765100}
.personal-explain{margin-top:13px;padding:12px 14px;border-radius:10px;background:#f8f5ff;border:1px solid #d8ceed;color:#493c6b;font-size:13px}
.legend-mark.honmei-satsu{background:#b42318}.legend-mark.honmei-teki{background:#8a4b13}
.legend-mark.getsumei-satsu{background:#6b3fa0}.legend-mark.getsumei-teki{background:#304ea1}
.bad-tag.honmei-satsu,.bad-pill.honmei-satsu{background:#b42318}
.bad-tag.honmei-teki,.bad-pill.honmei-teki{background:#8a4b13}
.bad-tag.getsumei-satsu,.bad-pill.getsumei-satsu{background:#6b3fa0}
.bad-tag.getsumei-teki,.bad-pill.getsumei-teki{background:#304ea1}
.bad-tag.candidate::after,.bad-pill.candidate::after{content:"?";display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;margin-left:3px;border-radius:50%;background:rgba(255,255,255,.24);font-size:8px}
.total-status{font-size:12px;color:#46536a}.total-status strong{color:#8f1d13}
.bad-table th.personal-head{background:#f3efff;color:#44317a}
@media(max-width:900px){.personal-summary-grid{grid-template-columns:1fr}}
@media print{.personal-summary-grid{grid-template-columns:repeat(3,1fr)}}

/* 第5段階 */
.teii-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.teii-summary-card{border:1px solid #b9d8d5;border-radius:15px;padding:16px;background:linear-gradient(145deg,#fff,#f4fbfa)}
.teii-summary-card h3{margin:0 0 10px;font-size:18px}
.teii-summary-card dl{display:grid;grid-template-columns:86px 1fr;gap:7px 8px;margin:0;font-size:13px}
.teii-summary-card dt{font-weight:900;color:#155e63}.teii-summary-card dd{margin:0;font-weight:750;color:#29484b}
.teii-summary-card .none{color:var(--muted)}
.teii-explain{margin-top:13px;padding:12px 14px;border-radius:10px;background:#f1fbfa;border:1px solid #bfe1dd;color:#24565a;font-size:13px}
.legend-mark.teii{background:#0f766e}.legend-mark.teii-ref{background:#fff;border:2px solid #0f766e}
.bad-tag.teii,.bad-pill.teii{background:#0f766e}
.bad-tag.teii.reference,.bad-pill.teii.reference{background:#fff;color:#0f625c;border:1px solid #0f766e}
.palace.has-reference::after{content:"";position:absolute;inset:2px;border:3px dashed #0f766e;pointer-events:none;z-index:2}
.exclusion-table-wrap{overflow-x:auto}
.exclusion-table{width:100%;border-collapse:collapse;min-width:800px}
.exclusion-table th,.exclusion-table td{border:1px solid var(--line);padding:10px 11px;text-align:left;font-size:13px;vertical-align:top}
.exclusion-table th{background:#eef6f5;color:#164e52;font-weight:900}
.exclusion-table td:first-child{font-weight:950;background:#fbfcff;white-space:nowrap}
.status-chip{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:900;white-space:nowrap}
.status-chip.excluded{background:#ffebe8;color:#9c2118;border:1px solid #efb7b1}
.status-chip.check{background:#fff5db;color:#795400;border:1px solid #e9ce85}
.status-chip.candidate{background:#eaf7ef;color:#126536;border:1px solid #b7dfc5}
.status-chip.reference{background:#f0fbfa;color:#0f625c;border:1px solid #acd9d5}
.status-reasons{margin-top:6px}
.final-candidate-card{margin-top:14px;border-radius:13px;padding:15px 17px;background:linear-gradient(135deg,#edf8f1,#f8fcfa);border:1px solid #badfc7}
.final-candidate-card strong{color:#126536}
@media(max-width:900px){.teii-summary-grid{grid-template-columns:1fr}}
@media print{.teii-summary-grid{grid-template-columns:repeat(3,1fr)}.exclusion-table{min-width:0}.status-chip{border:1px solid #555;background:#fff!important;color:#000!important}}


/* 第6段階 */
.good-star-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.good-star-card{border:1px solid #b9d8c4;border-radius:15px;padding:16px;background:linear-gradient(145deg,#fff,#f3fbf6)}
.good-star-card h3{margin:0 0 11px;font-size:17px;color:#145d36}
.good-star-card .pair{font-size:12px;color:var(--muted);font-weight:800;margin-bottom:10px}
.good-star-card dl{display:grid;grid-template-columns:120px 1fr;gap:8px 9px;margin:0;font-size:13px}
.good-star-card dt{font-weight:900;color:#275842}.good-star-card dd{margin:0;font-weight:750}
.good-star-card .max-text{color:#0f6b39}.good-star-card .dai-text{color:#244f9b}
.good-star-explain{margin-top:13px;padding:12px 14px;border-radius:10px;background:#f1fbf5;border:1px solid #bfe1ca;color:#285b3d;font-size:13px}
.legend-mark.max-kichi{background:#167544}.legend-mark.dai-kichi{background:#2d5bd1}.legend-mark.non-kichi{background:#8b96a8}
.good-badge{position:absolute!important;z-index:4!important;right:3px;top:3px;border-radius:5px;padding:2px 5px;color:#fff;font-size:9px;font-weight:950;line-height:1.25;white-space:nowrap}
.good-badge.max{background:#167544}.good-badge.dai{background:#2d5bd1}.good-badge.check{background:#9a5b00}
.palace.good-max{box-shadow:inset 0 0 0 4px rgba(22,117,68,.72)}
.palace.good-dai{box-shadow:inset 0 0 0 4px rgba(45,91,209,.62)}
.palace.mark-honmei.good-max,.palace.mark-getsumei.good-max,.palace.mark-both.good-max,
.palace.mark-honmei.good-dai,.palace.mark-getsumei.good-dai,.palace.mark-both.good-dai{outline:3px solid rgba(255,255,255,.86);outline-offset:-7px}
.relation-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.relation-summary-card{border:1px solid #c5d5e8;border-radius:15px;padding:16px;background:linear-gradient(145deg,#fff,#f4f8fd)}
.relation-summary-card h3{margin:0 0 10px;font-size:18px}.relation-summary-card dl{display:grid;grid-template-columns:92px 1fr;gap:7px 8px;margin:0;font-size:13px}
.relation-summary-card dt{font-weight:900;color:#294d7f}.relation-summary-card dd{margin:0;font-weight:750}.relation-summary-card .none{color:var(--muted)}
.auspicious-table-wrap{overflow-x:auto;margin-top:14px}
.auspicious-table{width:100%;border-collapse:collapse;min-width:1050px}
.auspicious-table th,.auspicious-table td{border:1px solid var(--line);padding:9px 10px;text-align:left;font-size:12px;vertical-align:top}
.auspicious-table th{background:#edf5f0;color:#1e5c3a;font-weight:900}.auspicious-table td:first-child{font-weight:950;background:#fbfcff;white-space:nowrap}
.relation-star{font-weight:950;font-size:13px;margin-bottom:5px}.relation-line{color:#536078;line-height:1.45}.relation-line strong{color:#29364e}
.good-chip{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:900;margin-top:6px;white-space:nowrap}
.good-chip.max{background:#e5f7ec;color:#0f6738;border:1px solid #a9dbba}.good-chip.dai{background:#eaf0ff;color:#254b9a;border:1px solid #b6c7ee}
.good-chip.none{background:#f0f2f5;color:#626d7e;border:1px solid #d3d9e1}.good-chip.excluded{background:#ffebe8;color:#9c2118;border:1px solid #efb7b1}.good-chip.check{background:#fff5db;color:#795400;border:1px solid #e9ce85}
.good-summary-box{margin-top:14px;border-radius:13px;padding:15px 17px;background:linear-gradient(135deg,#eaf8ef,#f7fbff);border:1px solid #b7dcc4;font-size:13px}
.good-summary-box strong{color:#126536}.good-summary-row+ .good-summary-row{margin-top:6px}
.relation-key{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:14px}
.relation-key div{border:1px solid var(--line);border-radius:9px;padding:8px 9px;background:#fbfcff;font-size:11px;text-align:center}.relation-key strong{display:block;font-size:12px}
@media(max-width:900px){.good-star-grid{grid-template-columns:1fr}.relation-summary-grid{grid-template-columns:1fr}.relation-key{grid-template-columns:repeat(3,1fr)}}
@media(max-width:520px){.good-star-card dl{grid-template-columns:1fr}.relation-key{grid-template-columns:repeat(2,1fr)}.good-badge{font-size:8px;padding:1px 3px}}
@media print{.good-star-grid{grid-template-columns:repeat(2,1fr)}.relation-summary-grid{grid-template-columns:repeat(3,1fr)}.auspicious-table{min-width:0}.good-chip{background:#fff!important;color:#000!important;border:1px solid #444}.good-badge{color:#000;background:#fff!important;border:1px solid #444}}


.quick-nav{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.quick-nav button{background:#f7f3ea;color:#73562d;border:1px solid #e4d7b3;padding:10px 14px;border-radius:999px;font-weight:800}
.quick-nav button:hover{background:#efe6d6}
.overlap-stage{margin-top:18px;padding:20px;border-radius:20px;background:linear-gradient(180deg,#f9f4ea,#f4efe7);border:1px solid #e7dcc8}
.overlap-stage .lead{font-size:15px;color:#5a4d3d;margin:0 0 14px}
.overlap-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.overlap-card{background:#fffdf9;border:1px solid #e8dfd0;border-radius:22px;padding:16px;box-shadow:0 10px 24px rgba(81,66,34,.07)}
.overlap-card h3{margin:0 0 10px;font-size:18px;display:flex;align-items:center;gap:8px}
.overlap-kicker{display:inline-flex;align-items:center;justify-content:center;min-width:54px;padding:6px 10px;border-radius:999px;color:#fff;font-size:12px;font-weight:900}
.overlap-kicker.year{background:#b94957}.overlap-kicker.month{background:#53a8b8}.overlap-kicker.day{background:#e2ab45}
.mini-disk-wrap{display:flex;justify-content:center;padding:8px 0 2px}
.mini-disk{width:170px;aspect-ratio:1;border-radius:50%;position:relative;border:2px solid #c9c0b0;box-shadow:inset 0 0 0 10px rgba(255,255,255,.36),0 8px 18px rgba(80,63,26,.08)}
.mini-disk:after{content:"";position:absolute;inset:35%;background:#8f8a7d;border-radius:50%;box-shadow:inset 0 3px 8px rgba(0,0,0,.12)}
.mini-disk .common-marker{position:absolute;width:18px;height:18px;border-radius:50%;background:#fff;border:3px solid #8a6440;box-shadow:0 0 0 2px rgba(255,255,255,.8);z-index:2}
.mini-disk .common-marker.max{border-color:#cb6a5a;background:#fff1ee}
.mini-disk .common-marker.dai{border-color:#d6923d;background:#fff7ec}
.disk-dir{position:absolute;font-size:11px;font-weight:800;color:#6b665d;background:rgba(255,255,255,.85);padding:2px 6px;border-radius:999px;z-index:3}
.disk-dir.s{top:-6px;left:50%;transform:translateX(-50%)}
.disk-dir.n{bottom:-6px;left:50%;transform:translateX(-50%)}
.disk-dir.e{left:-4px;top:50%;transform:translateY(-50%)}
.disk-dir.w{right:-4px;top:50%;transform:translateY(-50%)}
.overlap-lines{font-size:13px;color:#564e42;line-height:1.55}
.overlap-lines strong{color:#8d5c2c}
.overlap-common{margin-top:18px;background:#fff;border:1px solid #ead9bf;border-radius:16px;padding:14px 16px}
.overlap-common h3{margin:0 0 8px;font-size:18px;color:#7b5a2b}
.common-badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.common-badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:7px 12px;font-size:13px;font-weight:900;border:1px solid #e2cfac;background:#fff8ea;color:#775421}
.common-badge.max{background:#f8dfd8;border-color:#e6b3a8;color:#9a4437}.common-badge.dai{background:#fbead7;border-color:#efc992;color:#8a5d18}
.no-common{color:#7a7062;font-size:13px}
.adjacent-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.adjacent-card{border:1px solid #ddd6c8;border-radius:16px;padding:16px;background:linear-gradient(180deg,#fff,#faf8f2)}
.adjacent-card h3{margin:0 0 6px;font-size:17px}
.adjacent-date{font-weight:900;color:#31415c;margin-bottom:8px}
.adjacent-stars{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:10px}
.adjacent-stars div{background:#f4f6fb;border-radius:10px;padding:8px 6px;text-align:center;font-size:12px}
.adjacent-stars strong{display:block;font-size:11px;color:#58657d;margin-bottom:2px}
.adjacent-common{margin-top:10px;font-size:12px;line-height:1.5;color:#5b5247}
.adjacent-card .small-btn{margin-top:10px;background:#f0f4ff;color:#274aa0;border:1px solid #cad8fb;padding:8px 10px;border-radius:10px;font-weight:800}
.important-days-meta{margin-bottom:10px;color:#5d6778;font-size:13px}
.important-days-wrap{overflow-x:auto}
.important-days-table{width:100%;border-collapse:collapse;min-width:920px}
.important-days-table th,.important-days-table td{border:1px solid var(--line);padding:9px 10px;text-align:left;vertical-align:top;font-size:12px}
.important-days-table th{background:#f7efe3;color:#724f23;font-weight:900}
.important-days-table td:first-child{white-space:nowrap;font-weight:900;background:#fcfcff}
.rank-pill{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:900}
.rank-pill.max{background:#f8dfd8;color:#a14539;border:1px solid #e6b3a8}.rank-pill.dai{background:#fbead7;color:#8f6118;border:1px solid #efc992}.rank-pill.mix{background:#fff2db;color:#7b5f2b;border:1px solid #efd196}
.direction-mini-badges{display:flex;flex-wrap:wrap;gap:6px}
.direction-mini-badges span{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800;background:#f6f7fa;border:1px solid #dbe0ea;color:#43506a}
.direction-mini-badges span.max{background:#f8dfd8;border-color:#e6b3a8;color:#a14539}.direction-mini-badges span.dai{background:#fbead7;border-color:#efc992;color:#8f6118}
.panel.soft{background:linear-gradient(180deg,#fffdf9,#fff);}
.palace{transition:all .18s ease}
.palace.has-bad{background:#efeee8 !important;border-color:#cfc9ba;color:#5e5a53}
.palace.good-dai{background:#fbead8 !important;box-shadow:inset 0 0 0 3px rgba(220,145,41,.45)}
.palace.good-max{background:#f7ddd7 !important;box-shadow:inset 0 0 0 3px rgba(201,93,79,.42)}
.good-badge.max{background:#fff0ed;color:#b14a3e;border:1px solid #e2b0a7}
.good-badge.dai{background:#fff5e8;color:#8f6019;border:1px solid #ebcb9d}
.good-chip.max{background:#f7ddd7;color:#9e4339;border:1px solid #e0aba2}
.good-chip.dai{background:#fbead8;color:#87581b;border:1px solid #ebc58e}
.good-chip.check{background:#efe5d3;color:#6b5532;border:1px solid #dcc6a0}
.good-chip.excluded{background:#ece9e2;color:#665f54;border:1px solid #cfc7b8}
@media(max-width:960px){.overlap-grid{grid-template-columns:1fr}.adjacent-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.adjacent-grid{grid-template-columns:1fr}.quick-nav{gap:8px}.quick-nav button{flex:1 1 calc(50% - 8px)} }
@media print{.quick-nav,.adjacent-card .small-btn{display:none}.overlap-stage{background:#fff;border:1px solid #888}.overlap-card{box-shadow:none}.common-badge,.rank-pill,.direction-mini-badges span{background:#fff !important;color:#000 !important;border:1px solid #444}}


/* 第7段階 UX改善 */
.overlap-stage{padding:22px}
.overlap-date-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:14px 0 18px}
.overlap-date-tab{border:1px solid #ded3c0;background:#fffdf9;color:#635643;border-radius:13px;padding:10px 8px;cursor:pointer;text-align:center;font-weight:850;line-height:1.25}
.overlap-date-tab small{display:block;margin-top:4px;font-size:10px;font-weight:650;color:#897c69}
.overlap-date-tab:hover{background:#fff7e9;border-color:#d6bd91}
.overlap-date-tab.active{background:#7d684a;color:#fff;border-color:#7d684a;box-shadow:0 5px 13px rgba(93,72,38,.18)}
.overlap-date-tab.active small{color:#f5ead7}
.overlap-detail-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 14px;padding:12px 14px;border-radius:14px;background:#fff;border:1px solid #e9ddca}
.overlap-detail-date{font-weight:950;font-size:17px;color:#4e4335}
.overlap-detail-date small{display:block;font-size:11px;color:#817461;font-weight:650;margin-top:2px}
.overlap-apply-btn{background:#eef3ff;color:#244a9c;border:1px solid #c8d6f4;border-radius:10px;padding:9px 12px;font-weight:850;white-space:nowrap}
.overlap-apply-btn.current{background:#f0eee8;color:#777064;border-color:#ddd7ca;cursor:default}
.overlap-grid{gap:14px}
.overlap-card{padding:14px}
.mini-disk{width:230px;max-width:100%;isolation:isolate}
.mini-disk:before{content:"";position:absolute;inset:0;border-radius:50%;background:repeating-conic-gradient(from -22.5deg,transparent 0deg 44deg,rgba(96,86,68,.28) 44deg 45deg);z-index:1;pointer-events:none}
.mini-disk:after{z-index:2;inset:37%;background:#8f8a7d}
.sector-label{position:absolute;transform:translate(-50%,-50%);width:68px;text-align:center;z-index:4;pointer-events:none;color:#4f493f}
.sector-label.center{width:56px;color:#fff}
.sector-number{display:inline-flex;align-items:center;justify-content:center;width:29px;height:29px;border-radius:50%;background:rgba(255,255,255,.92);border:1px solid rgba(91,83,69,.30);font-size:16px;font-weight:950;line-height:1;box-shadow:0 2px 5px rgba(61,48,23,.12)}
.sector-label.center .sector-number{width:38px;height:38px;background:transparent;border:0;color:#fff;font-size:23px;box-shadow:none}
.sector-label.max .sector-number{border:2px solid #c85d50;background:#fff3f0;color:#a13d33}
.sector-label.dai .sector-number{border:2px solid #dc9a39;background:#fff7eb;color:#855813}
.sector-label.bad .sector-number{border:2px solid #979286;background:#f5f4ef;color:#555149}
.sector-label.check .sector-number{border:2px solid #a88549;background:#fff9e9;color:#72561e}
.sector-label.is-common .sector-number{box-shadow:0 0 0 4px rgba(255,255,255,.78),0 0 0 7px rgba(132,91,36,.44)}
.sector-reason{display:block;margin:3px auto 0;max-width:72px;font-size:8px;font-weight:850;line-height:1.12;word-break:break-all;text-shadow:0 1px 0 rgba(255,255,255,.85)}
.sector-label.bad .sector-reason{color:#514c44}
.sector-label.max .sector-reason{color:#9a4438}.sector-label.dai .sector-reason{color:#805516}.sector-label.check .sector-reason{color:#765717}
.sector-label.center .sector-reason{color:#fff;text-shadow:none;font-size:8px}
.disk-dir{z-index:5}
.overlap-lines{display:grid;grid-template-columns:1fr 1fr;gap:4px 8px;margin-top:8px}
.overlap-line{border-radius:8px;padding:5px 7px;background:#f8f6f1;font-size:11px;line-height:1.3}
.overlap-line.bad{background:#efeee9;color:#58534c}.overlap-line.max{background:#f8e0db;color:#93473d}.overlap-line.dai{background:#fbead7;color:#805719}
.overlap-line .reason{display:block;font-size:9px;margin-top:2px;opacity:.9}
.overlap-legend{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px;font-size:11px;color:#665d50}
.overlap-legend span{display:inline-flex;align-items:center;gap:5px}
.overlap-legend i{display:inline-block;width:17px;height:17px;border-radius:5px;border:1px solid rgba(0,0,0,.12)}
.overlap-legend .max i{background:#f4b4a8}.overlap-legend .dai i{background:#f6d9a7}.overlap-legend .bad i{background:#d9d7d0}.overlap-legend .other i{background:#e7e3db}
.yukitori-note{margin-bottom:12px;padding:10px 12px;border-left:4px solid #b47b38;background:#fffaf0;border-radius:8px;color:#5f503e;font-size:12px}
.common-badge:before{content:"候補";font-size:9px;padding:2px 5px;border-radius:999px;background:rgba(255,255,255,.75)}
.important-days-table .date-link{appearance:none;border:0;background:none;color:#1e55b3;text-decoration:underline;text-underline-offset:3px;font:inherit;font-weight:950;padding:2px 0;cursor:pointer}
.important-days-table .date-link:hover{color:#10367c;text-decoration-thickness:2px}
.important-days-table .date-link:focus-visible{outline:3px solid rgba(45,91,209,.25);outline-offset:3px;border-radius:4px}
.link-help{display:inline-block;margin-left:7px;font-size:11px;color:#69758a;font-weight:650}
@media(max-width:1080px){.mini-disk{width:210px}.sector-label{width:62px}.sector-reason{max-width:65px;font-size:7.5px}}
@media(max-width:760px){.overlap-date-tabs{grid-template-columns:1fr 1fr}.overlap-date-tab:nth-child(3){grid-column:1/-1;grid-row:1}.overlap-detail-head{align-items:flex-start;flex-direction:column}.overlap-apply-btn{width:100%}.mini-disk{width:260px}.overlap-lines{grid-template-columns:1fr 1fr}}
@media(max-width:420px){.mini-disk{width:240px}.sector-label{width:60px}.overlap-lines{grid-template-columns:1fr}.overlap-date-tabs{gap:6px}.overlap-date-tab{padding:9px 5px;font-size:12px}}
@media print{.overlap-date-tabs,.overlap-apply-btn{display:none}.mini-disk{width:190px}.sector-number{background:#fff!important}.important-days-table .date-link{color:#000;text-decoration:none}}


/* 公開画面向け */
.hidden-section{display:none!important}
.compact-hero{padding:20px 26px}
.compact-hero h1{margin:0;font-size:clamp(23px,3.5vw,34px)}

/* サーバー計算版の追加表示 */
.loading-box{padding:16px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);background:#fbfcff}
button:disabled{opacity:.65;cursor:wait}
.api-status{margin-top:12px;font-size:13px;color:var(--muted)}
