.ft-root{--ft-line:var(--line-strong);--ft-ink:var(--foreground);--ft-ghost:var(--border);--ft-connector-height:26px;--ft-symbol:2.25rem}.ft-canvas{overflow-x:hidden;container-type:inline-size}.ft-grid{--ft-symbol:min(2.25rem, calc(320cqi / var(--ft-columns,8)));align-items:start;display:grid}.ft-person{flex-direction:column;align-items:center;gap:4px;min-width:0;padding-bottom:2px;display:flex}.ft-symbol{width:var(--ft-symbol);height:var(--ft-symbol);flex:none;position:relative}.ft-shape{border:1.5px solid var(--ft-ink);background:var(--card);position:absolute;inset:0}.ft-shape[data-sex=male]{border-radius:2px}.ft-shape[data-sex=female]{border-radius:50%}.ft-shape[data-sex=unknown]{border-radius:2px;transform:rotate(45deg)scale(.72)}.ft-shape[data-affected=true]{background:var(--ft-ink)}.ft-shape[data-placeholder=true]{border-style:dashed;border-color:var(--ft-ghost);background:var(--card)}.ft-shape[data-proband=true]{border-color:var(--primary);background:color-mix(in oklab, var(--primary) 24%, var(--card))}.ft-shape[data-proband=true][data-affected=true]{background:var(--primary)}.ft-glyph{font-size:calc(var(--ft-symbol) * .55);color:var(--muted-foreground);justify-content:center;align-items:center;line-height:1;display:flex;position:absolute;inset:0}.ft-strike{border-top:1.5px solid var(--ft-ink);width:156%;box-shadow:0 -1px 0 var(--card), 0 1px 0 var(--card);position:absolute;top:50%;left:-28%;transform:rotate(-45deg)}.ft-label{background:var(--card);-webkit-line-clamp:2;line-clamp:2;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;text-align:center;width:100%;color:var(--foreground);-webkit-box-orient:vertical;padding:0 3px;font-size:11.5px;line-height:1.25;display:-webkit-box;position:relative;overflow:hidden}.ft-conditions{background:var(--card);overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;-webkit-line-clamp:2;line-clamp:2;text-align:center;width:100%;color:var(--muted-foreground);-webkit-box-orient:vertical;padding:0 3px;font-size:10.5px;line-height:1.3;display:-webkit-box;position:relative;overflow:hidden}@container (max-width:460px){.ft-label,.ft-conditions{display:none}}.ft-connector-row{height:var(--ft-connector-height)}.ft-drop{margin-top:calc(var(--ft-symbol) / 2);margin-bottom:calc(var(--ft-connector-height) / 2);border-left:1.5px solid var(--ft-line);align-self:stretch}.ft-drop[data-raised=true]{margin-top:calc(-1 * var(--ft-raise) * var(--ft-raise-step))}.ft-bar{border-top:1.5px solid var(--ft-line);align-self:center;height:0}.ft-stub{height:calc(var(--ft-connector-height) / 2);border-left:1.5px solid var(--ft-line);align-self:end}.ft-stub[data-half=true]{border-left-style:dashed}.ft-marriage{margin-top:calc(var(--ft-symbol) / 2);border-top:1.5px solid var(--ft-line);align-self:start;height:0}.ft-marriage[data-consanguineous=true]{margin-top:calc(var(--ft-symbol) / 2 - 2px);border-top:4.5px double var(--ft-line)}.ft-raised{margin-top:calc(-1 * var(--ft-raise) * var(--ft-raise-step));height:calc(var(--ft-raise) * var(--ft-raise-step));border:1.5px solid var(--ft-line);border-bottom:0;align-self:start}.ft-raised[data-consanguineous=true]{border-top:4.5px double var(--ft-line)}.ft-raised[data-dashed=true]{border-style:dashed;border-color:var(--ft-ghost)}.ft-slash{width:12px;height:14px;margin-top:calc(var(--ft-symbol) / 2 - 7px);pointer-events:none;place-self:start center;position:relative}.ft-slash[data-raised=true]{margin-top:calc(-1 * var(--ft-raise) * var(--ft-raise-step) - 7px)}.ft-slash:before,.ft-slash:after{content:"";border-left:1.5px solid var(--ft-line);height:100%;position:absolute;top:0;transform:rotate(35deg)}.ft-slash:before{left:3px}.ft-slash:after{left:8px}.ft-line-label{max-width:100%;margin-top:calc(var(--ft-symbol) / 2 - 15px);background:var(--card);text-overflow:ellipsis;white-space:nowrap;color:var(--muted-foreground);place-self:start center;padding:0 2px;font-size:10px;line-height:12px;position:relative;overflow:hidden}.ft-line-label[data-raised=true]{margin-top:calc(-1 * var(--ft-raise) * var(--ft-raise-step) - 14px)}.ft-degree,.ft-degree[data-raised=true]{margin-top:calc(-14px - var(--ft-raise,0) * var(--ft-raise-step))}.ft-symbol[data-duplicate=true]{outline:1.5px dashed var(--ft-ghost);outline-offset:3px;border-radius:4px}.ft-person[data-duplicate=true] .ft-label{color:var(--muted-foreground);font-style:italic}.ft-legend-line{border-top:1.5px solid var(--ft-line);width:22px;height:0;display:inline-block;position:relative}.ft-legend-line[data-consanguineous=true]{border-top:4.5px double var(--ft-line)}.ft-legend-line[data-ended=true]:before,.ft-legend-line[data-ended=true]:after{content:"";border-left:1.5px solid var(--ft-line);height:11px;position:absolute;top:-6px;transform:rotate(35deg)}.ft-legend-line[data-ended=true]:before{left:8px}.ft-legend-line[data-ended=true]:after{left:12px}.ft-legend{color:var(--muted-foreground);flex-wrap:wrap;gap:4px 14px;font-size:11.5px;display:flex}.ft-legend-item{align-items:center;gap:6px;display:inline-flex}.ft-legend .ft-symbol{--ft-symbol:13px}.ft-person-button{appearance:none;font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;outline:none}.ft-person-button:hover .ft-symbol,.ft-person-button:focus-visible .ft-symbol{filter:drop-shadow(0 0 .25rem color-mix(in oklab, var(--primary) 45%, transparent))}.ft-person-button:focus-visible .ft-label{text-decoration:underline}
