.family-tree-root{--bg:#2f3033;--card:#3c3d41;--card-edge:#56585d;--line:#6a6d72;--line-bright:#b9bcc1;--text:#f2f3f4;--muted:#a9acb1;--dim:#8b8d90;--chrome:#26272a;--chrome-edge:#46474b;--accent:#5b9bd5;--rose:#e39aa6;--green:#4caf50;--danger:#e57373;--shadow:0 10px 30px #00000073;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}.family-tree-root *{box-sizing:border-box}.family-tree-root{background:var(--bg);height:100%;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;overscroll-behavior:none;text-align:left;direction:ltr;margin:0}.family-tree-root .app{height:100%;position:relative;overflow:hidden}.family-tree-root .app--empty{color:var(--muted);place-content:center;justify-items:center;gap:16px;display:grid}.family-tree-root .stage{cursor:grab;touch-action:none;background-image:radial-gradient(circle at 1px 1px,#ffffff0b 1px,#0000 0);background-size:26px 26px;position:absolute;inset:0}.family-tree-root .stage--panning{cursor:grabbing}.family-tree-root .canvas{width:100%;height:100%;display:block}.family-tree-root .card{fill:var(--card);stroke:var(--card-edge);stroke-width:1px;cursor:pointer}.family-tree-root .node:hover .card{stroke:#8d9096}.family-tree-root .card--selected{stroke:#fff;stroke-width:2px}.family-tree-root .card--focus{stroke:var(--accent);stroke-width:2px}.family-tree-root .card--focus.card--selected{stroke:#fff;stroke-width:2.5px}.family-tree-root .card-name{fill:var(--text);text-anchor:middle;font-size:12.5px;font-weight:600;font-family:var(--font)}.family-tree-root .card-dates{fill:var(--muted);text-anchor:middle;font-size:10.5px;font-family:var(--font)}.family-tree-root .avatar-initials{fill:#ffffffe6;letter-spacing:.06em;text-anchor:middle;font-size:15px;font-weight:700;font-family:var(--font)}.family-tree-root .descent-line{fill:none;stroke:var(--line);stroke-width:1.6px}.family-tree-root .descent-line--active{stroke:var(--line-bright);stroke-width:2.2px}.family-tree-root .divorce-mark line{stroke:#9a9da2;stroke-width:1.4px;stroke-linecap:round}.family-tree-root .badge-box{fill:var(--green)}.family-tree-root .badge-tick{fill:none;stroke:#14340f;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round}.family-tree-root .badge,.family-tree-root .chevron{cursor:pointer}.family-tree-root .chevron--add{opacity:0;transition:opacity .12s}.family-tree-root .node:hover .chevron--add{opacity:1}.family-tree-root .chevron-circle{fill:#4a4c50;stroke:var(--line);stroke-width:1px}.family-tree-root .chevron:hover .chevron-circle{fill:#5c5f64;stroke:var(--line-bright)}.family-tree-root .chevron-circle--full{fill:#55575c}.family-tree-root .chevron-mark{fill:none;stroke:#d5d7da;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round}.family-tree-root .chevron-stem{stroke:var(--line);stroke-width:1.6px}.family-tree-root .chevron-count{fill:#e6e7e9;text-anchor:middle;font-size:9.5px;font-weight:700;font-family:var(--font)}.family-tree-root .generation-label{fill:var(--dim);text-anchor:middle;font-size:11.5px;font-family:var(--font)}.family-tree-root .label-rule{stroke:#4d4f53;stroke-width:1px}.family-tree-root .tree-menu{position:absolute;top:14px;left:14px}.family-tree-root .pill,.family-tree-root .tool,.family-tree-root .button,.family-tree-root .menu-item,.family-tree-root .chip,.family-tree-root .segment,.family-tree-root .result{font-family:var(--font);color:var(--text);cursor:pointer;background:0 0;border:none}.family-tree-root .pill{background:var(--chrome);border:1px solid var(--chrome-edge);height:34px;box-shadow:var(--shadow);border-radius:17px;align-items:center;gap:8px;padding:0 12px;font-size:13.5px;font-weight:600;display:flex}.family-tree-root .pill:hover{background:#303135}.family-tree-root .pill-icon,.family-tree-root .pill-caret{fill:none;width:15px;height:15px;stroke:var(--muted);stroke-width:1.5px;flex:none}.family-tree-root .pill-icon circle{fill:var(--muted);stroke:none}.family-tree-root .pill-caret{width:13px;height:13px}.family-tree-root .search{background:var(--chrome);border:1px solid var(--chrome-edge);height:34px;box-shadow:var(--shadow);border-radius:17px;align-items:center;gap:7px;width:226px;padding:0 10px;display:flex;position:absolute;top:14px;right:14px}.family-tree-root .search-icon{fill:none;width:15px;height:15px;stroke:var(--muted);stroke-width:1.6px;flex:none}.family-tree-root .search-input{min-width:0;color:var(--text);font-size:13px;font-family:var(--font);background:0 0;border:none;outline:none;flex:1}.family-tree-root .search:focus-within{outline:2px solid var(--brand,#7c3aed);outline-offset:2px}.family-tree-root .search-input::placeholder{color:#7e8186}.family-tree-root .search-clear{color:var(--muted);cursor:pointer;background:0 0;border:none;place-items:center;padding:2px;display:grid}.family-tree-root .toolbar{background:var(--chrome);border:1px solid var(--chrome-edge);box-shadow:var(--shadow);border-radius:12px;flex-direction:column;gap:4px;padding:5px;display:flex;position:absolute;top:60px;left:14px}.family-tree-root .tool{border-radius:8px;place-items:center;width:32px;min-width:44px;height:32px;min-height:44px;display:grid}.family-tree-root .tool:hover{background:#3a3b40}.family-tree-root .tool--on{background:#43454b}.family-tree-root .tool-icon{fill:none;stroke:#c8cacd;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:19px;height:19px}.family-tree-root .tool--on .tool-icon{stroke:#fff}.family-tree-root .tool-divider{background:var(--chrome-edge);height:1px;margin:3px 4px}.family-tree-root .tool-wrap{position:relative}.family-tree-root .popover{z-index:20;border:1px solid var(--chrome-edge);min-width:214px;box-shadow:var(--shadow);background:#303136;border-radius:10px;padding:6px;position:absolute}.family-tree-root .popover--menu{min-width:258px;top:40px;left:0}.family-tree-root .popover--left{top:0;left:40px}.family-tree-root .popover--results{min-width:250px;padding:4px;top:40px;right:0}.family-tree-root .popover-head{border-bottom:1px solid #3d3f44;margin-bottom:5px;padding:8px 10px 10px}.family-tree-root .popover-title{letter-spacing:.02em;font-size:12px;font-weight:700}.family-tree-root .popover-sub{color:var(--dim);margin-top:3px;font-size:11.5px}.family-tree-root .popover--left .popover-title{color:var(--dim);text-transform:uppercase;padding:5px 8px 7px;font-size:10.5px}.family-tree-root .menu-item{text-align:left;border-radius:7px;width:100%;padding:8px 10px;font-size:13px;display:block}.family-tree-root .menu-item:hover{background:#3b3d43}.family-tree-root .menu-item--danger{color:var(--danger)}.family-tree-root .menu-sep{background:#3d3f44;height:1px;margin:5px 4px}.family-tree-root .check{cursor:pointer;border-radius:7px;align-items:center;gap:9px;padding:7px 9px;font-size:13px;display:flex}.family-tree-root .check:hover{background:#3b3d43}.family-tree-root .check input{accent-color:var(--accent);width:14px;height:14px}.family-tree-root .result{text-align:left;border-radius:7px;justify-content:space-between;gap:10px;width:100%;padding:7px 9px;font-size:13px;display:flex}.family-tree-root .result--active{background:#3b3d43}.family-tree-root .result--empty{color:var(--dim);cursor:default;display:block}.family-tree-root .result-dates{color:var(--dim);flex:none;font-size:11.5px}.family-tree-root .minimap{border:1px solid var(--chrome-edge);box-shadow:var(--shadow);background:#1c1d20f0;border-radius:10px;padding:8px;position:absolute;bottom:14px;left:14px}.family-tree-root .minimap-svg{cursor:pointer;touch-action:none;display:block}.family-tree-root .minimap-node{fill:var(--dim)}.family-tree-root .minimap-node--selected{fill:var(--accent)}.family-tree-root .minimap-view{fill:#ffffff14;stroke:#fff9;stroke-width:1px}.family-tree-root .minimap-close{border:1px solid var(--chrome-edge);width:20px;height:20px;color:var(--muted);cursor:pointer;background:#34353a;border-radius:10px;place-items:center;padding:0;display:grid;position:absolute;top:-6px;right:-6px}.family-tree-root .minimap-close:hover{color:#fff}.family-tree-root .panel{border:1px solid var(--chrome-edge);width:322px;box-shadow:var(--shadow);background:#26272af7;border-radius:12px;flex-direction:column;padding:16px;display:flex;position:absolute;top:60px;bottom:14px;right:14px;overflow:hidden}.family-tree-root .panel-close{color:var(--muted);cursor:pointer;background:0 0;border:none;place-items:center;padding:3px;display:grid;position:absolute;top:10px;right:10px}.family-tree-root .panel-close:hover{color:#fff}.family-tree-root .panel-head{gap:12px;padding-right:22px;display:flex}.family-tree-root .panel-portrait{background:#45464b;border-radius:7px;flex:none;width:74px;height:88px;overflow:hidden}.family-tree-root .panel-portrait img{object-fit:cover;width:100%;height:100%;display:block}.family-tree-root .panel-portrait-fallback{letter-spacing:.06em;color:#ffffffe6;place-items:center;width:100%;height:100%;font-size:20px;font-weight:700;display:grid}.family-tree-root .panel-identity h2{margin:2px 0 4px;font-size:17px;line-height:1.25}.family-tree-root .panel-dates{color:var(--muted);font-size:12.5px}.family-tree-root .panel-relation{color:#dcdee1;background:#3a3c42;border-radius:11px;margin-top:7px;padding:3px 8px;font-size:11.5px;display:inline-block}.family-tree-root .panel-relation--focus{color:#b6d5f2;background:#5b9bd538}.family-tree-root .panel-relation-of{color:var(--dim)}.family-tree-root .panel-actions{flex-wrap:wrap;gap:8px;margin:14px 0 4px;display:flex}.family-tree-root .button{background:#3b3d43;border:1px solid #4b4d53;border-radius:8px;padding:7px 12px;font-size:12.5px;font-weight:500}.family-tree-root .button:hover:not(:disabled){background:#45474e}.family-tree-root .button:disabled{opacity:.5;cursor:default}.family-tree-root .button--on{background:#5b9bd53d;border-color:#5b9bd580}.family-tree-root .button--danger{color:var(--danger);border-color:#e5737366;align-self:flex-start;margin-top:6px}.family-tree-root .panel-body{flex-direction:column;gap:14px;margin-top:12px;padding-right:4px;display:flex;overflow-y:auto}.family-tree-root .panel-bio{color:#d7d9dc;margin:0;font-size:13px;line-height:1.55}.family-tree-root .panel-bio--empty{color:var(--dim)}.family-tree-root .panel-group-label,.family-tree-root .field>span{text-transform:uppercase;letter-spacing:.07em;color:var(--dim);margin-bottom:7px;font-size:10.5px;display:block}.family-tree-root .chips{flex-wrap:wrap;gap:6px;display:flex}.family-tree-root .chip{background:#35373c;border:1px solid #43454a;border-radius:13px;align-items:baseline;gap:6px;padding:5px 9px;font-size:12.5px;display:flex}.family-tree-root .chip:hover{background:#3f4147;border-color:#55575d}.family-tree-root .chip-dates{color:var(--dim);font-size:11px}.family-tree-root .chip--add{color:#cfd1d5;border-style:dashed}.family-tree-root .field{display:block}.family-tree-root .field-row{gap:10px;display:flex}.family-tree-root .field-row .field{flex:1;min-width:0}.family-tree-root .input{width:100%;color:var(--text);font-size:13px;font-family:var(--font);background:#33353a;border:1px solid #47494f;border-radius:7px;outline:none;padding:7px 9px}.family-tree-root .input:focus{border-color:var(--accent)}.family-tree-root .textarea{resize:vertical;line-height:1.5}.family-tree-root .segmented{gap:4px;display:flex}.family-tree-root .segment{background:#33353a;border:1px solid #47494f;border-radius:7px;flex:1;padding:6px 4px;font-size:12px}.family-tree-root .segment--on{background:#5b9bd53d;border-color:#5b9bd580}.family-tree-root .hint{color:var(--dim);font-size:12px;line-height:1.5}.family-tree-root .hint--warn{color:#e0b774;margin-top:6px}.family-tree-root .hints{color:#7c7f84;pointer-events:none;white-space:nowrap;gap:16px;font-size:11.5px;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.family-tree-root .hints kbd{font-family:var(--font);color:#b5b8bc;background:#3a3b40;border:1px solid #4a4c51;border-radius:4px;padding:1px 5px;font-size:10.5px}.family-tree-root .notice{border:1px solid var(--chrome-edge);box-shadow:var(--shadow);background:#232427;border-radius:9px;max-width:70vw;padding:9px 15px;font-size:12.5px;position:absolute;bottom:46px;left:50%;transform:translate(-50%)}@media (max-width:760px){.family-tree-root .panel{width:auto;height:52%;top:auto;left:14px}.family-tree-root .search{width:150px}.family-tree-root .hints{display:none}}@media (max-width:640px){.family-tree-root .minimap{display:none}}
.family-tree-root.family-tree-root{--bg:var(--paper);--card:#fff;--card-edge:var(--line);--line:#d6cfc4;--line-bright:var(--ink-2);--text:var(--ink);--muted:var(--ink-2);--dim:var(--muted);--chrome:#fff;--chrome-edge:var(--line);--accent:var(--brand);--rose:var(--pink);--danger:#b4413a;--shadow:var(--shadow-2);--font:var(--font-sans), "Segoe UI", system-ui, sans-serif;background:var(--paper);text-align:start;direction:rtl}.family-tree-root.family-tree-root .stage{background-image:radial-gradient(circle at 1px 1px,#1b1a1913 1px,#0000 0)}.family-tree-root.family-tree-root .node:hover .card{stroke:var(--brand-200)}.family-tree-root.family-tree-root .card--selected,.family-tree-root.family-tree-root .card--focus.card--selected{stroke:var(--brand)}.family-tree-root.family-tree-root .badge-box{fill:var(--brand-050)}.family-tree-root.family-tree-root .badge-tick{stroke:var(--brand-deep)}.family-tree-root.family-tree-root .label-rule{stroke:var(--line)}.family-tree-root.family-tree-root .search-input::placeholder{color:var(--muted)}.family-tree-root.family-tree-root .hints{color:var(--muted);border-radius:var(--r-pill);background:color-mix(in oklab, var(--card) 90%, transparent);border:1px solid var(--line);box-shadow:var(--shadow-1);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:7px 14px}.family-tree-root.family-tree-root .hints kbd{background:var(--sunken);border-color:var(--line);color:var(--ink-2)}.family-tree-root.family-tree-root .card-dates{direction:ltr;unicode-bidi:isolate}.family-tree-root.family-tree-root .minimap{border-radius:var(--r-sm);background:#fffffff0}.family-tree-root.family-tree-root .minimap-close{background:var(--card);border:1px solid var(--line);color:var(--ink-2)}.family-tree-root.family-tree-root .minimap-view{fill:color-mix(in oklab, var(--brand) 10%, transparent);stroke:var(--brand)}.family-tree-root.family-tree-root .minimap-close:hover{color:var(--ink)}[dir=rtl] .family-tree-root .card-dates,[dir=rtl] .family-tree-root .chip-dates,[dir=rtl] .family-tree-root .panel-dates,[dir=rtl] .family-tree-root .result-dates{direction:rtl}
