:root { --kin-green:#254630; --kin-green-deep:#183322; --kin-red:#9f302b; --kin-gold:#b58a47; --kin-paper:#fbfaf6; --kin-page:#f2f4f1; --kin-ink:#202722; --kin-muted:#626a64; --kin-line:#d6ddd7; }
* { box-sizing:border-box; }
.kinship-web-page { margin:0; color:var(--kin-ink); background:var(--kin-page); font-size:17px; }
.kinship-wrap { width:min(1160px,calc(100% - 40px)); margin:0 auto; }
.kinship-breadcrumb { display:flex; flex-wrap:wrap; gap:9px; padding:19px 0; color:var(--kin-muted); font-size:15px; }
.kinship-breadcrumb a + a::before,.kinship-breadcrumb a + span::before { content:"/"; margin-right:9px; color:#9ca59f; }
.kinship-intro { border-bottom:6px solid var(--kin-gold); color:#fff; background:var(--kin-green-deep); }
.kinship-intro .kinship-wrap { min-height:238px; display:flex; align-items:center; justify-content:space-between; gap:40px; padding-top:42px; padding-bottom:42px; }
.kinship-intro p { margin:0 0 12px; color:#e3c587; font-weight:800; }
.kinship-intro h1 { margin:0; font-family:"Songti SC",STSong,"Noto Serif CJK SC",serif; font-size:clamp(38px,5vw,58px); line-height:1.12; letter-spacing:0; }
.kinship-intro span { display:block; max-width:720px; margin-top:16px; color:rgba(255,255,255,.78); font-size:19px; line-height:1.75; }
#kinshipShare { min-width:118px; min-height:48px; padding:0 20px; border:1px solid rgba(227,197,135,.75); border-radius:6px; color:#fff; background:rgba(255,255,255,.06); font:inherit; font-weight:800; cursor:pointer; }
#kinshipShare:hover { background:var(--kin-red); border-color:var(--kin-red); }
.kinship-workspace { padding:52px 0 62px; }
.kinship-layout { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr); gap:24px; align-items:start; }
.kinship-calculator,.kinship-results { min-width:0; border:1px solid var(--kin-line); border-radius:7px; background:#fff; }
.kinship-calculator { padding:30px; }
.kinship-calculator > h2 { margin:0 0 23px; font-family:"Songti SC",STSong,serif; font-size:29px; letter-spacing:0; }
.kinship-sex-row { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.kinship-sex-row > span { font-size:19px; font-weight:800; }
.kinship-segment { display:grid; grid-template-columns:1fr 1fr; overflow:hidden; border:1px solid #bdc8bf; border-radius:5px; }
.kinship-segment button { width:104px; min-height:44px; padding:0; border:0; border-radius:0; color:#526057; background:#fff; font:inherit; cursor:pointer; }
.kinship-segment button.is-active { color:#fff; background:var(--kin-green); font-weight:800; }
.kinship-path { min-height:82px; display:flex; flex-wrap:wrap; align-items:center; gap:9px; margin:25px 0 20px; padding:16px; border:1px solid #d7dfd8; background:var(--kin-paper); }
.kinship-path strong,.kinship-path b { padding:8px 13px; color:var(--kin-green); background:#e5eee6; font-size:16px; }
.kinship-path i { color:var(--kin-red); font-size:26px; font-style:normal; }
.kinship-path span { color:#8a948d; }
.kinship-relations { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:9px; }
.kinship-relations button { min-width:0; min-height:46px; padding:0 6px; border:1px solid #d4c6af; border-radius:5px; color:#45392d; background:#f8f2e7; font:inherit; font-weight:700; cursor:pointer; }
.kinship-relations button:hover:not(:disabled) { border-color:var(--kin-red); color:var(--kin-red); background:#fff; }
.kinship-relations button:disabled { color:#a8aea9; border-color:#e2e5e2; background:#f3f4f2; cursor:not-allowed; }
.kinship-path-actions { min-height:38px; display:flex; flex-wrap:wrap; justify-content:flex-end; align-items:center; gap:8px 18px; margin-top:13px; }
.kinship-path-actions button { padding:5px 0; border:0; color:var(--kin-red); background:transparent; font:inherit; cursor:pointer; }
.kinship-path-actions button:disabled { color:#a9afaa; cursor:not-allowed; }
.kinship-path-actions span { flex:1 0 100%; color:var(--kin-red); font-size:14px; text-align:right; }
.kinship-search { margin-top:17px; padding-top:21px; border-top:1px solid var(--kin-line); }
.kinship-search label { display:block; margin-bottom:9px; font-weight:800; }
.kinship-search > div { display:grid; grid-template-columns:1fr 96px; gap:9px; }
.kinship-search input { min-width:0; min-height:48px; padding:0 13px; border:1px solid #bdc7bf; border-radius:5px; font:inherit; }
.kinship-search button { min-height:48px; border:0; border-radius:5px; color:#fff; background:var(--kin-red); font:inherit; font-weight:800; cursor:pointer; }
.kinship-reverse { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:22px; padding-top:20px; border-top:1px solid var(--kin-line); cursor:pointer; }
.kinship-reverse strong,.kinship-reverse small { display:block; }
.kinship-reverse strong { font-size:18px; }
.kinship-reverse small { margin-top:4px; color:var(--kin-muted); font-size:14px; }
.kinship-reverse input { appearance:none; position:relative; width:52px; height:29px; flex:0 0 auto; margin:0; border:1px solid #aeb8b0; border-radius:20px; background:#dfe4e0; cursor:pointer; }
.kinship-reverse input::after { content:""; position:absolute; top:3px; left:3px; width:21px; height:21px; border-radius:50%; background:#fff; box-shadow:0 1px 4px rgba(0,0,0,.22); transition:transform .18s ease; }
.kinship-reverse input:checked { border-color:var(--kin-green); background:var(--kin-green); }
.kinship-reverse input:checked::after { transform:translateX(23px); }
.kinship-results { overflow:hidden; }
.kinship-results > header { min-height:93px; display:flex; align-items:center; justify-content:space-between; gap:18px; padding:22px 25px; color:#fff; background:var(--kin-green); }
.kinship-results header small { color:#d9c38f; font-weight:800; }
.kinship-results header h2 { margin:4px 0 0; font-family:"Songti SC",STSong,serif; font-size:27px; letter-spacing:0; }
.kinship-results header > span { color:rgba(255,255,255,.72); font-size:14px; }
.kinship-result-empty { min-height:375px; display:grid; align-content:center; justify-items:center; padding:40px; text-align:center; background:var(--kin-paper); }
.kinship-result-empty::before { content:"称"; width:72px; height:72px; display:grid; place-items:center; margin-bottom:19px; border:1px solid #d7bd82; color:var(--kin-red); font-family:"Songti SC",STSong,serif; font-size:34px; background:#fff; }
.kinship-result-empty strong { font-size:22px; }
.kinship-result-empty p { max-width:320px; margin:9px 0 0; color:var(--kin-muted); line-height:1.75; }
.kinship-result-empty.is-error::before { content:"?"; }
.kinship-result-list { max-height:600px; overflow:auto; padding:20px; background:var(--kin-paper); }
.kinship-result-list article { margin-bottom:12px; padding:22px; border:1px solid var(--kin-line); border-radius:6px; background:#fff; }
.kinship-result-list article.is-primary { border-left:5px solid var(--kin-red); }
.kinship-result-list article > div { display:flex; align-items:center; gap:14px; padding-bottom:15px; border-bottom:1px solid var(--kin-line); }
.kinship-result-list article span { padding:4px 8px; color:#fff; background:var(--kin-green); font-size:13px; }
.kinship-result-list article strong { color:var(--kin-red); font-family:"Songti SC",STSong,serif; font-size:35px; }
.kinship-result-list h3 { margin:15px 0 7px; font-size:16px; }
.kinship-result-list ul { margin:0; padding-left:20px; color:var(--kin-muted); line-height:1.75; }
.kinship-usage-note { margin:10px 2px 0; color:var(--kin-muted); font-size:14px; line-height:1.7; }
.kinship-examples { padding:58px 0 66px; border-top:1px solid var(--kin-line); border-bottom:1px solid var(--kin-line); background:#fff; }
.kinship-examples header small { color:var(--kin-red); font-weight:800; }
.kinship-examples h2 { margin:6px 0 24px; font-family:"Songti SC",STSong,serif; font-size:34px; letter-spacing:0; }
.kinship-example-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.kinship-example-grid button { min-width:0; min-height:104px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:18px; border:1px solid var(--kin-line); border-radius:6px; color:var(--kin-ink); background:#fff; text-align:left; cursor:pointer; }
.kinship-example-grid button:hover { border-color:var(--kin-gold); background:var(--kin-paper); }
.kinship-example-grid span { color:var(--kin-muted); font-size:14px; line-height:1.5; }
.kinship-example-grid strong { margin-top:8px; color:var(--kin-green); font-family:"Songti SC",STSong,serif; font-size:24px; }
.kinship-notes { padding:62px 0 76px; }
.kinship-notes .kinship-wrap { display:grid; grid-template-columns:1fr 1fr .9fr; gap:30px; }
.kinship-notes h2 { margin:0 0 12px; font-family:"Songti SC",STSong,serif; font-size:25px; letter-spacing:0; }
.kinship-notes p { margin:0; color:var(--kin-muted); line-height:1.85; }
.kinship-notes aside { padding:22px; border-left:4px solid var(--kin-gold); background:#f6f0e5; }
.kinship-notes aside strong { display:block; margin-bottom:8px; color:var(--kin-red); }
button:focus-visible,input:focus-visible,a:focus-visible { outline:3px solid rgba(181,138,71,.48); outline-offset:2px; }
@media(max-width:920px){.kinship-layout{grid-template-columns:1fr}.kinship-result-empty{min-height:260px}.kinship-result-list{max-height:none}.kinship-example-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kinship-notes .kinship-wrap{grid-template-columns:1fr 1fr}.kinship-notes aside{grid-column:1/-1}}
@media(max-width:620px){.kinship-wrap{width:min(100% - 28px,1160px)}.kinship-intro .kinship-wrap{min-height:0; display:block;padding-top:42px;padding-bottom:42px}.kinship-intro span{font-size:17px}.kinship-intro #kinshipShare{margin-top:23px}.kinship-workspace{padding:28px 0 46px}.kinship-calculator{padding:20px 16px}.kinship-relations{grid-template-columns:repeat(4,minmax(0,1fr))}.kinship-results>header{padding:19px}.kinship-result-empty{padding:30px 20px}.kinship-example-grid,.kinship-notes .kinship-wrap{grid-template-columns:1fr}.kinship-notes aside{grid-column:auto}.kinship-examples,.kinship-notes{padding:46px 0}.kinship-path-actions span{text-align:left}.kinship-search>div{grid-template-columns:1fr 82px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.kinship-reverse input::after{transition:none}}
