:root{color-scheme:light;--bg: #fbfaf8;--surface: #ffffff;--surface-soft: #f7f9fc;--ink: #1f2937;--muted: #6b7280;--border: #e5e7eb;--shadow: 0 4px 14px rgb(15 23 42 / .08);--primary: #174e7a;--primary-soft: #79aee3;--female: #e86c9f;--male: #6ca4df;font-family:Inter,Noto Sans Bengali,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--ink);background:var(--bg)}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg)}button,input{font:inherit}#root,.app{min-height:100vh}.app{display:flex;flex-direction:column;background:var(--bg)}.app-header{height:64px;padding:10px 18px;display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:0 1px 8px #0f172a0a;position:relative;z-index:5}.brand{display:flex;align-items:center;min-width:220px}.brand__title{margin:0;font-size:19px;line-height:1.15;font-weight:700;letter-spacing:-.02em}.brand__subtitle{margin:2px 0 0;color:var(--muted);font-size:12px;line-height:1.2}.lang-toggle{display:flex;align-items:center;gap:0;padding:2px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.lang-toggle button{border:0;border-radius:6px;background:transparent;color:var(--ink);cursor:pointer;font-size:12px;line-height:1;padding:9px 13px}.lang-toggle button.is-active{background:var(--primary);color:#fff;box-shadow:0 2px 8px #174e7a3d}.tree-shell{flex:1;min-height:0;width:100%;background:var(--bg)}.tree-panel,.rd3t-tree-panel{width:100%;height:calc(100vh - 64px);min-height:560px;position:relative;overflow:hidden}.rd3t-tree-wrap{width:100%;height:100%;min-height:inherit;position:relative;overflow:hidden;background:radial-gradient(circle at 50% 5%,rgb(248 250 252 / .7),transparent 38%),#fbfaf8}.rd3t-toolbar{position:absolute;top:14px;right:18px;z-index:4;display:flex;align-items:center;gap:10px}.rd3t-toolbar__btn{display:inline-flex;align-items:center;gap:8px;height:35px;padding:0 15px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:#374151;cursor:pointer;font-size:12px;box-shadow:0 2px 8px #0f172a0d}.rd3t-toolbar__btn:hover{border-color:var(--primary-soft);color:var(--primary)}.rd3t-toolbar__search{width:min(32vw,230px);height:35px;display:flex;align-items:center;gap:8px;padding:0 11px;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:0 2px 8px #0f172a0d}.rd3t-toolbar__search input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:var(--ink);font-size:12px}.rd3t-toolbar__search input::placeholder{color:#9ca3af}.rd3t-toolbar__search-icon{color:#6b7280;font-size:18px;line-height:1}.rd3t-legend{position:absolute;top:96px;left:18px;z-index:4;min-width:112px;padding:14px 13px;display:grid;gap:12px;background:#ffffffeb;border:1px solid var(--border);border-radius:8px;color:#4b5563;font-size:12px;box-shadow:0 2px 10px #0f172a0f;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.rd3t-legend>div{display:flex;align-items:center;gap:9px}.rd3t-legend__dot{width:14px;height:14px;border-radius:999px;border:2px solid currentColor;background:#fff}.rd3t-legend__dot--m{color:var(--male)}.rd3t-legend__dot--f{color:var(--female)}.rd3t-legend__dagger{width:14px;text-align:center;font-size:16px;line-height:1;color:#4b5563}.rd3t-tree-hint{position:absolute;left:50%;bottom:8px;transform:translate(-50%);margin:0;color:#777;font-size:11px;z-index:4;white-space:nowrap}.rd3t-tree-empty{margin:24px;color:var(--muted)}.family-history-card{width:min(980px,calc(100% - 36px));margin:22px auto 32px;padding:22px 24px;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:0 8px 22px #0f172a0f;text-align:left}.family-history-card h2{margin:0 0 12px;color:var(--primary);font-size:18px;line-height:1.2}.family-history-card p{margin:0;color:#4b5563;font-size:14px;line-height:1.7;white-space:pre-line;text-align:left}.rd3t-foreign{overflow:visible}.rd3t-person{width:100%;height:100%;display:grid;grid-template-columns:23px minmax(0,1fr) 16px;align-items:center;gap:8px;padding:7px 10px;border-radius:8px;border:1px solid #d9e1e9;background:#fff;box-shadow:var(--shadow);cursor:pointer;color:#15324b;outline:none}.rd3t-person:focus-visible{box-shadow:0 0 0 3px #174e7a38,var(--shadow)}.rd3t-person__gender{width:21px;height:21px;display:grid;place-items:center;border-radius:999px;color:#fff;font-weight:700;font-size:13px;line-height:1}.rd3t-person--m .rd3t-person__gender{background:var(--male)}.rd3t-person--f{border-color:#ead4df}.rd3t-person--f .rd3t-person__gender{background:var(--female)}.rd3t-person__body{min-width:0;display:flex;flex-direction:column;align-items:flex-start;text-align:left}.rd3t-person__en{max-width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#18486f;font-size:11px;font-weight:700;line-height:1.2}.rd3t-person__bn{max-width:100%;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#5b6470;font-size:10px;line-height:1.2}.rd3t-person__title{max-width:100%;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#a77b1d;font-size:9px;line-height:1.1}.rd3t-person__note{max-width:100%;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#6b7280;font-size:9px;line-height:1.1}.rd3t-person__dagger{color:#111827;font-size:13px;font-weight:700;justify-self:end}.rd3t-link__path{stroke:#d1d5db!important;stroke-width:1.5!important}.rd3t-node>circle,.rd3t-leaf-node>circle{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[lang=bn]{font-family:Noto Sans Bengali,Inter,system-ui,sans-serif}@media(max-width:760px){.app-header{height:auto;min-height:64px;align-items:flex-start;flex-wrap:wrap}.tree-panel,.rd3t-tree-panel{height:calc(100vh - 92px)}.rd3t-toolbar{left:12px;right:12px;top:12px;flex-wrap:wrap}.rd3t-toolbar__search{width:100%;order:3}.rd3t-legend{top:116px;left:12px}.rd3t-tree-hint{width:calc(100% - 24px);white-space:normal;text-align:center}.family-history-card{width:calc(100% - 24px);margin:16px auto 24px;padding:18px}}
