:root{--bg-primary: #1a1a1a;--bg-secondary: #242424;--bg-tertiary: #2d2d2d;--bg-input: #2a2a2a;--text-primary: #e8e8e8;--text-secondary: #a0a0a0;--text-muted: #6b6b6b;--accent-primary: #d4a574;--accent-secondary: #c9a66b;--accent-tertiary: #b8956a;--border-color: #3a3a3a;--border-subtle: #333333;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 20px rgba(0, 0, 0, .4);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--font-serif: "Noto Serif SC", serif;--font-sans: "Noto Sans SC", -apple-system, BlinkMacSystemFont, sans-serif;--transition-fast: .15s ease;--transition-normal: .25s ease;--element-fire: #e8a4a4;--element-water: #a4b8e8;--element-wood: #b8d4a4;--element-metal: #e8d4a4;--element-earth: #d4c4a4}[data-theme=light]{--bg-primary: #f5f5f5;--bg-secondary: #ffffff;--bg-tertiary: #fafafa;--bg-input: #f0f0f0;--text-primary: #2a2a2a;--text-secondary: #666666;--text-muted: #999999;--accent-primary: #b8956a;--accent-secondary: #c9a66b;--accent-tertiary: #a8855a;--border-color: #e0e0e0;--border-subtle: #eeeeee;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .08);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 20px rgba(0, 0, 0, .12)}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);font-weight:600;letter-spacing:.02em}button{font-family:inherit;cursor:pointer;border:none;outline:none}input,textarea{font-family:inherit;border:none;outline:none;background:transparent}.app{min-height:100vh;display:flex;flex-direction:column}.container{max-width:800px;margin:0 auto;padding:0 1rem;width:100%}.header{padding:1.25rem 0;border-bottom:1px solid var(--border-subtle);background:var(--bg-primary);position:sticky;top:0;z-index:100}.header-content{display:flex;justify-content:space-between;align-items:center}.logo{font-family:var(--font-serif);font-size:1.5rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:.5rem}.logo-icon{width:32px;height:32px;background:var(--accent-primary);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:1.25rem;color:var(--bg-primary)}.header-actions{display:flex;gap:.75rem}.icon-btn{width:36px;height:36px;border-radius:var(--radius-sm);background:var(--bg-tertiary);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.icon-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.main{flex:1;padding:2rem 0}.input-section{max-width:600px;margin:0 auto}.input-label{display:block;font-size:.875rem;color:var(--text-secondary);margin-bottom:.5rem}.input-group{margin-bottom:1.5rem}.input-field{width:100%;padding:.875rem 1rem;background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:1rem;transition:all var(--transition-fast)}.input-field:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px #d4a57426}.input-field::placeholder{color:var(--text-muted)}textarea.input-field{min-height:100px;resize:vertical;line-height:1.6}.submit-btn{width:100%;padding:.875rem 1.5rem;background:var(--accent-primary);color:var(--bg-primary);font-size:1rem;font-weight:500;border-radius:var(--radius-md);transition:all var(--transition-fast)}.submit-btn:hover:not(:disabled){background:var(--accent-secondary);transform:translateY(-1px);box-shadow:var(--shadow-md)}.submit-btn:disabled{opacity:.5;cursor:not-allowed}.result-section{padding:1.5rem 0}.result-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.result-hint{font-size:.875rem;color:var(--text-muted)}.result-content{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:1.5rem}.result-text{line-height:1.8;color:var(--text-primary);word-break:break-word}.gua-display{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1.5rem;background:var(--bg-tertiary);border-radius:var(--radius-lg);margin-bottom:1.5rem}.gua-symbol{font-size:4rem;line-height:1;font-family:var(--font-serif)}.gua-name{font-family:var(--font-serif);font-size:1.5rem;font-weight:600}.gua-info{font-size:.875rem;color:var(--text-secondary);text-align:center}.gua-detail{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem 1.5rem;margin-top:1rem;font-size:.875rem}.gua-detail-item{display:flex;flex-direction:column;gap:.25rem}.gua-detail-label{color:var(--text-muted);font-size:.75rem}.gua-detail-value{color:var(--text-primary)}.gua-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1rem}@media (max-width: 768px){.gua-row{grid-template-columns:1fr}}.gua-card{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:1rem;display:flex;flex-direction:column;align-items:center;gap:.5rem}.gua-card.main-gua{border-color:var(--border-color)}.gua-card.hugua{border-color:#8b5cf6}.gua-card.biangua{border-color:#f59e0b}.gua-card-header{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.gua-card-symbol{font-size:2.5rem;line-height:1;transition:all .3s ease}.hexagram-full-display{display:flex;flex-direction:column;gap:.25rem;padding:.5rem;margin:.25rem 0}.trigram-group{display:flex;align-items:center;gap:.5rem;padding:.25rem .5rem;border-left:4px solid;border-radius:0 6px 6px 0;background:var(--bg-tertiary);transition:all .3s ease}.trigram-group:hover{background:var(--bg-input)}.trigram-label{font-size:.625rem;font-weight:700;width:1.25rem;text-align:center;letter-spacing:.05em}.trigram-lines{display:flex;flex-direction:column;gap:4px;flex:1;min-width:60px}.yao-line{border-radius:3px;min-height:6px}.yao-moving{animation:pulse-glow 1.5s ease-in-out infinite}@keyframes pulse-glow{0%,to{filter:brightness(1)}50%{filter:brightness(1.2)}}.gua-card-symbol-ncr{font-size:2rem;line-height:1.2;margin:.25rem 0;opacity:.6}.main-gua .gua-card-symbol-ncr{color:var(--text-primary);text-shadow:0 0 15px rgba(212,165,116,.25),0 0 30px rgba(212,165,116,.1)}.hugua .gua-card-symbol-ncr{background:linear-gradient(135deg,var(--element-water),#c4b5fd);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 15px rgba(164,184,232,.3),0 0 30px rgba(164,184,232,.1)}.biangua .gua-card-symbol-ncr{background:linear-gradient(135deg,var(--element-metal),var(--accent-primary));-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 15px rgba(232,212,164,.3),0 0 30px rgba(212,165,116,.1)}.gua-card-name{font-size:1.125rem;color:var(--text-primary);font-weight:500}.gua-card-bagua{display:flex;flex-direction:column;gap:.5rem;width:100%;margin-top:.5rem}.bagua-item{display:flex;align-items:center;gap:.5rem;padding:.375rem .5rem;background:var(--bg-primary);border-radius:var(--radius-sm);font-size:.875rem}.bagua-label{font-size:.75rem;color:var(--text-muted);min-width:2rem}.bagua-name{font-weight:500;color:var(--text-primary)}.bagua-element{font-size:.75rem;color:var(--text-secondary)}.ti-tag,.yong-tag{font-size:.625rem;padding:.125rem .375rem;border-radius:var(--radius-sm);margin-left:auto}.ti-tag{background:#3b82f6;color:#fff}.yong-tag{background:#ef4444;color:#fff}.gua-card-info{display:flex;gap:1rem;width:100%;justify-content:center;margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border-subtle)}.info-item{display:flex;flex-direction:column;align-items:center;gap:.125rem}.info-label{font-size:.625rem;color:var(--text-muted);text-transform:uppercase}.info-value{font-size:.875rem;color:var(--text-primary)}.gua-card-yaoci{width:100%;margin-top:.5rem;padding:.5rem;background:var(--bg-primary);border-radius:var(--radius-sm);border-left:3px solid var(--accent-primary)}.yaoci-title{font-size:.75rem;color:var(--accent-primary);margin-bottom:.25rem}.yaoci-text{font-size:.8125rem;color:var(--text-secondary);line-height:1.5}.messages{display:flex;flex-direction:column;gap:1rem}.message{padding:1rem 1.25rem;border-radius:var(--radius-md);max-width:85%;animation:fadeIn .3s ease}.message-user{align-self:flex-end;background:var(--accent-primary);color:var(--bg-primary)}.message-assistant{align-self:flex-start;background:var(--bg-secondary);border:1px solid var(--border-subtle)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.followup-section{border-top:1px solid var(--border-subtle);padding-top:1.5rem;margin-top:1.5rem}.followup-form{display:flex;gap:.75rem}.followup-input{flex:1;padding:.75rem 1rem;background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary)}.followup-input:focus{border-color:var(--accent-primary)}.followup-btn{padding:.75rem 1.25rem;background:var(--accent-primary);color:var(--bg-primary);border-radius:var(--radius-md);font-weight:500;transition:all var(--transition-fast)}.followup-btn:hover:not(:disabled){background:var(--accent-secondary)}.followup-count{font-size:.75rem;color:var(--text-muted);text-align:center;margin-top:.5rem}.actions{display:flex;gap:.75rem;margin-top:1rem}.action-btn{padding:.5rem 1rem;background:var(--bg-tertiary);color:var(--text-secondary);border-radius:var(--radius-sm);font-size:.875rem;transition:all var(--transition-fast)}.action-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.action-btn-primary{background:var(--accent-primary);color:var(--bg-primary)}.action-btn-primary:hover{background:var(--accent-secondary);color:var(--bg-primary)}.history-list{display:flex;flex-direction:column;gap:.75rem}.history-item{padding:1rem 1.25rem;background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.history-item:hover{border-color:var(--accent-primary)}.history-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.history-item-question{font-weight:500;color:var(--text-primary)}.history-item-number{font-size:.875rem;color:var(--accent-primary)}.history-item-meta{font-size:.75rem;color:var(--text-muted)}.empty-state{text-align:center;padding:3rem 1rem;color:var(--text-muted)}.empty-state-icon{font-size:3rem;margin-bottom:1rem;opacity:.5}.loading{display:flex;align-items:center;justify-content:center;padding:2rem}.loading-spinner{width:32px;height:32px;border:3px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.streaming-indicator{display:inline-block;margin-left:.5rem;font-size:.875rem;color:var(--accent-primary);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@media (max-width: 640px){.container{padding:0 .875rem}.header{padding:1rem 0}.logo{font-size:1.25rem}.main{padding:1.5rem 0}.gua-symbol{font-size:3rem}.gua-name{font-size:1.25rem}.gua-detail{grid-template-columns:1fr}.result-content{padding:1rem}.message{max-width:90%;padding:.75rem 1rem}}.markdown-body{line-height:1.8;font-size:1rem}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4{color:var(--text-primary);margin-top:1.5em;margin-bottom:.5em;font-weight:600}.markdown-body h1{font-size:1.5rem}.markdown-body h2{font-size:1.25rem}.markdown-body h3{font-size:1.125rem}.markdown-body p{margin:.75em 0}.markdown-body strong{color:var(--accent-primary);font-weight:600}.markdown-body em{color:var(--text-secondary)}.markdown-body ul,.markdown-body ol{margin:.75em 0;padding-left:1.5em}.markdown-body li{margin:.25em 0}.markdown-body code{background:var(--bg-tertiary);padding:.125em .375em;border-radius:4px;font-family:JetBrains Mono,monospace;font-size:.875em}.markdown-body pre{background:var(--bg-tertiary);padding:1rem;border-radius:var(--radius-sm);overflow-x:auto;margin:1em 0}.markdown-body pre code{background:none;padding:0}.markdown-body blockquote{border-left:3px solid var(--accent-primary);margin:1em 0;padding:.5em 1em;background:var(--bg-tertiary);color:var(--text-secondary)}.markdown-body hr{border:none;border-top:1px solid var(--border-subtle);margin:1.5em 0}.markdown-body a{color:var(--accent-primary);text-decoration:none}.markdown-body a:hover{text-decoration:underline}.markdown-body table{width:100%;border-collapse:collapse;margin:1em 0}.markdown-body th,.markdown-body td{border:1px solid var(--border-subtle);padding:.5em;text-align:left}.markdown-body th{background:var(--bg-tertiary)}
