@import "https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;600;700&display=swap";body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}:root{--primary:#c9a96e;--primary-dark:#b8943d;--primary-glow:#c9a96e4d;--bg:#1a1410;--bg-card:#231c15;--bg-card-hover:#2c2318;--text:#e8dcc8;--text-muted:#8b7d6b;--border:#3d3226;--border-light:#4d3f2e;--accent:#d4a853;--accent-glow:#d4a8534d;--red:#8b2942;--red-light:#a63446;--success:#5a8a5e;--danger:#8b2942;--gradient-1:linear-gradient(135deg, #c9a96e 0%, #d4a853 50%, #b8943d 100%);--gradient-2:linear-gradient(135deg, #8b2942 0%, #a63446 100%);--gradient-3:linear-gradient(135deg, #c9a96e 0%, #8b7d6b 100%);--shadow:0 4px 24px #0006;--shadow-lg:0 8px 40px #00000080}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);background-image:radial-gradient(at 20% 20%,#c9a96e0f 0,#0000 50%),radial-gradient(at 80% 80%,#8b29420f 0,#0000 50%),url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23c9a96e' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");min-height:100vh;font-family:Noto Serif SC,Songti SC,STSong,SimSun,serif;line-height:1.8}.app{max-width:1100px;margin:0 auto;padding:2rem;position:relative}header{text-align:center;margin-bottom:3rem;padding-bottom:2rem;position:relative}header:before{content:"※";color:var(--primary);opacity:.6;margin-bottom:1rem;font-size:1.5rem;display:block}header:after{content:"";background:linear-gradient(90deg, transparent, var(--primary), transparent);width:200px;height:1px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}header h1{color:var(--primary);text-shadow:0 2px 4px #0000004d;letter-spacing:12px;margin-bottom:.5rem;font-family:Noto Serif SC,serif;font-size:2.8rem;font-weight:700}header p{color:var(--text-muted);letter-spacing:4px;font-size:1rem;font-weight:400}.chat-container{background:var(--bg-card);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:2px;flex-direction:column;height:520px;margin-bottom:2.5rem;display:flex;position:relative;overflow:hidden}.chat-container:before{content:"";background:var(--gradient-1);z-index:1;height:3px;position:absolute;top:0;left:0;right:0}.chat-container:after{content:"对话";color:var(--primary);letter-spacing:4px;opacity:.6;z-index:1;font-size:.85rem;position:absolute;top:12px;left:50%;transform:translate(-50%)}.messages{flex-direction:column;flex:1;gap:1.25rem;padding:2.5rem 1.5rem 1.5rem;display:flex;overflow-y:auto}.messages::-webkit-scrollbar{width:4px}.messages::-webkit-scrollbar-track{background:0 0}.messages::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.message{max-width:80%;animation:.4s fadeInUp;display:flex}.message.user{align-self:flex-end}.message.assistant{align-self:flex-start}.message-content{padding:1rem 1.25rem;font-size:.95rem;line-height:1.8;position:relative}.message.user .message-content{border:1px solid var(--border-light);color:var(--primary);background:linear-gradient(135deg,#c9a96e33,#c9a96e1a);border-radius:2px 2px 2px 12px}.message.assistant .message-content{border:1px solid var(--border);background:#0000004d;border-radius:2px 12px 2px 2px}.message-content p{margin-bottom:.5rem}.message-content p:last-child{margin-bottom:0}.typing{align-items:center;gap:.5rem;padding:1rem 1.5rem;display:flex}.typing span{background:var(--primary);opacity:.6;border-radius:50%;width:6px;height:6px;animation:1.4s infinite typing}.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:.8;transform:translateY(-6px)}}.input-area{border-top:1px solid var(--border);background:#0003;gap:0;padding:0;display:flex}.input-area input{color:var(--text);background:0 0;border:none;flex:1;padding:1rem 1.25rem;font-family:Noto Serif SC,serif;font-size:.95rem;transition:all .3s}.input-area input:focus{background:#0003;outline:none}.input-area input::placeholder{color:var(--text-muted);opacity:.5}.input-area button{background:var(--gradient-1);color:var(--bg);cursor:pointer;white-space:nowrap;letter-spacing:2px;border:none;border-left:1px solid var(--border);padding:1rem 2rem;font-family:Noto Serif SC,serif;font-size:.95rem;font-weight:600;transition:all .3s}.input-area button:hover{background:var(--primary-dark);color:var(--bg)}.input-area button:disabled{opacity:.4;cursor:not-allowed}.result-layout{grid-template-columns:1fr 360px;align-items:start;gap:1.5rem;display:grid}.result-layout .result{min-width:0}.chat-sidebar{height:calc(100vh - 4rem);max-height:700px;position:sticky;top:2rem}.chat-sidebar.collapsed{justify-content:flex-end;display:flex}.chat-toggle{background:var(--bg-card);border:1px solid var(--border);color:var(--primary);cursor:pointer;flex-direction:column;align-items:center;gap:.5rem;padding:1rem;font-family:Noto Serif SC,serif;transition:all .3s;display:flex}.chat-toggle:hover{background:var(--bg-card-hover);border-color:var(--primary)}.toggle-icon{font-size:1.5rem}.toggle-text{letter-spacing:2px;font-size:.8rem}.sidebar-chat{border-radius:0;height:100%}.chat-header{border-bottom:1px solid var(--border);color:var(--primary);letter-spacing:2px;background:#0000004d;justify-content:space-between;align-items:center;padding:.75rem 1rem;font-size:.9rem;display:flex}.chat-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:1.5rem;line-height:1;transition:color .3s}.chat-close:hover{color:var(--text)}.result{animation:.6s fadeInUp}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.result-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.result-header h2{color:var(--primary);letter-spacing:4px;align-items:center;gap:1rem;font-size:1.3rem;font-weight:600;display:inline-flex}.result-header h2:before,.result-header h2:after{content:"◆";opacity:.6;font-size:.5rem}.btn-new{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;letter-spacing:1px;background:0 0;padding:.5rem 1rem;font-family:Noto Serif SC,serif;font-size:.8rem;transition:all .3s}.btn-new:hover{border-color:var(--primary);color:var(--primary)}.sidebar-messages{flex:1;justify-content:center;align-items:center;padding:1rem;display:flex;overflow-y:auto}.sidebar-hint{text-align:center;color:var(--text-muted);font-size:.85rem;line-height:1.8}.sidebar-hint p{margin-bottom:.5rem}.sidebar-preview{text-align:center;color:var(--text-muted);font-size:.85rem;line-height:1.8}.preview-latest{opacity:.7;margin-top:.5rem;font-size:.75rem}.followup-section{background:var(--bg-card);border:1px solid var(--border);margin-top:2rem;padding:2rem;position:relative}.followup-section:before{content:"";background:linear-gradient(90deg, var(--primary), var(--accent));height:3px;position:absolute;top:0;left:0;right:0}.followup-section h2{color:var(--primary);letter-spacing:2px;align-items:center;gap:.75rem;margin-bottom:1.5rem;font-size:1.1rem;display:flex}.followup-section h2:before{content:"◈";font-size:.8rem}.followup-list{flex-direction:column;gap:1.25rem;display:flex}.followup-item{gap:1rem;animation:.3s fadeInUp;display:flex}.followup-item.user{flex-direction:row-reverse}.followup-label{border:1px solid var(--border);flex-shrink:0;justify-content:center;align-items:center;width:2rem;height:2rem;font-size:.75rem;font-weight:600;display:flex}.followup-item.user .followup-label{color:var(--primary);border-color:var(--primary)}.followup-item.assistant .followup-label{color:var(--accent);border-color:var(--accent)}.followup-content{border:1px solid var(--border);flex:1;padding:1rem;font-size:.95rem;line-height:1.8}.followup-item.user .followup-content{background:#c9a96e0d}.followup-content p{margin-bottom:.5rem}.followup-content p:last-child{margin-bottom:0}.chart-container{background:var(--bg-card);border:2px solid var(--primary);margin-bottom:2rem;position:relative;overflow:hidden}.chart-container:before{content:"";border:1px solid var(--border);pointer-events:none;z-index:1;position:absolute;inset:4px}.chart-grid{grid-template-rows:repeat(4,1fr);grid-template-columns:repeat(4,1fr);min-height:600px;display:grid}.palace{background:var(--bg-card);border:1px solid var(--border);flex-direction:column;padding:.75rem;transition:all .3s;display:flex;position:relative}.palace:hover{background:var(--bg-card-hover);z-index:2}.palace.minggong{border-color:var(--primary);background:#c9a96e14}.palace.minggong:after{content:"";pointer-events:none;border:1px solid #c9a96e33;position:absolute;inset:2px}.palace.shengong{border-color:var(--red);background:#8b294214}.palace-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:.5rem;padding-bottom:.4rem;display:flex}.palace-name{color:var(--primary);letter-spacing:2px;font-size:.85rem;font-weight:600}.palace-tags{gap:.25rem;display:flex}.tag{letter-spacing:1px;padding:.1rem .35rem;font-size:.6rem;font-weight:700}.tag-ming{background:var(--primary);color:var(--bg)}.tag-shen{background:var(--red);color:var(--text)}.palace-stars{flex-direction:column;flex:1;gap:.4rem;display:flex}.star-group{flex-wrap:wrap;gap:.25rem;display:flex}.main-stars{flex-direction:column;gap:.3rem;display:flex}.star-item{align-items:center;gap:.4rem;padding:.15rem 0;display:flex}.star-item.has-sihua{border-left:2px solid var(--primary);background:#c9a96e1a;padding:.15rem .4rem}.star-name{color:var(--primary);font-size:.85rem;font-weight:600}.sihua-indicator{color:var(--accent);background:#d4a85326;padding:.05rem .3rem;font-size:.6rem;font-weight:700}.star-brightness{color:var(--text-muted);margin-left:auto;font-size:.6rem}.aux-stars{flex-wrap:wrap;gap:.3rem;display:flex}.aux-star{color:var(--text-muted);opacity:.8;font-size:.7rem}.no-star{color:var(--text-muted);opacity:.5;margin-top:auto;padding-top:.5rem;font-size:.75rem;font-style:italic}.chart-center{border:1px solid var(--border);background:#0000004d;justify-content:center;align-items:center;padding:1rem;display:flex}.center-content{text-align:center}.center-gua{color:var(--primary);opacity:.6;margin-bottom:.5rem;font-size:2rem}.center-title{color:var(--primary);letter-spacing:4px;margin-bottom:.75rem;font-size:1.1rem;font-weight:600}.center-info{color:var(--text-muted);flex-direction:column;gap:.25rem;font-size:.8rem;display:flex}.sihua-display{text-align:center;width:100%}.sihua-title{color:var(--primary);letter-spacing:2px;margin-bottom:.5rem;font-size:.85rem;font-weight:600}.sihua-grid{grid-template-columns:1fr 1fr;gap:.4rem;display:grid}.sihua-item{border:1px solid var(--border);flex-direction:column;align-items:center;padding:.3rem;display:flex}.sihua-label{color:var(--text-muted);margin-bottom:.15rem;font-size:.65rem}.sihua-star{color:var(--primary);font-size:.8rem;font-weight:600}.sihua-item.lu{border-color:#34d3994d}.sihua-item.quan{border-color:#fbbf244d}.sihua-item.ke{border-color:#60a5fa4d}.sihua-item.ji{border-color:#f871714d}.gender-display{text-align:center}.gender-icon{color:var(--primary);margin-bottom:.25rem;font-size:1.5rem;display:block}.gender-text{color:var(--text-muted);letter-spacing:2px;font-size:.9rem}.lunar-display{text-align:center}.lunar-label{color:var(--text-muted);margin-bottom:.25rem;font-size:.7rem}.lunar-month{color:var(--primary);font-size:.9rem;font-weight:600}.chart-empty{background:var(--bg-card);border:1px solid var(--border)}.analysis{background:var(--bg-card);border:1px solid var(--border);padding:2rem;position:relative;overflow:hidden}.analysis:before{content:"";background:var(--gradient-2);height:3px;position:absolute;top:0;left:0;right:0}.analysis:after{content:"";pointer-events:none;background:radial-gradient(circle,#8b29421a 0%,#0000 70%);width:100px;height:100px;position:absolute;top:0;right:0}.analysis h2{color:var(--primary);letter-spacing:2px;align-items:center;gap:.75rem;margin-bottom:1.5rem;font-size:1.2rem;font-weight:600;display:flex}.analysis h2:before{content:"◆";color:var(--red);font-size:.7rem}.analysis-content{color:var(--text);line-height:2}.analysis-content p{border-left:2px solid var(--border);margin-bottom:1.25rem;padding-left:1.25rem;transition:border-color .3s}.analysis-content p:hover{border-left-color:var(--primary)}.analysis-content p:first-child{border-left-color:var(--red)}footer{text-align:center;border-top:1px solid var(--border);color:var(--text-muted);letter-spacing:2px;margin-top:3rem;padding-top:2rem;font-size:.85rem;position:relative}footer:before{content:"※";color:var(--primary);opacity:.4;margin-bottom:1rem;display:block}footer p{opacity:.6}@media (width<=1100px){.result-layout{grid-template-columns:1fr 300px;gap:1rem}}@media (width<=900px){.result-layout{grid-template-columns:1fr}.chat-sidebar{z-index:100;height:auto;position:fixed;top:auto;bottom:1rem;right:1rem}.chat-sidebar.open{border:1px solid var(--border);width:320px;height:500px;max-height:70vh;box-shadow:0 8px 32px #00000080}.chat-sidebar.collapsed{position:fixed;bottom:1rem;right:1rem}.chat-toggle{border-radius:50%;justify-content:center;width:56px;height:56px;padding:0;box-shadow:0 4px 16px #0006}.toggle-text{display:none}.toggle-icon{font-size:1.3rem}.chart-grid{min-height:500px}.palace{padding:.5rem}.palace-name,.star-name{font-size:.75rem}}@media (width<=768px){.app{padding:1rem}header h1{letter-spacing:8px;font-size:2rem}.chat-container:not(.sidebar-chat){height:450px}.message{max-width:90%}.chart-grid{min-height:400px}.palace{padding:.4rem}.palace-header{margin-bottom:.3rem;padding-bottom:.2rem}.palace-name{letter-spacing:1px;font-size:.7rem}.tag{padding:.05rem .25rem;font-size:.5rem}.star-name{font-size:.7rem}.star-brightness{display:none}.center-gua{font-size:1.5rem}.center-title{font-size:.9rem}.analysis{padding:1.5rem}.chat-sidebar.open{width:calc(100vw - 2rem);left:1rem;right:1rem}}@media (width<=480px){header h1{letter-spacing:6px;font-size:1.6rem}.chart-grid{min-height:350px}.palace-name{font-size:.65rem}.star-item{gap:.2rem}.star-name{font-size:.65rem}.sihua-indicator{font-size:.5rem}.aux-star{font-size:.6rem}.input-area button{letter-spacing:1px;padding:1rem 1.25rem}}
