:root{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;color:#252820;background:#f4f2ec;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--ink: #252820;--muted: #77786f;--line: #dedbd1;--red: #a83227;--surface: #fffefa;--soft: #f5eee4}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button,select{cursor:pointer}.app-shell{min-height:100vh;background:#f4f2ec}.topbar{height:68px;max-width:1200px;margin:0 auto;padding:0 48px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:inline-flex;align-items:center;gap:10px;color:var(--ink);font-size:16px;font-weight:700;letter-spacing:.03em;text-decoration:none}.brand-mark{display:grid;width:29px;height:29px;place-items:center;border:1px solid #b94739;border-radius:50%;color:var(--red);font-size:15px}.topbar-note{color:#77786f;font-size:12px}.main-layout{width:min(1100px,calc(100% - 96px));margin:0 auto;padding:70px 0 74px;display:grid;grid-template-columns:minmax(250px,.78fr) minmax(480px,1.22fr);gap:clamp(48px,8vw,104px);align-items:start}.intro{position:sticky;top:34px;padding-top:20px}.hero-emblem{width:86px;height:86px;position:relative;display:grid;place-items:center;margin-bottom:29px;border:1px solid #d8b9a5;border-radius:50%;background:#fbf5ed}.hero-emblem img{width:100%;height:100%;object-fit:contain}.hero-emblem span{position:absolute;inset:0;display:grid;place-items:center;color:#8f2b21;font-family:Songti SC,STSong,serif;font-size:23px;font-weight:700}.eyebrow{margin:0 0 14px;color:var(--red);font-size:13px;font-weight:600}.intro h1{margin:0;color:var(--ink);font-family:Songti SC,STSong,"Noto Serif CJK SC",serif;font-size:clamp(34px,4vw,48px);font-weight:600;line-height:1.38;letter-spacing:.015em}.intro-copy{max-width:340px;margin:20px 0 0;color:#62635c;font-size:14px;line-height:1.9}.privacy-note{display:flex;align-items:flex-start;gap:12px;max-width:350px;margin-top:31px;padding-top:17px;border-top:1px solid var(--line);color:#77786f;font-size:12px;line-height:1.7}.privacy-rule{flex:0 0 3px;height:32px;background:#b94739}.content-column{display:grid;gap:18px}.form-panel,.result-panel{border:1px solid #e3dfd5;background:var(--surface)}.form-panel{padding:31px 34px 30px}.reading-fields{display:grid;gap:0;min-width:0;margin:0;padding:0;border:0}.reading-fields:disabled input,.reading-fields:disabled textarea,.reading-fields:disabled button{cursor:wait}.reading-fields:disabled .picker-trigger,.reading-fields:disabled .gender-option{opacity:.72}.person-switch{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:-4px 0 25px;padding:4px;border:1px solid #e3dfd5;background:#f7f3eb}.person-switch button{min-height:38px;border:0;background:transparent;color:var(--muted);font-size:13px;font-weight:600}.person-switch button.is-selected{background:var(--surface);color:var(--red);box-shadow:0 1px 4px #26241d14}.section-heading{display:flex;gap:13px;align-items:flex-start;margin-bottom:26px}.section-index{flex:0 0 auto;margin-top:3px;color:var(--red);font-family:Songti SC,STSong,serif;font-size:17px}.section-heading h2{margin:0;color:var(--ink);font-family:Songti SC,STSong,serif;font-size:21px;line-height:1.45;font-weight:600}.section-heading p{margin:5px 0 0;color:var(--muted);font-size:13px;line-height:1.7}.field-group{position:relative;min-width:0}.question-label-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.question-label-row label{margin-bottom:0}.prompt-refresh{padding:2px 0;border:0;background:transparent;color:var(--red);font-size:11px;text-decoration:underline;text-underline-offset:3px}.prompt-refresh:hover{color:#8f281f}.field-group label{display:block;margin-bottom:8px;color:#33352e;font-size:13px;font-weight:600}.field-group input,.field-group select,.field-group textarea{display:block;width:100%;min-height:46px;padding:11px 13px;border:1px solid #d8d5cb;border-radius:3px;outline:none;background:#fff;color:var(--ink);font-size:14px;transition:border-color .15s ease,box-shadow .15s ease}.field-group textarea{min-height:102px;resize:vertical;line-height:1.7}.field-group input:focus,.field-group select:focus,.field-group textarea:focus{border-color:var(--red);box-shadow:0 0 0 3px #a832271a}.field-group [aria-invalid=true]{border-color:#b33228}.field-group ::placeholder{color:#99988f}.field-hint,.field-error{margin:7px 0 0;font-size:12px;line-height:1.5}.field-hint{color:#85857d}.field-error,.form-error{color:#a83227}.character-count{position:absolute;right:0;bottom:-21px;color:#88877f;font-size:11px}.birth-section{margin-top:29px;padding-top:22px;border-top:1px solid #e9e6dd}.birth-heading{display:flex;align-items:baseline;gap:10px;margin-bottom:15px}.birth-heading h3{margin:0;color:#34362f;font-size:15px;font-weight:650}.birth-heading span{color:#87867e;font-size:11px}.birth-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px 13px}.birth-fields .field-group:last-child{grid-column:1 / -1}.saved-profile-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 15px;border:1px solid #e5d7c8;background:#fbf6ee}.saved-profile-card div{display:grid;gap:5px;min-width:0}.saved-profile-card strong{color:var(--ink);font-size:14px;font-weight:650}.saved-profile-card span{color:var(--muted);font-size:11px}.saved-profile-card button,.clear-profile-button{flex:0 0 auto;padding:4px 0;border:0;background:transparent;color:var(--red);font-size:12px;text-decoration:underline;text-underline-offset:3px}.clear-profile-button{margin-top:12px;color:var(--muted);font-size:11px}.clear-profile-button:hover{color:var(--red)}.remember-profile{display:flex!important;grid-column:1 / -1;align-items:center;gap:8px;margin:-2px 0 0!important;color:var(--muted)!important;font-size:11px!important;font-weight:500!important;cursor:pointer}.remember-profile input{width:15px!important;min-height:15px!important;accent-color:var(--red)}.gender-group{margin:0;padding:0;border:0}.gender-group legend{margin-bottom:8px;padding:0;color:#33352e;font-size:13px;font-weight:600}.gender-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.gender-option{display:flex!important;align-items:center;justify-content:center;min-height:44px;margin:0!important;border:1px solid #d8d5cb;border-radius:3px;background:#fff;color:#55564e!important;font-size:14px!important;font-weight:500!important;cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease}.gender-option input{position:absolute;width:1px!important;height:1px;padding:0!important;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%)}.gender-option.is-selected{border-color:var(--red);background:#fbf5f1;color:#8f2b21!important}.gender-option:has(input:focus-visible){outline:3px solid rgba(168,50,39,.2);outline-offset:2px}.gender-options[aria-invalid=true] .gender-option{border-color:#b33228}.birth-picker{position:relative;min-width:0}.picker-trigger{display:flex;width:100%;min-height:46px;align-items:center;justify-content:space-between;gap:12px;padding:10px 13px;border:1px solid #d8d5cb;border-radius:3px;background:#fff;color:var(--ink);text-align:left;font-size:14px;cursor:pointer}.picker-trigger:hover,.time-input-wrap:focus-within,.picker-trigger[aria-expanded=true]{border-color:#b94739}.picker-trigger:focus-visible,.time-input-wrap button:focus-visible{outline:3px solid rgba(168,50,39,.18);outline-offset:2px}.picker-trigger.has-error,.time-input-wrap.has-error{border-color:#b33228}.picker-placeholder{color:#99988f}.picker-trigger svg,.time-input-wrap svg{width:18px;height:18px;flex:0 0 auto;fill:none;stroke:#77786f;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.time-input-wrap{display:flex;min-height:46px;align-items:center;border:1px solid #d8d5cb;border-radius:3px;background:#fff}.time-input-wrap input{min-width:0;min-height:44px;border:0;box-shadow:none!important}.time-input-wrap input:focus{border:0}.time-input-wrap button{display:grid;width:42px;height:42px;flex:0 0 auto;place-items:center;border:0;background:transparent}.picker-popover{position:absolute;z-index:10;top:calc(100% + 7px);left:0;width:min(340px,calc(100vw - 32px));padding:14px;border:1px solid #dedbd1;border-radius:5px;background:#fffefa;box-shadow:0 12px 30px #26241d24;color:var(--ink)}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;min-height:34px;margin-bottom:10px}.calendar-heading{display:flex;align-items:center;gap:5px}.calendar-heading button,.calendar-toolbar strong{border:0;background:transparent;color:#33352e;font-size:14px;font-weight:650}.calendar-heading button{padding:5px 7px;border-radius:3px;cursor:pointer}.calendar-heading button:hover{background:#f5eee4;color:var(--red)}.calendar-nav{display:grid;width:30px;height:30px;place-items:center;border:0;border-radius:3px;background:transparent;color:#77786f;font-size:24px;line-height:1;cursor:pointer}.calendar-nav:hover:not(:disabled){background:#f5eee4;color:var(--red)}.calendar-nav:disabled{opacity:.35;cursor:default}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center}.calendar-weekdays{margin-bottom:5px;color:#85857d;font-size:11px}.calendar-weekdays span{padding:7px 0}.calendar-days{row-gap:3px}.calendar-days button,.calendar-empty{display:grid;width:34px;height:34px;place-self:center;place-items:center}.calendar-days button{border:0;border-radius:50%;background:transparent;color:#3c3d36;font-size:13px;cursor:pointer}.calendar-days button:hover:not(:disabled){background:#f5eee4}.calendar-days button.is-selected,.calendar-choice-grid button.is-current{background:var(--red);color:#fff}.calendar-days button:disabled{color:#c5c2b9;cursor:default}.calendar-choice-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.calendar-choice-grid button{min-height:37px;border:0;border-radius:3px;background:transparent;color:#45463e;font-size:13px;cursor:pointer}.calendar-choice-grid button:hover:not(:disabled){background:#f5eee4;color:var(--red)}.calendar-choice-grid button.is-current:hover{background:#8f281f;color:#fff}.calendar-choice-grid button:disabled{color:#c5c2b9;cursor:default}.time-popover{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;max-height:250px;overflow-y:auto}.time-popover button{min-height:34px;border:0;border-radius:3px;background:transparent;color:#45463e;font-size:13px;cursor:pointer}.time-popover button:hover,.time-popover button.is-selected{background:#f5eee4;color:var(--red)}.time-popover button.is-selected{box-shadow:inset 0 0 0 1px #b94739}.submit-button{width:100%;min-height:49px;margin-top:26px;border:0;border-radius:3px;background:var(--red);color:#fff;font-size:15px;font-weight:600;transition:background .15s ease,transform .15s ease}.submit-button:hover:not(:disabled){background:#8f281f}.submit-button:active:not(:disabled){transform:translateY(1px)}.submit-button:disabled{cursor:wait;opacity:.72}.submit-button:focus-visible,.brand:focus-visible{outline:3px solid rgba(168,50,39,.35);outline-offset:3px}.form-error{margin:18px 0 -10px;font-size:13px}.session-summary{position:sticky;top:0;z-index:10;align-self:start;padding:19px 23px;border:1px solid #e3dfd5;background:var(--surface);box-shadow:0 7px 18px #26241d1a}.summary-title{color:var(--red);font-size:12px;font-weight:650}.summary-question{margin:8px 0 13px;color:var(--ink);font-size:16px;font-weight:600;line-height:1.7;overflow-wrap:anywhere}.summary-details{display:flex;flex-wrap:wrap;gap:8px 24px;padding-top:11px;border-top:1px solid #e9e6dd;color:var(--muted);font-size:12px}.summary-details strong{margin-left:5px;color:#45463e;font-weight:550}.waiting-notice{display:flex;align-items:center;gap:10px;margin-top:13px;color:#77786f;font-size:12px;line-height:1.6}.waiting-spinner{width:16px;height:16px;flex:0 0 auto;border:2px solid #e7d8cb;border-top-color:var(--red);border-radius:50%;animation:waiting-spin .8s linear infinite}@keyframes waiting-spin{to{transform:rotate(360deg)}}.result-panel{padding:29px 34px 27px}.result-heading{margin-bottom:16px}.result-kicker{margin:0 0 3px!important;color:var(--red)!important;font-size:11px!important}.result-heading h2{font-size:20px}.restart-button{margin:2px 0 0 auto;padding:6px 0;border:0;background:transparent;color:var(--muted);font-size:12px;text-decoration:underline;text-underline-offset:3px}.restart-button:hover:not(:disabled){color:var(--red)}.restart-button:disabled{opacity:.55;cursor:wait}.card-kicker{margin:0 0 5px;color:var(--red);font-size:11px;font-weight:700;letter-spacing:.08em}.chart-card{margin-top:18px;padding:19px 20px 16px;border:1px solid #e3dfd5;background:#fbf8f2}.conversation-thread{display:grid;gap:17px;margin:5px 0 25px}.conversation-message{max-width:100%}.conversation-message.user{justify-self:end;width:min(92%,520px);padding:13px 16px;background:#f5eee4}.conversation-message.assistant{padding:0 0 0 14px;border-left:2px solid #b94739}.message-speaker{display:block;margin-bottom:6px;color:#8f2b21;font-size:12px;font-weight:650}.conversation-message p{margin:0;color:#3c3d36;font-size:14px;line-height:1.95;white-space:pre-wrap;overflow-wrap:anywhere}.streaming-message p:after{display:inline-block;height:1em;margin-left:2px;border-right:1px solid currentColor;content:"";vertical-align:-.12em;animation:stream-caret .9s steps(2,start) infinite}@keyframes stream-caret{to{visibility:hidden}}.streaming-message .waiting-notice{margin:0;padding:4px 0}.conversation-thread>.waiting-notice{margin:0;padding:11px 13px;border:1px solid #ebe4d9;background:#fbf8f2}.chart-title{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.chart-title h3{margin:0;color:#373830;font-family:Songti SC,STSong,serif;font-size:17px}.day-master-badge{flex:0 0 auto;padding:5px 9px;border:1px solid #d6a69f;border-radius:999px;color:var(--red);font-size:11px;font-weight:650}.chart-summary{display:grid;grid-template-columns:repeat(4,1fr);margin:13px 0 21px;padding:14px 0;border-top:1px solid #e9e6dd;border-bottom:1px solid #e9e6dd}.pillar{display:grid;gap:7px;justify-items:center;border-right:1px solid #ebe8df}.pillar.is-day-master .pillar-value{color:var(--red)}.pillar:last-child{border:0}.pillar-label{color:#85857d;font-size:11px}.pillar-value{color:var(--ink);font-family:Songti SC,STSong,serif;font-size:21px;font-weight:600;letter-spacing:.12em}.pillar-note{color:#85857d;font-size:10px}.chart-toggle{padding:0;border:0;background:transparent;color:var(--red);font-size:12px}.chart-toggle span{display:inline-block;margin-left:4px;font-size:14px}.chart-details{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:13px;padding:12px;border:1px solid #e7dfd3;background:#fffefa}.chart-details div{display:grid;gap:4px}.chart-details span{color:var(--muted);font-size:11px}.chart-details strong{color:var(--ink);font-size:14px}.chart-note{margin:12px 0 0;color:var(--muted);font-size:11px;line-height:1.6}.detail-heading h3{margin:0;color:var(--ink);font-family:Songti SC,STSong,serif;font-size:17px}.detail-reading{margin-top:25px}.detail-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;padding-bottom:12px;border-bottom:1px solid #e9e6dd}.detail-note{color:var(--muted);font-size:11px}.detail-reading .conversation-thread{margin-top:16px}.assistant-reading{display:grid;gap:15px}.reading-block{padding:0 0 0 14px;border-left:2px solid #d8d0c4}.reading-block-label{margin-bottom:6px;color:#8f2b21;font-size:12px;font-weight:700}.reading-block p{color:#3c3d36;font-size:14px;line-height:1.95;white-space:pre-wrap}.practical-block{padding:13px 15px;border:0;border-left:3px solid #9b7652;background:#faf5ed}.practical-block .reading-block-label{color:#765638}.professional-block{padding:12px 15px;border:1px solid #e3d8c9;background:#fffaf3}.professional-block .reading-block-label{color:#765638}.suggestion-block{padding:14px 16px;border-left:3px solid #b94739;background:var(--soft)}.suggestion-label{color:#8f2b21;font-size:12px;font-weight:700}.suggestion-block p{margin:6px 0 0;color:#34362f;font-size:13px;line-height:1.8}.follow-up-trigger{position:sticky;right:0;bottom:16px;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:22px;min-width:124px;min-height:42px;margin:20px 0 0 auto;padding:0 14px 0 16px;border:1px solid #d8a39d;border-radius:999px;background:#fffefaf7;box-shadow:0 8px 20px #26241d21;color:var(--red);font-size:13px;font-weight:650;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.follow-up-trigger span:last-child{font-size:17px;line-height:1}.follow-up-form{position:relative;padding:16px 14px 14px;border:1px solid #e3dfd5;background:var(--surface);box-shadow:0 7px 18px #26241d0f}.follow-up-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.follow-up-form>.follow-up-heading label{margin:0;color:#34362f;font-size:14px;font-weight:650}.follow-up-collapse{padding:3px 5px;border:0;background:transparent;color:var(--muted);font-size:19px;line-height:1}.follow-up-form textarea{display:block;width:100%;min-height:74px;padding:11px 13px;border:1px solid #d8d5cb;border-radius:3px;outline:none;background:#fff;color:var(--ink);font:inherit;font-size:14px;line-height:1.7;resize:vertical}.follow-up-form textarea:focus{border-color:var(--red);box-shadow:0 0 0 3px #a832271a}.follow-up-form textarea:disabled{background:#f6f4ef}.follow-up-form textarea::placeholder{color:#99988f}.follow-up-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:9px}.follow-up-actions>span{color:#85857d;font-size:11px}.follow-up-actions button{min-width:100px;min-height:39px;padding:0 16px;border:0;border-radius:3px;background:var(--red);color:#fff;font-size:13px;font-weight:600}.follow-up-actions button:hover:not(:disabled){background:#8f281f}.follow-up-actions button:disabled{opacity:.65;cursor:wait}.result-footer{display:flex;align-items:flex-end;justify-content:space-between;gap:15px;margin-top:4px}.end-conversation{flex:0 0 auto;padding:5px 0;border:0;background:transparent;color:#77786f;font-size:11px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.end-conversation:hover:not(:disabled){color:var(--red)}.end-conversation:disabled{opacity:.55;cursor:wait}.site-footer{padding:18px 24px 25px;border-top:1px solid var(--line);color:#77786f;text-align:center;font-size:11px}.site-footer span{margin:0 6px;color:#a83227}@media(max-width:880px){.main-layout{grid-template-columns:1fr;gap:31px}.intro{position:static;padding-top:0}.hero-emblem{width:70px;height:70px;margin-bottom:20px}.intro-copy{max-width:580px}.privacy-note{max-width:580px;margin-top:20px}}@media(max-width:760px){.topbar{height:61px;padding:0 20px}.main-layout{width:min(calc(100% - 32px),540px);padding:34px 0 43px;gap:25px}.hero-emblem{width:58px;height:58px;margin-bottom:16px}.hero-emblem span{font-size:18px}.eyebrow{margin-bottom:10px}.intro h1{font-size:33px;line-height:1.4}.intro-copy{margin-top:11px;font-size:14px;line-height:1.8}.privacy-note{margin-top:15px;padding-top:12px}.content-column{gap:13px}.form-panel,.result-panel{padding:23px 20px}.section-heading{gap:10px;margin-bottom:21px}.section-heading h2{font-size:19px}.birth-section{margin-top:25px;padding-top:19px}.birth-fields{gap:14px 10px}.birth-fields .field-group:nth-child(2) .picker-popover{right:0;left:auto}}@media(max-width:380px){.main-layout{width:calc(100% - 24px)}.form-panel,.result-panel{padding-right:16px;padding-left:16px}.birth-fields{grid-template-columns:1fr}.birth-fields .field-group:last-child{grid-column:auto}.saved-profile-card{align-items:flex-start;flex-direction:column}}@media(max-width:480px){.result-footer{flex-direction:column;align-items:flex-start;gap:8px}.detail-heading{align-items:flex-start;flex-direction:column;gap:7px}.detail-note{font-size:10px}.chart-card{padding-right:15px;padding-left:15px}.pillar-note{max-width:48px;text-align:center;line-height:1.35}.follow-up-form{position:sticky;bottom:10px;z-index:2;padding:14px;border:1px solid #e3dfd5;background:#fffefaf5;box-shadow:0 8px 24px #26241d1a;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
