:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;color:#213d31;background:#f4f5ec;line-height:1.75}*{box-sizing:border-box}body{margin:0}header,main,footer{max-width:1080px;margin:auto;padding:24px}header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #d7dfce}.brand{font:italic 36px Georgia,serif;text-decoration:none}a{color:#315c46;text-underline-offset:4px}nav,.inline,.row{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.hero{display:grid;grid-template-columns:1.3fr 1fr;gap:52px;padding:52px 0}.hero h1{font-family:SimSun,serif;font-weight:400;font-size:clamp(28px,6vw,64px);line-height:1.3;margin:12px 0 24px}.hero aside{background:#e7ecdc;border-radius:24px;padding:30px;align-self:center}.eyebrow{font-size:12px;letter-spacing:2px;color:#6a7d5c}.badge{border:1px solid #a9b997;border-radius:24px;padding:7px 16px;font-size:13px}.muted{color:#60715c}.panel{padding:28px;background:#fff;border:1px solid #dbe3d3;border-radius:20px;margin:22px 0}.panel h2{font-size:23px;margin:0 0 12px}.row{justify-content:space-between}label{display:block;flex:1;min-width:160px;margin:15px 0;font-size:14px}.check{display:flex;gap:10px;align-items:flex-start}.check input{width:auto;margin-top:7px;flex:none}input,select{display:block;width:100%;font:inherit;color:inherit;border:1px solid #c9d5c0;border-radius:9px;padding:11px;margin-top:7px;background:#fcfdf9}button{font:inherit;font-size:14px;color:inherit;border:1px solid #b9c9af;background:#f5f8ef;border-radius:24px;padding:10px 20px;cursor:pointer}button.primary{background:#294c3a;color:#fff;border-color:#294c3a}.danger{color:#8a423b}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #8ba975;outline-offset:3px}.error{color:#9c3830}.pair-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.pair-item{background:#f3f6ed;border-radius:14px;padding:18px}.pair-item h3{margin:0 0 10px}.city-results{border:1px solid #cbd8bf;border-radius:12px;padding:8px;max-height:250px;overflow:auto}.city-results button{display:block;width:100%;border:0;border-radius:8px;text-align:left;padding:10px}.city-results small{display:block;color:#64745a}.chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:20px 0}.pillar-card{background:#eef3e6;border-radius:16px;padding:20px}.pillar-pair{font:34px SimSun,serif;margin:10px 0}.supplement{border-top:1px solid #dce4d4;margin-top:24px;padding-top:24px}#birth-authorize{border-top:1px solid #dce4d4;margin-top:24px;padding-top:12px}#report-area{margin-top:30px;border-top:1px solid #dce4d4;padding-top:24px}footer{font-size:13px;color:#64745a}footer a{margin-right:22px}[hidden]{display:none!important}@media(max-width:650px){header,main,footer{padding:18px}.hero{grid-template-columns:1fr;gap:20px;padding:30px 0}.panel{padding:20px}.pair-list,.chart-grid{grid-template-columns:1fr}.inline{gap:6px}.inline label{min-width:100%}header{flex-wrap:wrap;gap:12px}header nav{width:100%;font-size:14px;gap:12px}header nav a{display:inline-flex}}
:root .date-parts{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:14px}.date-parts label{min-width:0}.hero h1{word-break:keep-all;overflow-wrap:normal}h2,h3{word-break:normal;overflow-wrap:break-word}

.pair-chat{margin-top:28px;padding-top:24px;border-top:1px solid #dce4d4}.chat-topics{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.chat-topics button{padding:8px 12px;font-size:12px}.chat-messages{max-height:400px;overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding:12px;background:#f7f9f2;border-radius:12px}.chat-message{max-width:86%;align-self:flex-start;background:#fff;border:1px solid #dce4d4;border-radius:12px;padding:10px 14px;min-width:0}.chat-message.mine{align-self:flex-end;background:#e7efdc}.chat-message p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.chat-message small{display:block;color:#687660;font-size:11px;margin-top:5px}.pair-chat textarea{width:100%;resize:vertical;font:inherit;border:1px solid #c9d5c0;border-radius:10px;padding:12px;min-height:96px;color:inherit;background:#fcfdf9}.pair-chat textarea:focus-visible{outline:3px solid #8ba975;outline-offset:3px}.pair-chat .row{margin:10px 0}.chat-note{font-size:12px}.pair-chat button{max-width:100%;white-space:normal}.chat-messages:empty{display:none}.pair-chat label{min-width:0}@media(max-width:400px){.chat-message{max-width:94%}.chat-topics button{font-size:11px;padding:8px 9px}}

/* 相生 design-system layer 2026-11-06: tokens from friends-tokens.css, 44px targets, 12px text floor. Presentation only. */
:root{color:var(--xs-ink,#1f2a26);background:var(--xs-paper,#f7f4ec);font-family:var(--xs-sans)}
header{border-bottom-color:var(--xs-line)}
.brand{font:700 26px/1 var(--xs-serif);font-style:normal;color:var(--xs-primary);letter-spacing:.06em;display:inline-flex;align-items:center;min-height:var(--xs-tap)}
header nav a,footer a{display:inline-flex;align-items:center;min-height:var(--xs-tap)}
a{color:var(--xs-primary)}
.hero h1{font-family:var(--xs-serif);font-weight:600;color:var(--xs-ink)}
.hero aside{background:var(--xs-primary-soft)}
.eyebrow{color:var(--xs-muted);letter-spacing:.14em}
.muted,footer{color:var(--xs-muted)}
.badge{border-color:var(--xs-line-strong);font-size:var(--xs-fs-sm)}
.panel{background:var(--xs-surface);border-color:var(--xs-line)}
.panel h2{font-family:var(--xs-serif)}
input,select,.pair-chat textarea{border-color:var(--xs-line-strong);background:var(--xs-surface);min-height:var(--xs-tap);font-size:16px}
button{min-height:var(--xs-tap);border-color:var(--xs-line-strong);background:var(--xs-surface);color:var(--xs-primary)}
button.primary{background:var(--xs-primary);border-color:var(--xs-primary);color:var(--xs-primary-ink)}
.pair-item,.pillar-card{background:var(--xs-surface-2)}
.pillar-pair{font-family:var(--xs-serif)}
.chat-message small,.chat-note,.chat-topics button{font-size:12px}
.chat-message.mine{background:var(--xs-primary-soft)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,.pair-chat textarea:focus-visible{outline-color:var(--xs-focus)}
@media(max-width:400px){.chat-topics button{font-size:12px}}
