.kinship-tool{--n-ink: #172235;--n-muted: #5e6b7d;--n-paper: #f8f5ee;--n-card: #fffdf8;--n-line: #d5d4cc;--n-accent: #b85c38;--n-accent-soft: #f2d7c7;--n-blue: #315e75;--n-focus: #1d7895;--n-shadow: rgba(23, 34, 53, .12);color:var(--n-ink);background:var(--n-paper);border:1px solid var(--n-line);border-radius:1.25rem;box-shadow:0 1.5rem 3rem var(--n-shadow);overflow:hidden}.theme-dark .kinship-tool{--n-ink: #f3efe6;--n-muted: #b8b8aa;--n-paper: #15191e;--n-card: #1d2429;--n-line: #3b464b;--n-accent: #ed946d;--n-accent-soft: #56352d;--n-blue: #91c3cf;--n-focus: #8dd4e0;--n-shadow: rgba(0, 0, 0, .3)}.kinship-layout{display:grid;grid-template-columns:minmax(16rem,.8fr) minmax(20rem,1.2fr);min-height:30rem}.kinship-controls{display:flex;flex-direction:column;gap:1.5rem;padding:clamp(1.25rem,4vw,2.5rem);background:var(--n-card);border-right:1px solid var(--n-line)}.person-fields,.generation-fieldset{display:grid;gap:.65rem}.field-label,.generation-fieldset legend,.preset-label{color:var(--n-muted);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}input{box-sizing:border-box;width:100%;min-height:2.75rem;padding:.7rem .8rem;color:var(--n-ink);background:var(--n-paper);border:1px solid var(--n-line);border-radius:.5rem;font:inherit}input:focus-visible,button:focus-visible{outline:3px solid var(--n-focus);outline-offset:2px}.generation-fieldset{margin:0;padding:0;border:0}.generation-fieldset legend{margin-bottom:.15rem}.control-help{margin:0 0 .35rem;color:var(--n-muted);font-size:.85rem;line-height:1.45}.generation-row{display:grid;grid-template-columns:minmax(5rem,1fr) 2rem 3.6rem 2rem minmax(2.8rem,auto);align-items:center;gap:.35rem}.generation-name{overflow:hidden;color:var(--n-ink);font-size:.9rem;text-overflow:ellipsis;white-space:nowrap}.generation-input{min-height:2.35rem;padding:.35rem;text-align:center}.step-button,.preset-list button,.reset-button{color:var(--n-ink);background:var(--n-paper);border:1px solid var(--n-line);border-radius:.45rem;cursor:pointer;font:inherit}.step-button{width:2rem;height:2rem;font-size:1.2rem;line-height:1}.step-button:hover,.preset-list button:hover,.reset-button:hover{border-color:var(--n-accent)}.generation-unit{color:var(--n-muted);font-size:.8rem;white-space:nowrap}.preset-section{display:grid;gap:.7rem}.preset-list{display:flex;flex-wrap:wrap;gap:.5rem}.preset-list button{padding:.55rem .7rem;font-size:.8rem}.control-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:auto;padding-top:1rem;border-top:1px solid var(--n-line)}.local-note{max-width:15rem;margin:0;color:var(--n-muted);font-size:.75rem;line-height:1.4}.reset-button{padding:.55rem .75rem;white-space:nowrap}.kinship-result{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:clamp(1rem,4vw,2.5rem);background:var(--n-paper)}.scene-frame{min-height:15rem;padding:.5rem;background:var(--n-card);border:1px solid var(--n-line);border-radius:.9rem}.path-explorer{min-height:15rem;padding:1.25rem;background:var(--n-card);border:1px solid var(--n-line);border-radius:.75rem}.explorer-heading{margin-bottom:1rem}.explorer-label,.explanation-label,.calculation-label{margin:0;color:var(--n-muted);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.explorer-help{max-width:34rem;margin:.35rem 0 0;color:var(--n-muted);font-size:.8rem;line-height:1.45}.path-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.path-column{display:flex;flex-direction:column;align-items:stretch;min-width:0}.path-node{display:grid;gap:.2rem;width:100%;min-height:3.25rem;padding:.7rem .8rem;color:var(--n-ink);background:var(--n-paper);border:1px solid var(--n-line);border-radius:.6rem;cursor:pointer;font:inherit;text-align:left}.path-node:hover,.path-node.is-active{border-color:var(--n-accent);box-shadow:0 0 0 2px var(--n-accent-soft)}.ancestor-path-node{background:var(--n-accent-soft);border-color:var(--n-accent)}.path-node-label{overflow:hidden;font-size:.9rem;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.path-node-role{color:var(--n-muted);font-size:.72rem}.path-connector{display:block;height:1.25rem;color:var(--n-blue);font-size:1.1rem;font-weight:800;line-height:1.25rem;text-align:center}.path-inspector{min-height:1.25rem;margin:1rem 0 0;padding-top:.75rem;color:var(--n-muted);border-top:1px solid var(--n-line);font-size:.8rem;line-height:1.45}.result-summary{padding:1.25rem .25rem .25rem}.result-headline{margin:0;color:var(--n-ink);font-size:clamp(1.1rem,2.5vw,1.6rem);font-weight:800;line-height:1.25}.result-facts{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;margin-top:.75rem;color:var(--n-muted);font-size:.85rem}.result-facts strong{color:var(--n-accent);font-size:1.25rem}.result-explanation{margin-top:1.25rem;padding:1rem;background:var(--n-card);border:1px solid var(--n-line);border-radius:.75rem}.calculation-label{margin:1rem 0 0;color:var(--n-muted);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.path-list{display:grid;gap:.5rem}.path-list p{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem;margin:0;color:var(--n-muted);font-size:.85rem}.path-list strong{color:var(--n-ink)}.path-list strong:last-child{padding:.2rem .45rem;background:var(--n-accent-soft);border-radius:.3rem}.result-detail{margin:.85rem 0 0;color:var(--n-muted);font-size:.8rem;line-height:1.5}.result-detail strong{color:var(--n-ink)}.error-message{margin:1rem 0 0;padding:.75rem;color:var(--n-ink);background:var(--n-accent-soft);border-left:4px solid var(--n-accent);font-size:.85rem}@media(max-width:720px){.kinship-layout{display:flex;flex-direction:column}.kinship-controls{border-right:0;border-bottom:1px solid var(--n-line)}.kinship-result{padding-top:1.25rem}.path-columns{grid-template-columns:1fr}}
