:root{--bg: #f4ecdf;--bg-accent: #e8d6b7;--panel: rgba(255, 250, 243, .88);--panel-strong: #fffaf3;--text: #302116;--muted: #6e5947;--line: rgba(87, 56, 29, .12);--brand: #8f3d2e;--brand-soft: #d6a26f;--danger: #9c2f2f;--shadow: 0 24px 70px rgba(67, 41, 20, .16)}*{box-sizing:border-box}body{margin:0;min-width:320px;font-family:Manrope,sans-serif;color:var(--text);background:radial-gradient(circle at top left,rgba(214,162,111,.48),transparent 24%),radial-gradient(circle at bottom right,rgba(143,61,46,.16),transparent 28%),linear-gradient(180deg,#fbf7f2 0%,var(--bg) 100%)}button,input{font:inherit}a{color:inherit}.shell,.dashboard{min-height:100vh;padding:24px}.heroPanel{display:grid;grid-template-columns:1.1fr .9fr;gap:28px;align-items:center;min-height:calc(100vh - 48px)}.heroCopy h1,.topbar h2,.panelHeader h3,.detailPanel h3,.adminCard h4{margin:0;font-family:Cormorant Garamond,serif;line-height:.95}.heroCopy h1{font-size:clamp(3rem,7vw,6.4rem);max-width:10ch}.heroCopy p,.panelHeader p,.helper,.bio,.lifeLine{color:var(--muted)}.eyebrow{display:inline-block;margin-bottom:12px;text-transform:uppercase;letter-spacing:.18em;font-size:.75rem;color:var(--brand)}.authCard,.treePanel,.detailPanel,.adminPanel,.adminCard{border:1px solid var(--line);border-radius:28px;background:var(--panel);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow)}.authCard{padding:24px;display:grid;gap:14px}.tabRow{display:flex;gap:8px;flex-wrap:wrap}.tab,.ghostButton,.navPill,.zoomRow button,.primaryButton,.inlineActions button,.graphNode{border:0;cursor:pointer;transition:.18s ease}.tab,.ghostButton,.navPill,.zoomRow button,.inlineActions button{padding:10px 14px;border-radius:999px;background:#8f3d2e14;color:var(--text);text-decoration:none}.tab.active,.navPill.active,.primaryButton,.inlineActions button:hover,.zoomRow button:hover{background:linear-gradient(135deg,var(--brand),#b86e4f);color:#fff}.danger{background:#9c2f2f1f!important;color:var(--danger)!important}.danger:hover{background:var(--danger)!important;color:#fff!important}input{width:100%;padding:14px 16px;border-radius:16px;border:1px solid var(--line);background:#ffffffb8}.primaryButton{padding:14px 18px;border-radius:18px}.notice{margin:0;color:var(--brand)}.topbar,.contentGrid,.adminGrid,.panelHeader,.pendingRow,.historyRow{display:flex}.topbar,.panelHeader,.pendingRow{justify-content:space-between;align-items:center}.topbar{margin-bottom:20px}.topbarActions,.zoomRow,.inlineActions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.contentGrid{gap:20px;align-items:stretch}.treePanel{flex:1.7;padding:20px}.detailPanel{flex:.9;padding:24px}.treeCanvas{overflow:hidden;min-height:72vh;border-radius:22px;display:grid;justify-items:center;align-items:start;background:linear-gradient(rgba(143,61,46,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(143,61,46,.05) 1px,transparent 1px),#fffbf5bf;background-size:48px 48px;border:1px solid rgba(143,61,46,.08);padding:12px}.graphViewport{position:relative;margin:0 auto;overflow:hidden}.graphSurface{position:relative;transform-origin:top left}.graphEdges{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.graphEdges path{fill:none;stroke:#8f3d2e3d;stroke-width:2.25;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.familyBadge{position:absolute;transform:translate(-50%,-50%);min-width:62px;max-width:140px;padding:6px 14px;border-radius:999px;border:1px solid rgba(143,61,46,.18);background:#fffcf7f5;box-shadow:0 8px 24px #39221414;color:var(--muted);text-align:center;font-size:.82rem;line-height:1.1;white-space:nowrap}.graphNode{position:absolute;padding:12px;border-radius:22px;border:1px solid rgba(143,61,46,.14);background:#fff9f0f2;box-shadow:0 12px 28px #3922141a;display:grid;grid-template-columns:64px 1fr;gap:12px;text-align:left;align-items:center}.graphNode:hover,.graphNode.active{transform:translateY(-2px);border-color:#8f3d2e59;box-shadow:0 20px 40px #39221429}.graphNode.active{background:linear-gradient(180deg,#fff7eefa,#f7e7d6fa)}.nodePortrait,.galleryItem img,.galleryPlaceholder{width:64px;height:64px;border-radius:18px;background:linear-gradient(135deg,#d8aa7bcc,#8f3d2e5c);overflow:hidden}.nodePortrait{display:grid;place-items:center;font-family:Cormorant Garamond,serif;font-size:2rem;color:#fff}.nodePortrait img,.galleryItem img{width:100%;height:100%;object-fit:cover}.nodeText{display:grid;gap:4px}.nodeText strong{font-size:1rem;line-height:1.15}.nodeText span{color:var(--muted);font-size:.9rem}.relationList,.gallery,.adminGrid,.importForm{display:grid;gap:12px}.relationGrid{grid-template-columns:repeat(3,minmax(0,1fr));margin:18px 0 10px}.relationGrid div{border-radius:18px;border:1px solid var(--line);padding:14px;background:#ffffff8c;display:grid;gap:4px}.relationGrid strong{font-size:1.5rem;font-family:Cormorant Garamond,serif}.relationGrid span{color:var(--muted)}.gallery{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:20px}.galleryItem{text-decoration:none;color:inherit;display:grid;gap:8px}.galleryItem img,.galleryPlaceholder{width:100%;aspect-ratio:1 / 1}.galleryPlaceholder{display:grid;place-items:center}.adminPage{display:block}.adminPanel{padding:20px}.adminGrid{gap:18px;align-items:start;flex-wrap:wrap}.adminCard{padding:18px;flex:1 1 360px}.adminCardWide{flex-basis:100%}.fileField{display:grid;gap:8px;color:var(--muted)}.fileField input{background:#ffffffe6}.checkRow{display:flex;gap:10px;align-items:center;color:var(--text)}.checkRow input{width:auto}.pendingRow,.historyRow{padding:12px 0;border-bottom:1px solid var(--line);gap:12px}.historyRow{flex-direction:column}@media (max-width: 1120px){.contentGrid{display:grid;grid-template-columns:1fr}.treeCanvas{min-height:62vh}}@media (max-width: 980px){.heroPanel,.relationGrid,.gallery{grid-template-columns:1fr}}@media (max-width: 640px){.shell,.dashboard{padding:14px}.topbar,.panelHeader,.pendingRow{flex-direction:column;align-items:flex-start}.treeCanvas{min-height:55vh}.graphNode{grid-template-columns:52px 1fr;width:160px!important}.nodePortrait{width:52px;height:52px}}
