:root{--ink:#06455c;--gold:#ef9f04;--line:#dce5e8}*{box-sizing:border-box}body{margin:0;background:#fff;color:var(--ink);font-family:Tahoma,Arial,sans-serif;height:100dvh;display:flex;flex-direction:column;overflow:hidden}button,input,summary{font:inherit}button,summary{cursor:pointer}button{border:1px solid var(--line);background:#fff;color:var(--ink);padding:10px 14px;border-radius:8px;white-space:nowrap}button:hover,summary:hover{background:#edf5f7}button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #efa600;outline-offset:2px}button:disabled{opacity:.4;cursor:default}.primary{background:var(--ink);color:#fff;border-color:var(--ink)}.primary:hover{background:#0b607a}.primary span{margin-right:15px}header{min-height:98px;padding:18px 28px;display:flex;gap:14px;align-items:center;border-bottom:1px solid var(--line);z-index:3;background:white}h1{font-size:22px;margin:7px 0 0}.eyebrow{font-size:12px;color:#75868c}.heading{flex:1}.searchbox{width:260px;position:relative}input[type=search]{border:1px solid var(--line);border-radius:9px;width:100%;padding:12px;color:var(--ink);background:#f8fafb}#results{position:absolute;top:46px;right:0;width:340px;max-height:320px;overflow:auto;background:white;box-shadow:0 8px 30px #00304420;border:1px solid var(--line);border-radius:8px;padding:7px}#results button{display:block;width:100%;text-align:right;margin-bottom:4px;white-space:normal;font-size:14px}#results small{display:block;color:#75868c;margin-top:6px;line-height:1.6}#stage{position:relative;flex:1;min-height:0;overflow:hidden;background:#fff}#tree{width:100%;height:100%;display:block;touch-action:none;cursor:grab;user-select:none}#tree:active{cursor:grabbing}.person{cursor:grab;outline:none}.person text{font-family:Tahoma,Arial,sans-serif;font-weight:700;fill:#06455c;pointer-events:none}.person.leaf text{fill:#101052}.person .shape{fill:#fff;stroke:#06455c;stroke-width:4}.person.selected .shape,.person:focus-visible .shape{stroke:#d88d00;stroke-width:5}.person.selected .label{fill:#be7e00}.person .halo{fill:none;stroke:#eeb43c;stroke-width:3;stroke-dasharray:6 4;opacity:0}.person.selected .halo{opacity:1}.person .fold{cursor:pointer}.person .fold circle{fill:#fff;stroke:#9bafb7;stroke-width:1.5}.person .fold text{font:20px Arial;fill:#06455c}.edge{fill:none;stroke-linecap:round}.zoom{position:absolute;bottom:20px;left:22px;display:flex;direction:ltr;align-items:center;background:white;box-shadow:0 3px 20px #12384710;border:1px solid var(--line);border-radius:10px;padding:4px;gap:4px}.zoom button{border:0}.zoom output{min-width:48px;text-align:center;font-size:12px;color:#71868e}.zoom span{height:20px;border-left:1px solid var(--line)}.legend{position:absolute;bottom:27px;right:28px;display:flex;gap:9px;align-items:center;font-size:12px;color:#70828a;pointer-events:none}.legend i{width:10px;height:10px;border-radius:50%;display:inline-block}.male{background:#489dff}.female{background:#ef3989}.highlight{background:#edab26}footer{display:flex;justify-content:space-between;gap:10px;padding:12px 24px;border-top:1px solid var(--line);z-index:3;background:white}.tools{display:flex;gap:8px}.tools button,summary{font-size:13px;padding:9px 12px}.menu{position:relative}.menu summary{border:1px solid var(--line);border-radius:8px;list-style:none}.menu>div{position:absolute;bottom:45px;left:0;width:190px;padding:6px;background:white;border:1px solid var(--line);border-radius:10px;box-shadow:0 4px 25px #12384722}.menu button{display:block;width:100%;text-align:right;border:0}#details{position:absolute;top:18px;left:22px;width:270px;padding:22px;background:#fffefbf5;border:1px solid #e6d8b9;border-radius:12px;box-shadow:0 5px 30px #00304412}#details small{color:#7c898e;font-size:12px}#details h2{font-size:20px;margin:12px 0}#details p{font-size:13px;line-height:1.9;margin:0 0 16px}#details label{display:block;font-size:12px;margin-top:16px}.detail-actions{display:flex;gap:8px}.detail-actions button{flex:1}.close{position:absolute;top:8px;left:8px;border:0;background:transparent;font-size:22px;padding:0 7px}#notice{position:absolute;top:18px;right:28px;max-width:360px;background:#06455c;color:#fff;padding:12px 18px;border-radius:8px;opacity:0;pointer-events:none;transition:opacity .2s;font-size:13px}#notice.show{opacity:1}dialog{border:1px solid var(--line);border-radius:16px;max-width:580px;padding:30px;color:var(--ink);line-height:1.9}dialog::backdrop{background:#002b3f66}dialog h2{font-size:23px}dialog p{font-size:14px}.note{color:#78868b;border-top:1px solid var(--line);padding-top:14px}#referenceDialog{max-width:96vw;width:1400px;padding:28px 10px 10px}#referenceDialog img{width:100%;display:block}#tour{position:absolute;bottom:80px;left:50%;transform:translateX(-50%);align-items:center;gap:10px;background:#fff;padding:8px 12px;border:1px solid #e3c582;border-radius:12px;box-shadow:0 6px 25px #00304416;white-space:nowrap}#tour:not([hidden]){display:flex}#tourLabel{min-width:170px;text-align:center;font-size:14px}body.presenting header,body.presenting footer{display:none}body.presenting #tour{bottom:24px}body.presenting .legend{top:20px;bottom:auto}body.presenting #details{top:52px}@media(max-width:900px){header{padding:12px;min-height:80px;flex-wrap:wrap;gap:8px}h1{font-size:17px}.eyebrow{font-size:10px}.searchbox{width:210px}footer{padding:8px;flex-wrap:wrap}.tools{gap:4px}.tools button,summary{font-size:11px;padding:9px}.legend{bottom:80px;right:15px;font-size:10px}.zoom{left:10px;bottom:15px}#details{left:10px;width:235px;padding:18px}#tour{bottom:120px}.searchbox #results{width:280px}#tourLabel{min-width:120px}}@media(max-width:550px){.heading{width:100%;flex:auto}.searchbox{flex:1}header .primary{font-size:12px}#details{top:8px;width:210px}#tour{gap:4px;font-size:12px}#tour button{padding:8px}}
body.presenting .zoom{bottom:100px}
