:root{--bg: #0e1020;--panel: rgba(255, 255, 255, .04);--border: rgba(212, 175, 55, .22);--gold: #d4af37;--gold-soft: #e8cf86;--text: #e9e9f2;--text-dim: #9aa0b8;--user: #3a5bd9;--bot: #1d2138}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:PingFang SC,Microsoft YaHei,system-ui,-apple-system,sans-serif;color:var(--text);background:radial-gradient(1200px 600px at 20% -10%,#20264d 0%,transparent 60%),radial-gradient(900px 500px at 100% 0%,#2a1d3d 0%,transparent 55%),var(--bg)}.app{display:flex;flex-direction:column;height:100%;max-width:540px;margin:0 auto;background:linear-gradient(180deg,#0e10208c,#0e1020eb);box-shadow:0 0 40px #00000073}.app-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);background:linear-gradient(90deg,rgba(212,175,55,.1),transparent)}.brand{font-size:18px;font-weight:700;letter-spacing:2px;background:linear-gradient(90deg,var(--gold),var(--gold-soft));-webkit-background-clip:text;background-clip:text;color:transparent}.header-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.header-btn{padding:6px 14px;border:1px solid var(--border);border-radius:20px;background:#d4af3714;color:var(--gold-soft);font-size:13px;cursor:pointer}.header-btn.ghost{background:transparent;color:var(--text-dim);border-color:var(--border)}.header-btn:active{transform:scale(.96)}.app-footer{padding:8px 12px;font-size:11px;color:var(--text-dim);text-align:center;border-top:1px solid var(--border)}.chat{flex:1;display:flex;flex-direction:column;min-height:0}.messages{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:12px}.load-older{text-align:center;font-size:12px;color:var(--text-dim);padding:6px 0 2px}.load-older.hint{opacity:.55}.chat-empty{margin:auto;color:var(--text-dim);text-align:center;line-height:2;font-size:14px;padding:20px}.bubble{max-width:82%;padding:10px 14px;border-radius:14px;line-height:1.7;font-size:14px;white-space:pre-wrap;word-break:break-word}.bubble.user{align-self:flex-end;background:var(--user);color:#fff;border-bottom-right-radius:4px}.bubble.assistant{align-self:flex-start;background:var(--bot);border:1px solid var(--border);border-bottom-left-radius:4px;white-space:normal}.bubble.card{align-self:stretch;max-width:100%;background:transparent;border:none;padding:0}.bubble.error{align-self:stretch;max-width:100%;background:#e5484d1a;border:1px solid rgba(229,72,77,.4);border-left:3px solid #e5484d;border-radius:8px}.bubble.error .bubble-role{color:#e5484d}.bubble-role{font-size:11px;color:var(--text-dim);margin-bottom:4px}.bubble.user .bubble-role{color:#ffffffb3}.composer{display:flex;gap:10px;padding:12px;border-top:1px solid var(--border);background:#0003}.composer textarea{flex:1;resize:none;height:48px;background:#0c0e1c;border:1px solid var(--border);border-radius:10px;color:var(--text);padding:12px;font-size:14px;font-family:inherit}.composer button{align-self:flex-end;padding:0 18px;height:48px;border:none;border-radius:10px;background:linear-gradient(90deg,var(--gold),#b8902b);color:#1a1407;font-weight:600;cursor:pointer}.sheet-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:flex-end;z-index:50}.sheet{width:100%;max-width:540px;margin:0 auto;background:linear-gradient(180deg,#15172e,#11132a);border:1px solid var(--border);border-top-left-radius:20px;border-top-right-radius:20px;padding:20px 18px 18px;max-height:86vh;overflow-y:auto;animation:slideUp .25s ease}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.sheet-handle{width:40px;height:4px;border-radius:2px;background:var(--border);margin:0 auto 10px}.sheet-title{font-size:17px;font-weight:700;color:var(--gold-soft);text-align:center}.sheet-sub{text-align:center;font-size:12px;color:var(--text-dim);margin:4px 0 16px}.sheet-close{margin-top:14px;width:100%;padding:10px;background:transparent;border:1px solid var(--border);border-radius:10px;color:var(--text-dim);cursor:pointer;font-size:13px;transition:background .15s}.sheet-close:active{transform:scale(.98)}.profile-form{display:flex;flex-direction:column;gap:16px}.field{display:flex;flex-direction:column;gap:7px}.field label{font-size:13px;color:var(--text-dim)}.field label .req{color:var(--gold);font-style:normal;margin-left:2px}.field input{background:#0c0e1c;border:1px solid var(--border);border-radius:10px;color:var(--text);color-scheme:dark;padding:12px;font-size:15px;transition:border-color .15s,box-shadow .15s}.field input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 2px #d4af3726}.field-hint{font-size:11px;color:var(--text-dim);opacity:.85}.datetime-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.dt-cell select{width:100%;padding:11px 4px;background:#0c0e1c;border:1px solid var(--border);border-radius:8px;color:var(--text);color-scheme:dark;font-size:14px;text-align:center;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;transition:border-color .15s,box-shadow .15s}.dt-cell select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 2px #d4af3726}.gender-toggle{display:flex;gap:12px}.gender-toggle button{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:12px;background:#0c0e1c;border:1px solid var(--border);border-radius:10px;color:var(--text-dim);font-size:15px;cursor:pointer;transition:all .15s}.gender-toggle button .g-icon{font-size:17px}.gender-toggle button.active{background:linear-gradient(90deg,#d4af372e,#d4af370d);border-color:var(--gold);color:var(--gold);box-shadow:0 0 0 1px var(--gold) inset}.calc-btn{margin-top:4px;padding:14px;border:none;border-radius:12px;background:linear-gradient(90deg,var(--gold),#b8902b);color:#1a1407;font-weight:700;font-size:15px;cursor:pointer;box-shadow:0 6px 16px #d4af3740;transition:transform .12s,box-shadow .12s}.calc-btn:active{transform:translateY(1px);box-shadow:0 3px 10px #d4af3733}.form-error{color:#ff8a7a;font-size:12px;text-align:center}.bazi-card{margin-top:10px;background:linear-gradient(180deg,rgba(212,175,55,.06),transparent);border:1px solid var(--border);border-radius:14px;padding:16px}.bubble.card .bazi-card{margin-top:0}.bazi-head{display:flex;justify-content:space-between;color:var(--gold-soft);font-size:14px;margin-bottom:12px}.pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;text-align:center}.pillar{background:#0c0e1c;border:1px solid var(--border);border-radius:10px;padding:10px 4px}.pillar-label{font-size:11px;color:var(--text-dim)}.pillar-gan,.pillar-zhi{font-size:22px;line-height:1.3;font-weight:600}.bazi-meta{display:flex;flex-wrap:wrap;gap:6px 14px;margin:12px 0;font-size:13px;color:var(--text-dim)}.bazi-meta b{color:var(--gold-soft)}.elements{margin:10px 0}.element-row{display:flex;align-items:center;gap:8px;margin:5px 0;font-size:12px}.element-name{width:16px;font-weight:600}.element-bar{flex:1;height:8px;background:#0c0e1c;border-radius:6px;overflow:hidden}.element-fill{height:100%;border-radius:6px}.element-val{width:28px;text-align:right;color:var(--text-dim)}.section{margin-top:12px}.section-title{font-size:12px;color:var(--gold);margin-bottom:6px;letter-spacing:1px}.tags{display:flex;flex-wrap:wrap;gap:6px}.tag{background:#0c0e1c;border:1px solid var(--border);border-radius:6px;padding:3px 8px;font-size:12px}.spouse-note{font-size:13px;line-height:1.7;color:var(--text)}.dayun{display:flex;flex-wrap:wrap;gap:6px}.yun{background:#0c0e1c;border:1px solid var(--border);border-radius:6px;padding:4px 8px;font-size:12px}.yun em{color:var(--text-dim);font-style:normal;margin-left:4px}.bubble.loading{opacity:.92}.calc-text{color:var(--gold-soft)}.dots{display:inline-flex;gap:4px;margin-left:6px;vertical-align:middle}.dots i{width:6px;height:6px;border-radius:50%;background:var(--gold);animation:blink 1.2s infinite ease-in-out}.dots i:nth-child(2){animation-delay:.2s}.dots i:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}.bubble.assistant .bubble-content>:first-child{margin-top:0}.bubble.assistant .bubble-content>:last-child{margin-bottom:0}.bubble.assistant .bubble-content h1,.bubble.assistant .bubble-content h2,.bubble.assistant .bubble-content h3{font-size:15px;color:var(--gold-soft);margin:8px 0 4px}.bubble.assistant .bubble-content p{margin:4px 0}.bubble.assistant .bubble-content ul,.bubble.assistant .bubble-content ol{margin:4px 0;padding-left:20px}.bubble.assistant .bubble-content li{margin:2px 0}.bubble.assistant .bubble-content li>p{margin:0}.bubble.assistant .bubble-content hr{margin:8px 0;border:none;border-top:1px solid var(--border)}.bubble.assistant .bubble-content strong{color:var(--gold)}.bubble.assistant .bubble-content code{background:#0c0e1c;border:1px solid var(--border);border-radius:4px;padding:1px 5px;font-size:12px}.bubble.assistant .bubble-content blockquote{margin:4px 0;padding-left:10px;border-left:3px solid var(--border);color:var(--text-dim)}.bubble.assistant .bubble-content table{border-collapse:collapse;width:100%;margin:4px 0;font-size:12px}.bubble.assistant .bubble-content th,.bubble.assistant .bubble-content td{border:1px solid var(--border);padding:4px 6px;text-align:left}
