.gpw-app,.gpw-profile{font-family:system-ui,-apple-system,sans-serif;color:#253348}.gpw-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:12px 0}.gpw-toolbar input,.gpw-toolbar select,.gpw-form input,.gpw-form textarea,.gpw-form select{border:1px solid #bbc6d2;border-radius:7px;padding:9px;max-width:100%;background:#fff;color:#243142}.gpw-toolbar input{flex:1;min-width:160px}.gpw-toolbar button,.gpw-form button{border:1px solid #c4cfda;border-radius:7px;padding:8px 13px;background:#f6f9fc;color:#1c3959;cursor:pointer}.gpw-form button{background:#155d8a;color:white}.gpw-hint,.gpw-count{font-size:.88rem;color:#66788a}.gpw-viewport{height:540px;overflow:hidden;position:relative;border:1px solid #d7e0e9;border-radius:12px;background-color:#f8fafc;background-image:radial-gradient(#d9e1ea 1px,transparent 1px);background-size:20px 20px;touch-action:none;cursor:grab}.gpw-viewport:active{cursor:grabbing}.gpw-canvas{position:absolute;top:30px;left:30px;transform-origin:0 0;min-width:max-content}.gpw-forest{display:flex;align-items:flex-start;gap:34px}.gpw-node{display:flex;flex-direction:column;align-items:center;position:relative;min-width:155px}.gpw-person{border:1px solid #b7cbd9;border-top:4px solid #29749b;border-radius:10px;background:white;box-shadow:0 3px 12px #16345113;padding:12px 14px;text-align:center;min-width:145px;max-width:200px;display:flex;flex-direction:column;gap:5px}.gpw-name{font-weight:700;color:#174e72;overflow-wrap:anywhere}.gpw-person small{font-size:11px;color:#697987}.gpw-toggle{font-size:11px;margin:7px 0 0;background:#e8f2f9;border:1px solid #c6dbe8;border-radius:20px;padding:4px 10px;color:#265c7a;cursor:pointer}.gpw-children{display:flex;gap:14px;justify-content:center;align-items:flex-start;border-top:2px solid #bdd0de;margin-top:18px;padding-top:20px;position:relative}.gpw-children>.gpw-node:before{content:'';height:20px;border-left:2px solid #bdd0de;position:absolute;top:-20px;left:50%}.gpw-children:before{content:'';height:18px;border-left:2px solid #bdd0de;position:absolute;top:-20px;left:50%}.gpw-wiki{border:1px solid #d6e1eb;border-radius:9px;margin:20px 0;padding:14px;background:#fff}.gpw-wiki summary{font-weight:700;cursor:pointer}.gpw-form{margin-top:15px}.gpw-form label{display:flex;flex-direction:column;gap:5px;font-size:.9rem}.gpw-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.gpw-form>p{margin:12px 0}.gpw-profile{border:1px solid #d9e2ec;border-radius:12px;padding:20px;margin:16px 0}.gpw-profile>img{max-width:200px;height:auto;border-radius:8px}@media(max-width:600px){.gpw-viewport{height:440px}.gpw-toolbar input{flex-basis:100%}}

.gpw-actions{display:flex;gap:5px;flex-wrap:wrap;justify-content:center;margin-top:6px}.gpw-add{font-size:11px;text-decoration:none;background:#e5f5e9;border:1px solid #a9d4b5;border-radius:6px;padding:4px 7px;color:#205c37}.gpw-add:hover{background:#d2ebd9}.gpw-date{line-height:1.5}.gpw-relation-note{background:#eff7fd;border-left:3px solid #3379a5;padding:12px}.gpw-lunar-preview{color:#52748c;font-size:12px}

.gpw-wiki-profile{max-width:1000px;margin:20px auto;padding:clamp(18px,4vw,38px);background:#fff;color:#203044}.gpw-profile-head{border-bottom:2px solid #dce6ee;padding-bottom:12px;margin-bottom:20px}.gpw-profile-head h1{font-size:clamp(28px,4vw,42px);margin:8px 0}.gpw-kicker{font-size:12px;letter-spacing:.12em;color:#61758b;font-weight:700}.gpw-wiki-profile h2{font-size:21px;margin:20px 0 12px;border-bottom:1px solid #e0e6eb;padding-bottom:8px}.gpw-wiki-profile h3{font-size:16px;margin:0 0 8px}.gpw-portrait{float:right;margin:0 0 18px 22px}.gpw-portrait img{max-width:180px;border-radius:8px}.gpw-infobox dl{margin:0}.gpw-infobox dl>div{display:grid;grid-template-columns:minmax(120px,190px) 1fr;padding:9px 0;border-bottom:1px solid #edf1f4;gap:14px}.gpw-infobox dt{font-weight:700;color:#526477}.gpw-infobox dd{margin:0}.gpw-relations{clear:both}.gpw-related{padding:12px 16px;border:1px solid #dfe6ee;border-radius:10px;margin:10px 0}.gpw-related ul{margin:0;padding-left:22px}.gpw-related li{margin:5px 0}.gpw-person-link{font-weight:600}.gpw-redacted{color:#777;font-style:italic}@media(max-width:600px){.gpw-portrait{float:none;margin:0 0 16px}.gpw-infobox dl>div{grid-template-columns:1fr;gap:3px}}

.gpw-viewport{background:#fff;background-image:none;border-color:#e5e7eb}.gpw-person{min-width:145px;max-width:185px;min-height:82px;border:1px solid #ddd;border-radius:7px;box-shadow:none;justify-content:center;gap:3px;padding:10px;cursor:pointer}.gpw-person:hover,.gpw-person:focus-visible{border-color:#3579aa;box-shadow:0 0 0 3px #e1effb;outline:0}.gpw-person-icon{color:#666;font-size:18px;line-height:1}.gpw-name{color:#111;font-size:13px;text-decoration:none}.gpw-person small{font-size:11px;color:#667085}.gpw-children{border-top:1px solid #ddd;gap:7px}.gpw-children>.gpw-node:before,.gpw-children:before{border-left:1px solid #ddd}.gpw-person-dialog{width:min(1040px,96vw);height:min(850px,92vh);max-width:none;max-height:none;padding:0;border:1px solid #d8e1eb;border-radius:12px;box-shadow:0 20px 70px #0004;overflow:hidden}.gpw-person-dialog::backdrop{background:#0c1b30a8}.gpw-dialog-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 18px;border-bottom:1px solid #e5e7eb;background:#f8fafc}.gpw-dialog-close{background:white;border:1px solid #ccd5dd;border-radius:7px;padding:5px 12px;cursor:pointer;font-size:20px}.gpw-dialog-frame{width:100%;height:calc(100% - 54px);border:0;background:#fff}.gpw-profile-actions{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.gpw-profile-actions a{border:1px solid #c4d6e8;background:#f0f7ff;border-radius:8px;padding:9px 12px;text-decoration:none;font-size:14px}

.gpw-dialog-content{overflow:auto;max-height:80vh;padding:18px;background:#fff;color:#222}.gpw-dialog-content .gpw-profile{max-width:none}.gpw-dialog-content .gpw-form input,.gpw-dialog-content .gpw-form textarea,.gpw-dialog-content .gpw-form select{box-sizing:border-box;max-width:100%;width:100%;padding:9px;border:1px solid #bbb;border-radius:5px}.gpw-dialog-content .gpw-form label{display:block}.gpw-dialog-content .gpw-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.gpw-dialog-content .gpw-wiki{padding:12px;border:1px solid #ddd;border-radius:8px;margin-top:16px}.gpw-dialog-content .gpw-profile-actions{display:flex;gap:10px;flex-wrap:wrap}.gpw-dialog-content .gpw-profile-actions a{padding:8px 12px;border:1px solid #aaa;border-radius:6px}.gpw-dialog-content .gpw-form button{cursor:pointer}
.gpw-parent-picker{display:block;width:100%;max-width:100%;min-height:39px;padding:8px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#111827}

.gpw-person{cursor:pointer;touch-action:manipulation}.gpw-person:focus-visible{outline:3px solid #3579aa;outline-offset:2px}

/* Family groups: person > spouse 1, spouse 2 > their respective children */
.gpw-family{display:flex;align-items:flex-start;justify-content:center;gap:18px;margin-top:18px;padding-top:18px;border-top:2px solid #bdd0de}.gpw-family-group{display:flex;flex-direction:column;align-items:center;gap:7px;min-width:155px}.gpw-spouse-label{font-size:12px;font-weight:650;color:#526477}.gpw-family-group>.gpw-children{margin-top:10px}.gpw-family-group>.gpw-person{border-top:3px solid #8a68aa}

/* 1.7.3: explicit dashed parent-to-spouse connectors, scoped to each family */
.gpw-node > .gpw-family{position:relative;border-top:0;margin-top:24px;padding-top:20px;gap:24px;align-items:flex-start}
.gpw-node > .gpw-family::before{content:"";position:absolute;left:50%;top:-24px;height:24px;border-left:2px dashed #778ca3;pointer-events:none}
.gpw-node > .gpw-family > .gpw-family-group{position:relative;padding-top:22px;min-width:175px}
.gpw-node > .gpw-family > .gpw-family-group::before{content:"";position:absolute;top:0;left:50%;height:22px;border-left:2px dashed #778ca3;pointer-events:none}
.gpw-node > .gpw-family > .gpw-family-group::after{content:"";position:absolute;top:0;left:0;width:100%;border-top:2px dashed #778ca3;pointer-events:none}
.gpw-node > .gpw-family > .gpw-family-group:first-child::after{left:50%;width:50%}
.gpw-node > .gpw-family > .gpw-family-group:last-child::after{width:50%}
.gpw-node > .gpw-family > .gpw-family-group:only-child::after{display:none}
.gpw-node > .gpw-family > .gpw-family-group > .gpw-spouse-label{white-space:nowrap}
.gpw-node > .gpw-family > .gpw-family-group > .gpw-children{border-top:1px solid #cbd5e1}

/* v1.7.4: native two-axis scrolling, with visible scrollbars */
.gpw-app .gpw-viewport{overflow:scroll!important;touch-action:pan-x pan-y!important;overscroll-behavior:contain;scrollbar-width:auto;scrollbar-color:#91a9c0 #edf2f7;cursor:grab}
.gpw-app .gpw-viewport:active{cursor:grabbing}
.gpw-app .gpw-viewport::-webkit-scrollbar{width:13px;height:13px}
.gpw-app .gpw-viewport::-webkit-scrollbar-thumb{background:#91a9c0;border:3px solid #edf2f7;border-radius:12px}
.gpw-app .gpw-viewport::-webkit-scrollbar-track{background:#edf2f7}
.gpw-app .gpw-canvas{position:relative!important;top:auto!important;left:auto!important;display:table;width:max-content;min-width:100%;padding:30px;box-sizing:border-box;transform:none!important;transform-origin:top left}

.gpw-truong{color:#7a4a18;font-weight:700;letter-spacing:.03em}

.gpw-person-meta{display:block;white-space:nowrap;text-align:center}
.gpw-person-meta .gpw-meta-separator{color:#64748b}
