*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #1a1a2e;--bg-card: #16213e;--bg-input: #0f3460;--text: #e0e0e0;--text-dim: #9e9e9e;--accent: #e94560;--border: #2a2a4a;--wood: #4caf50;--fire: #f44336;--earth: #ffc107;--metal: #e0e0e0;--water: #2196f3}body{font-family:PingFang SC,Microsoft YaHei,Noto Sans CJK SC,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;min-height:100vh}#app{max-width:900px;margin:0 auto;padding:2rem 1rem}header{text-align:center;margin-bottom:2rem}header h1{font-size:1.8rem;color:var(--accent);margin-bottom:.5rem}.subtitle{color:var(--text-dim);font-size:.9rem}#input-section{background:var(--bg-card);border-radius:12px;padding:1.5rem;margin-bottom:2rem;border:1px solid var(--border)}.form-row{display:flex;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.form-group{display:flex;flex-direction:column;gap:.3rem;flex:1;min-width:80px}.form-group label{font-size:.8rem;color:var(--text-dim)}.form-group input,.form-group select{background:var(--bg-input);border:1px solid var(--border);border-radius:6px;padding:.5rem .7rem;color:var(--text);font-size:.95rem}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--accent)}.advanced-toggle{margin-bottom:1rem}details summary{cursor:pointer;color:var(--text-dim);font-size:.85rem}details[open] summary{margin-bottom:.8rem}#submit-btn{display:block;width:100%;padding:.8rem;background:var(--accent);color:#fff;border:none;border-radius:8px;font-size:1.1rem;font-weight:700;cursor:pointer;transition:opacity .2s}#submit-btn:hover{opacity:.85}.card{background:var(--bg-card);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem;border:1px solid var(--border)}.card h2{color:var(--accent);font-size:1.2rem;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.card h3{color:var(--text);font-size:1rem;margin:1rem 0 .5rem}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{padding:.5rem .6rem;text-align:left;border-bottom:1px solid var(--border)}th{color:var(--text-dim);font-weight:400;font-size:.8rem}.ganzhi{font-size:1.1rem;font-weight:700}.pillars-table td:first-child{color:var(--text-dim);font-size:.8rem;width:50px}.bar-chart{margin:1rem 0}.bar-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}.bar-label{width:20px;font-weight:700;text-align:center}.bar-track{flex:1;height:18px;background:#ffffff0d;border-radius:9px;overflow:hidden}.bar-fill{height:100%;border-radius:9px;transition:width .5s ease}.bar-value{width:30px;text-align:right;font-size:.85rem;color:var(--text-dim)}.strength-summary{display:flex;gap:1.5rem;align-items:center;margin-top:1rem;flex-wrap:wrap}.strength-item{display:flex;flex-direction:column;align-items:center;gap:.2rem}.strength-item span{font-size:.75rem;color:var(--text-dim)}.strength-item strong{font-size:1.3rem}.strength-result{font-size:1.3rem;font-weight:700;padding:.3rem 1rem;border-radius:6px}.strength-result.strong{background:#f4433633;color:var(--fire)}.strength-result.weak{background:#2196f333;color:var(--water)}.check-pass{color:var(--wood);font-weight:700}.check-fail{color:var(--text-dim)}.judge-conclusion{margin-top:1rem;font-size:.95rem}.judge-conclusion .strong{color:var(--fire)}.judge-conclusion .weak{color:var(--water)}.fav-table .fav-good{background:#4caf501a}.fav-table .fav-bad{background:#f443361a}.tone-good{color:var(--wood);font-weight:700}.tone-bad{color:var(--fire);font-weight:700}.tone-mid{color:var(--text-dim)}.rel-good{color:var(--wood)}.rel-bad{color:var(--fire)}.ten-god-table .dominant{background:#e9456026;font-weight:700}.personality-section{margin-bottom:1.5rem}.personality-section ul{padding-left:1.2rem}.personality-section li{margin-bottom:.3rem}.methodology-box{background:#e945600d;border:1px solid rgba(233,69,96,.2);border-radius:8px;padding:1rem 1.2rem;margin-bottom:1.5rem}.methodology-box h3{color:var(--accent);font-size:.95rem;margin-bottom:.5rem}.methodology-box p{font-size:.85rem;color:var(--text-dim);margin-bottom:.8rem}.method-table{font-size:.8rem}.method-table th{font-size:.75rem;color:var(--accent)}.formula-cell{font-family:monospace;font-size:.75rem;color:var(--text-dim)}.tengod-weight-table{font-size:.85rem}.tengod-weight-table .dominant{background:#e945601f}.tengod-weight-table .weak{opacity:.6}.mini-bar{width:100%;height:8px;background:#ffffff0d;border-radius:4px;overflow:hidden}.mini-bar-fill{height:100%;background:var(--accent);border-radius:4px}.note{font-size:.75rem;color:var(--text-dim);margin-top:.5rem;font-style:italic}.personality-detail{margin-bottom:1.5rem;padding:1rem;background:#ffffff05;border-radius:8px;border:1px solid var(--border)}.personality-detail h4{color:var(--text);font-size:.95rem;margin-bottom:.8rem}.personality-detail ul{padding-left:1.2rem}.personality-detail li{margin-bottom:.4rem;line-height:1.5}.trait-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.8rem}@media(max-width:600px){.trait-grid{grid-template-columns:1fr}}.trait-item{padding:.6rem .8rem;border-radius:6px;font-size:.85rem;line-height:1.5}.trait-item .trait-label{display:block;font-size:.7rem;font-weight:700;margin-bottom:.3rem;text-transform:uppercase;letter-spacing:.5px}.trait-item.positive{background:#4caf501a;border:1px solid rgba(76,175,80,.3)}.trait-item.positive .trait-label{color:var(--wood)}.trait-item.negative{background:#f443361a;border:1px solid rgba(244,67,54,.3)}.trait-item.negative .trait-label{color:var(--fire)}.trait-item.style{background:#2196f31a;border:1px solid rgba(33,150,243,.3)}.trait-item.style .trait-label{color:var(--water)}.pref-table{font-size:.85rem}.pref-table td:first-child{font-weight:700;color:var(--text-dim);width:80px}.pref-table td:last-child{font-size:.75rem;color:var(--text-dim);font-family:monospace}.analysis-dim{margin-bottom:1rem}.analysis-dim ul{padding-left:1.2rem;list-style:disc}.analysis-dim li{margin-bottom:.3rem;color:var(--text-dim)}.luck-table{font-size:.8rem}.luck-table th{font-size:.75rem}.cycle-detail{margin-bottom:.8rem;border:1px solid var(--border);border-radius:8px;overflow:hidden}.cycle-detail summary{cursor:pointer;padding:.7rem 1rem;background:#ffffff08;font-size:.95rem}.cycle-detail summary:hover{background:#ffffff0f}.cycle-detail[open] summary{border-bottom:1px solid var(--border)}.cycle-analysis{padding:.8rem 1rem;font-size:.85rem;color:var(--text-dim)}.cycle-analysis p{margin-bottom:.3rem}.annual-table{font-size:.8rem}.lookup-table{font-size:.85rem}.annual-list{padding:.5rem}.annual-list-header{display:grid;grid-template-columns:50px 45px 50px 1fr;gap:.5rem;padding:.4rem .8rem;font-size:.7rem;color:var(--text-dim);border-bottom:1px solid var(--border)}.annual-detail{border-bottom:1px solid var(--border)}.annual-detail:last-child{border-bottom:none}.annual-summary{display:grid;grid-template-columns:50px 45px 50px 1fr;gap:.5rem;align-items:center;padding:.6rem .8rem;cursor:pointer;font-size:.85rem;transition:background .15s}.annual-summary:hover{background:#ffffff0a}.annual-year{font-weight:700}.annual-age{color:var(--text-dim);font-size:.8rem}.annual-tones{display:flex;gap:.4rem;font-size:.8rem}.annual-expanded{padding:.8rem 1rem 1rem;background:#ffffff05;border-top:1px solid var(--border)}.annual-dims-grid{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}@media(max-width:600px){.annual-dims-grid{grid-template-columns:1fr}.annual-summary{grid-template-columns:45px 40px 45px 1fr;font-size:.8rem}}.annual-dim{padding:.6rem;border-radius:6px;border:1px solid var(--border);background:#ffffff03}.annual-dim.supportive{border-left:3px solid var(--wood)}.annual-dim.challenging{border-left:3px solid var(--fire)}.annual-dim.mixed{border-left:3px solid var(--text-dim)}.annual-dim-header{display:flex;align-items:center;gap:.4rem;margin-bottom:.4rem;font-size:.85rem}.dim-icon{font-size:.9rem}.dim-label{font-weight:700}.dim-details{padding-left:1.2rem;font-size:.8rem;color:var(--text-dim);line-height:1.5}.dim-details li{margin-bottom:.2rem}.annual-signals{margin-bottom:.8rem}.annual-signals h5{font-size:.8rem;color:var(--text-dim);margin-bottom:.4rem}.signal-list{display:flex;flex-wrap:wrap;gap:.3rem}.signal-tag{font-size:.7rem;padding:.2rem .5rem;border-radius:4px;background:#ffffff0d;border:1px solid var(--border);cursor:help}.signal-tag.supportive{background:#4caf5026;border-color:#4caf5066;color:var(--wood)}.signal-tag.challenging{background:#f4433626;border-color:#f4433666;color:var(--fire)}.cycle-dims{display:flex;flex-direction:column;gap:.4rem}.cycle-dim{font-size:.85rem;line-height:1.5}.hint{font-size:.8rem;color:var(--text-dim);margin-bottom:1rem;font-style:italic}.ai-chat-card{position:relative}.ai-chat-messages{max-height:400px;overflow-y:auto;margin-bottom:1rem;padding:.5rem;border:1px solid var(--border);border-radius:8px;background:#0003}.ai-msg{margin-bottom:.8rem;padding:.6rem .8rem;border-radius:8px;font-size:.9rem;line-height:1.6}.ai-msg.user{background:#e9456026;border:1px solid rgba(233,69,96,.3);margin-left:2rem}.ai-msg.assistant{background:#2196f31a;border:1px solid rgba(33,150,243,.2);margin-right:2rem}.ai-msg.system{font-size:.8rem;color:var(--text-dim);text-align:center;font-style:italic}.ai-input-row{display:flex;gap:.5rem}.ai-input-row input{flex:1;background:var(--bg-input);border:1px solid var(--border);border-radius:6px;padding:.6rem .8rem;color:var(--text);font-size:.9rem}.ai-input-row input:focus{outline:none;border-color:var(--accent)}.ai-input-row button{padding:.6rem 1.2rem;background:var(--accent);color:#fff;border:none;border-radius:6px;font-size:.9rem;cursor:pointer}.ai-input-row button:disabled{opacity:.5;cursor:not-allowed}.ai-config{margin-bottom:.8rem;padding:.6rem;background:#ffffff05;border-radius:6px;border:1px solid var(--border)}.ai-config summary{font-size:.8rem;color:var(--text-dim);cursor:pointer}.ai-config-content{margin-top:.5rem}.ai-config-content label{font-size:.8rem;color:var(--text-dim)}.ai-config-content input{width:100%;margin-top:.3rem;background:var(--bg-input);border:1px solid var(--border);border-radius:4px;padding:.4rem .6rem;color:var(--text);font-size:.8rem}.error{background:#f4433633;border:1px solid var(--fire);border-radius:8px;padding:1rem;color:var(--fire)}@media(max-width:600px){#app{padding:1rem .5rem}.form-row{flex-direction:column;gap:.5rem}.strength-summary{flex-direction:column;gap:.8rem}.luck-table,.annual-table{font-size:.7rem}.luck-table th,.annual-table th{font-size:.65rem}}
