.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media(prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin infinite 20s linear}}.App-header{background-color:#282c34;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:calc(10px + 2vmin);color:#fff}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.familyTreeApp{--family-tree-card-height: 286px;min-height:100vh;background:radial-gradient(circle at top left,rgba(243,223,184,.4),transparent 32%),radial-gradient(circle at bottom right,rgba(113,147,119,.25),transparent 28%),linear-gradient(180deg,#f6efe3,#efe4d0 52%,#eadcc6);color:#2c241c}.familyTreeShell{display:grid;grid-template-columns:320px minmax(720px,1fr) 360px;gap:18px;min-height:100vh;height:100vh;padding:18px;box-sizing:border-box}.familyTreeShell.layout-full{grid-template-columns:320px minmax(720px,1fr) 360px}.familyTreeShell.layout-left-center{grid-template-columns:320px minmax(720px,1fr)}.familyTreeShell.layout-center-right{grid-template-columns:minmax(720px,1fr) 360px}.familyTreeShell.layout-center{grid-template-columns:minmax(720px,1fr)}.familyTreePanel{border:1px solid rgba(78,56,28,.12);border-radius:24px;background:#fffaf2d1;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 20px 50px #47311717}.familyTreeSidebar,.familyTreeInspector{min-height:0;overflow:auto}.familyTreeCanvasWrap{display:flex;flex-direction:column;min-width:0;min-height:0;height:100%}.familyTreePrintHeader{display:none}.familyTreeCanvas{position:relative;flex:1 1 auto;height:auto;min-height:0;overflow:auto;border:1px solid rgba(78,56,28,.12);border-radius:30px;background:linear-gradient(rgba(122,98,67,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(122,98,67,.08) 1px,transparent 1px),linear-gradient(180deg,#fffcf7fa,#faf3e6f7);background-size:40px 40px,40px 40px,auto;box-shadow:inset 0 0 0 1px #ffffff80;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.familyTreeCanvas.panning{cursor:grabbing}.familyTreeCanvasStage{position:relative}.familyTreeCanvasInner{position:relative;transform-origin:top left}.familyTreeNode{position:absolute;width:252px;height:var(--family-tree-card-height);display:flex;flex-direction:column;border-radius:22px;border:1px solid rgba(91,63,33,.18);background:#fffbf5f5;box-shadow:0 18px 28px #432f171c;overflow:hidden;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease}.familyTreeNode.draggable{cursor:grab;touch-action:none}.familyTreeNode.dragging{cursor:grabbing}.familyTreeNode:hover{transform:translateY(-2px);box-shadow:0 22px 32px #432f1724}.familyTreeNode.selected{border-color:#63f36b;box-shadow:0 0 0 4px #63f36beb,0 0 0 8px #63f36b33,0 24px 34px #2b5c4329}.familyTreeApp.hasSelection .familyTreeNode:not(.selected):not(.dragging){opacity:.34}.familyTreeNodeHideButton{flex:0 0 auto;align-self:flex-start;margin-top:-2px;margin-right:-4px;opacity:0;pointer-events:none;color:#7a5a34;transition:opacity .14s ease,background-color .14s ease}.familyTreeNode:hover .familyTreeNodeHideButton,.familyTreeNode:focus-within .familyTreeNodeHideButton{opacity:1;pointer-events:auto}.familyTreeNodeHideButton:hover{background:#f5e9d9f5}.familyTreeNodeHeader{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px 10px;background:linear-gradient(180deg,#f7efdef2,#f6e8cad9)}.familyTreeNodeBody{padding:12px 16px 16px;display:flex;flex:1 1 auto;flex-direction:column;min-height:0}.familyTreeNodeSummary{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;min-height:4em}.familyTreeHeroImage{position:relative;width:calc(100% - 32px);margin:10px 16px 0;aspect-ratio:16 / 9;border-radius:16px;overflow:hidden;border:1px solid rgba(91,63,33,.12);background:linear-gradient(180deg,#f0e6d4f2,#e2d6c2d1)}.familyTreeNode .familyTreeHeroImage{width:100%;margin:0;border:none;border-radius:0}.familyTreeHeroImageInner{position:absolute;inset:0;width:100%;height:100%;display:block;-webkit-user-drag:none}.familyTreeHeroImageOverlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:12px;text-align:center;background:linear-gradient(180deg,#f0e6d4eb,#e2d6c2d6);color:#6f5738}.familyTreeHeroImageOverlay.error{background:linear-gradient(180deg,#f6e7daf2,#eed8c9e6);color:#7a3d24}.familyTreeHeroImageLarge{width:100%;margin:0;border:none;border-radius:0}.familyTreeApp.printPhotosOff .familyTreeNodeSummary{-webkit-line-clamp:3;min-height:0}.familyTreeHeroCropSurface{width:100%;margin:0;cursor:crosshair}.familyTreeHeroCropTarget{position:absolute;left:50%;top:50%;width:26px;height:26px;transform:translate(-50%,-50%);border:2px solid rgba(255,255,255,.92);border-radius:999px;box-shadow:0 0 0 1px #4d381f47}.familyTreeEdgeSvg{position:absolute;inset:0;pointer-events:none}.familyTreeMarquee{position:absolute;border:2px solid rgba(43,92,67,.74);background:#2b5c431f;border-radius:10px;pointer-events:none;z-index:2}.familyTreeEdgeLabel{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;fill:#6c4d29}.familyTreeLegend{display:grid;gap:10px}.familyTreeStatGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.familyTreeStat{padding:12px 14px;border-radius:16px;background:#7d97741f}.familyTreeSearchResults{display:grid;gap:10px;max-height:420px;overflow:auto}.familyTreeSearchResult{padding:12px 14px;border-radius:16px;border:1px solid rgba(91,63,33,.1);background:#fffcf7eb}.familyTreeDocumentSurface{padding:14px 16px;border-radius:18px;background:#fffbf5f5;border:1px solid rgba(91,63,33,.1);white-space:pre-wrap}.familyTreeDocumentSurface.familyTreeHeroImagePanel{padding:0;overflow:hidden}.familyTreeHeroImageMeta{padding:12px 16px 14px}.familyTreeAttachmentActions{width:100%;padding-top:2px}.familyTreeSectionTitle{font-size:.74rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#725431}@media(max-width:1380px){.familyTreeShell,.familyTreeShell.layout-full,.familyTreeShell.layout-left-center{grid-template-columns:300px minmax(640px,1fr);height:auto}.familyTreeShell.layout-center-right,.familyTreeShell.layout-center{grid-template-columns:minmax(640px,1fr);height:auto}.familyTreeInspector{grid-column:1 / -1}.familyTreeSidebar,.familyTreeInspector{overflow:visible}.familyTreeCanvas{flex:0 0 auto;height:clamp(560px,72vh,1200px)}}@media(max-width:1024px){.familyTreeShell,.familyTreeShell.layout-full,.familyTreeShell.layout-left-center,.familyTreeShell.layout-center-right,.familyTreeShell.layout-center{grid-template-columns:1fr;height:auto}.familyTreeCanvas{flex:0 0 auto;height:clamp(520px,62vh,860px)}}@media print{.familyTreeApp{background:#fff}.familyTreeShell{display:block;padding:0}.familyTreePanel,.familyTreeToolbar,.familyTreeSidebar,.familyTreeInspector{display:none!important}.familyTreeCanvas{border:none;box-shadow:none;background:#fff;overflow:visible;height:auto}.familyTreePrintHeader{display:block;margin:0 0 18px;padding:0 0 10px;border-bottom:1px solid rgba(78,56,28,.18)}.familyTreeCanvasInner{transform-origin:top left;transform:none!important}.familyTreeApp.printPhotosOff .familyTreeHeroImage,.familyTreeNodeHideButton{display:none!important}.familyTreeCanvasStage{overflow:visible}@page{size:landscape;margin:.35in}}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}a{color:#fff}a:hover{color:red}*.foo{margin:10;padding:0;font-size:12px}table.outer{border-spacing:4px}table.inner{font-size:12px;border-spacing:4px}
