:root{color-scheme:light dark;--bg:#fafaf8;--paper:#fff;--ink:#252a27;--muted:#717770;--line:#e3e6df;--soft:#f1f3ed;--accent:#315747;--on-accent:#fff;--accent-soft:#edf3ee;--error:#a03727;--shadow:0 8px 38px #2331270e;font:16px/1.7 "PingFang SC","Microsoft YaHei",system-ui,sans-serif}
html{scrollbar-gutter:stable}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--accent)}button:disabled{opacity:.4;cursor:default}[hidden]{display:none!important}h1,h2,h3,p{margin:0}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}textarea:focus{outline:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:25px clamp(20px,4vw,56px)}.brand{border:0;background:none;padding:0;display:flex;align-items:center;gap:12px;text-align:left;min-height:44px}.brand-name{font-family:"Songti SC","SimSun",serif;letter-spacing:3px;font-size:25px;font-weight:600}.nav{display:flex;align-items:center;gap:16px}.quiet{background:none;border:0;padding:8px 3px;min-height:44px;color:var(--muted);font-size:14px}.quiet:hover{color:var(--ink)}
main{max-width:804px;padding:0 24px 36px;margin:0 auto}.welcome{padding-top:clamp(34px,9vh,96px);text-align:center;margin-bottom:33px}h1{font-family:"Songti SC","SimSun",serif;font-weight:400;letter-spacing:1px;font-size:clamp(30px,4.2vw,42px);line-height:1.5}
.composer{background:var(--paper);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:19px 20px 14px;transition:border-color .15s}.composer:focus-within{border-color:#99b19e}textarea{display:block;width:100%;min-height:98px;max-height:320px;padding:0;border:0;resize:vertical;background:transparent;line-height:1.85;font-size:17px}textarea::placeholder{color:#91958e}.composer-bottom{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:14px}.composer-left{display:flex;align-items:center;gap:12px;min-width:0}.attach{width:38px;min-width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:transparent;font-size:25px;line-height:1;display:grid;place-items:center}.attach:hover{background:var(--soft)}.input-hint{color:var(--muted);font-size:12px}.send{width:42px;min-width:42px;height:42px;background:var(--accent);color:var(--on-accent);border:0;border-radius:12px;font-size:23px;line-height:1}.send:hover:not(:disabled){filter:brightness(1.13)}.attachment{display:flex;align-items:center;gap:12px;padding:6px 0 16px;min-width:0}.attachment img{height:48px;width:60px;object-fit:cover;border-radius:7px}.attachment-name{font-size:13px;overflow-wrap:anywhere;min-width:0;flex:1}.remove{border:0;background:var(--soft);border-radius:50%;width:32px;min-width:32px;height:32px;line-height:1}
.templates{margin-top:21px}.template-list{display:flex;justify-content:center;flex-wrap:wrap;gap:8px}.template{font-size:13px;padding:7px 13px;border:1px solid var(--line);border-radius:20px;background:transparent;min-height:40px;white-space:nowrap}.template:hover{border-color:#b5c4b8;background:var(--accent-soft);color:var(--accent)}
.conversation-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:24px 0}.conversation-head h2{font-size:14px;color:var(--muted);font-weight:400;overflow-wrap:anywhere}.thread{padding:0}.message{margin:0 0 29px;overflow-wrap:anywhere}.message.user{margin-left:15%;text-align:right}.message-body{white-space:pre-wrap;line-height:1.95}.user .message-body{display:inline-block;background:var(--soft);border-radius:16px 16px 4px 16px;padding:12px 17px;text-align:left;max-width:100%;font-size:15px}.message-image{display:block;max-width:100%;max-height:420px;object-fit:contain;border-radius:12px;margin:12px 0}.user .message-image{margin-left:auto}.source-link{display:block;border:0;background:var(--accent-soft);color:var(--accent);border-radius:6px;padding:6px 10px;margin:8px 0 16px;text-align:left;font-size:13px}.status{color:var(--muted);font-size:13px;min-height:24px;margin:12px 0}.turn-actions{display:flex;gap:12px;margin-bottom:12px}.alert{color:var(--error);font-size:13px;padding:10px 0}.footer{text-align:center;color:var(--muted);font-size:12px;padding:10px 24px 28px}
dialog{border:1px solid var(--line);border-radius:20px;background:var(--paper);color:var(--ink);max-width:600px;width:calc(100% - 32px);max-height:85vh;padding:24px}dialog::backdrop{background:#12241b55}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.dialog-head h2{font-size:19px;font-weight:500}.dialog-head button{border:0;background:none;font-size:26px;width:40px;height:40px}.dialog-note,.edition{color:var(--muted);font-size:13px;margin:12px 0}.history-item{display:flex;gap:14px;align-items:center;border-top:1px solid var(--line);padding:12px 0}.history-open{flex:1;text-align:left;overflow-wrap:anywhere;background:none;border:0;min-height:44px}.history-delete{color:var(--error)}blockquote{white-space:pre-wrap;border-left:3px solid var(--accent);padding:10px 18px;margin:18px 0;background:var(--soft)}.source-original{display:inline-block;margin-top:16px;overflow-wrap:anywhere}.source-copy{white-space:pre-wrap;font-size:14px;line-height:1.9}details{margin-top:16px}summary{cursor:pointer;font-size:13px;color:var(--muted)}
.chart{padding:18px 0;margin:18px 0;border-top:1px solid var(--line)}.chart-title{font-size:15px;font-weight:500}.chart-note{font-size:12px;color:var(--muted);margin-top:8px}.chart table{width:100%;table-layout:fixed;border-collapse:collapse;margin-top:14px}.chart th{font-size:12px;font-weight:400;color:var(--muted);padding:8px}.chart td{text-align:center;border-top:1px solid var(--line);padding:14px 4px;white-space:pre-wrap;font:26px/1.6 "Songti SC","SimSun",serif}.chart td.uncertain{font:13px/1.7 system-ui,sans-serif;color:var(--muted)}
@media(max-width:520px){.topbar{padding:16px 18px;gap:8px}.nav{gap:12px}main{padding:0 18px 26px}.welcome{padding-top:42px}h1{font-size:30px}.composer{padding:16px}.input-hint{font-size:11px}.message.user{margin-left:7%}.chart{padding:12px 0}.chart td{font-size:23px}.footer{font-size:11px}.template{padding:7px 11px}}
@media(prefers-color-scheme:dark){:root{--bg:#181c19;--paper:#202621;--ink:#e6eae4;--muted:#a2ada1;--line:#374238;--soft:#29332b;--accent:#a4cbb0;--on-accent:#1c3022;--accent-soft:#293a2e;--error:#f1a391;--shadow:none}}
.table-scroll{overflow-x:auto;max-width:100%}.chart .data-table{table-layout:auto}.chart .data-table td{font:12px/1.7 system-ui,sans-serif;padding:9px 7px;min-width:56px}.chart .data-table th{white-space:nowrap}.ziwei-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-top:16px}.palace,.palace-gap{background:var(--paper);padding:10px 8px}.palace h4{margin:0;font-size:13px;color:var(--accent)}.major-stars{font-size:13px;line-height:1.8}.palace .chart-note{font-size:11px;margin-top:3px}.astro-wheel{display:block;width:100%;max-width:440px;margin:12px auto;color:var(--accent)}.astro-wheel text{fill:currentColor}.hex-group{display:flex;flex-wrap:wrap;gap:24px;margin-top:16px}.hexagram{flex:1;min-width:220px}.hex-line{display:flex;align-items:center;gap:8px;font-size:11px;min-height:32px}.line-glyph{display:flex;gap:8px;width:64px;flex-shrink:0}.line-glyph i{display:block;height:5px;background:var(--accent);flex:1}.line-glyph.yang{gap:0}.line-label{font-size:12px}.tarot-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:12px;margin-top:16px}.tarot-card{text-align:center;border:1px solid var(--line);border-radius:10px;background:var(--soft);padding:20px 10px}.tarot-name{font:21px/1.5 "Songti SC","SimSun",serif;margin:24px 0}.tarot-card>p:last-child{font-size:12px;color:var(--accent)}
@media(max-width:520px){.ziwei-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.palace-gap{display:none}.palace{padding:10px}.tarot-cards{gap:6px}.tarot-card{padding:12px 6px}.tarot-name{font-size:18px}.chart .data-table td{font-size:11px}}
.subject-picker{border:0;border-bottom:1px solid var(--line);padding:0 0 14px;margin:0 0 14px;min-width:0}.subject-picker legend{font-size:13px;color:var(--muted);margin-bottom:8px}#subject-options{display:flex;flex-wrap:wrap;gap:8px}.subject-option{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:14px;padding:5px 10px;font-size:12px;max-width:100%;overflow-wrap:anywhere}.subject-option input{accent-color:var(--accent)}.chart-subject{font-size:13px;color:var(--accent);margin-bottom:8px}
.in-conversation .topbar{position:sticky;top:0;background:var(--bg);z-index:6;border-bottom:1px solid var(--line);padding-top:14px;padding-bottom:14px}
.in-conversation{padding-bottom:var(--composer-height,212px)}
.in-conversation main{min-height:calc(100dvh - var(--composer-height,212px) - 140px);display:flex;flex-direction:column;padding-bottom:0}.in-conversation .thread{flex:1}
.in-conversation #question-form{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(756px,calc(100% - 48px));z-index:5;background:linear-gradient(transparent,var(--bg) 14px);padding:16px 0 max(10px,env(safe-area-inset-bottom));margin-top:auto}
.in-conversation textarea{min-height:58px;font-size:15px}.in-conversation .composer{border-radius:16px;padding:14px 18px 12px}.in-conversation .composer-bottom{margin-top:8px}.in-conversation .conversation-head h2{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.composer-meta{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:11px;padding:7px 4px 0;min-height:26px}.composer:focus-within{box-shadow:0 0 0 3px var(--accent-soft)}
.work-flow{margin:0 0 29px;scroll-margin-top:94px;overflow-wrap:anywhere}.work-head{display:flex;align-items:center;gap:12px;min-height:34px;margin-bottom:6px}.work-flow .status{flex:1;min-width:0;font-size:12px;margin:0;height:22px;min-height:22px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}.elapsed{font-size:11px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;min-width:68px;text-align:right}.work-flow .turn-actions{align-items:center;justify-content:space-between;margin:8px 0;gap:14px}.work-flow .turn-actions .input-hint{flex:1}.connection{padding:9px 0;font-size:12px;color:var(--muted);margin-top:8px}
.answer-content{margin-top:20px;animation:answer-arrive .35s ease-out}.answer-content:empty{display:none}@keyframes answer-arrive{from{opacity:0}to{opacity:1}}
.message.assistant{scroll-margin-top:94px}.message.assistant .message-body+.message-body{margin-top:16px}
.followups{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 8px}.followups-label{font-size:12px;color:var(--muted);margin-right:2px}.followups .template{font-size:12px;background:var(--paper);white-space:normal;text-align:left}.jump-latest{position:absolute;right:0;top:-32px;border:1px solid var(--line);border-radius:20px;background:var(--paper);box-shadow:var(--shadow);font-size:12px;padding:8px 14px;color:var(--accent);min-height:40px}
@keyframes breathe{50%{opacity:.4}}
.composer-action{width:42px;height:42px;flex-shrink:0}.stop{display:grid;place-items:center;border:1px solid var(--line);border-radius:12px;background:var(--soft);padding:0;width:42px;height:42px;font-size:12px}.stop span{font-size:12px}.stop:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.in-conversation .composer-left{flex:1}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(max-width:520px){.in-conversation .topbar{padding-top:9px;padding-bottom:9px}.in-conversation main{min-height:calc(100dvh - var(--composer-height,212px) - 120px)}.in-conversation #question-form{width:calc(100% - 36px)}.work-flow{margin-bottom:24px;scroll-margin-top:80px}.work-head{gap:9px}.elapsed{font-size:11px}.work-flow .turn-actions{flex-wrap:wrap}.work-flow .turn-actions .input-hint{flex-basis:100%}.work-flow .turn-actions button{padding:6px 12px;border:1px solid var(--line);border-radius:16px}.composer-meta>span:last-child{display:none}.in-conversation .composer{padding:12px}.in-conversation .composer-left{gap:8px}.message.assistant{scroll-margin-top:80px}.in-conversation .footer{padding-top:16px}}
