:root{--bg:#f6f3ee;--panel:#fffdf9;--ink:#2b2622;--muted:#7a7068;--line:#e3dcd2;--accent:#2f6f5e;--accent-ink:#fff;--male:#4a78a8;--female:#b5577a;--unknown:#a39a8f;--focus:#fff4d6;--danger:#b23b3b;--link:#b9ae9f;--warn:#a0620c;--ok:#2f6f5e;--error-bg:#fbeaea;--ok-bg:#e7f3ef;--serif:Georgia, "Times New Roman", serif;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans", "Noto Sans Armenian", sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#1b1917;--panel:#252220;--ink:#ece6df;--muted:#a59a8f;--line:#3a3530;--accent:#5fb39b;--accent-ink:#10201b;--male:#7aa6d6;--female:#e08aa8;--unknown:#8a8178;--focus:#3d3520;--danger:#e06b6b;--link:#5e564e;--warn:#e0a54a;--ok:#5fb39b;--error-bg:#3a2222;--ok-bg:#1f3530}}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font:15px/1.45 var(--sans)}h1,h2{font-family:var(--serif);font-weight:600}a{color:var(--accent)}.muted{color:var(--muted)}.small{font-size:13px}.pad{padding:12px 16px}.center{text-align:center;margin-top:60px}.prewrap{white-space:pre-wrap}button{font:inherit;cursor:pointer;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:7px 13px}button:hover:not(:disabled){border-color:var(--muted)}button:disabled{opacity:.6;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}button.danger{color:var(--danger)}button.textlink{color:var(--accent);text-align:left;background:0 0;border:none;padding:0;text-decoration:underline}.small-btn{padding:4px 10px;font-size:13px}input,select,textarea{width:100%;font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:6px;margin-top:4px;padding:8px 10px;display:block}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}textarea{resize:vertical}label,legend{color:var(--muted);font-size:13px;display:block}label{margin:12px 0}label.check{color:var(--ink);align-items:center;gap:8px;margin:8px 0;font-size:14px;display:flex}label.check input{width:auto;margin:0}fieldset{border:none;margin:14px 0;padding:0}fieldset>input+input,fieldset>input+label,fieldset>label+input{margin-top:6px}.two{gap:8px;margin-top:6px;display:flex}.two>*{flex:1;min-width:0}.two>label{margin:0}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row input{flex:1;min-width:200px;margin:0}.stack{flex-direction:column;display:flex}.stack label{margin:8px 0}.stack button{margin-top:10px}.error{background:var(--error-bg);color:var(--danger);border-radius:8px;padding:10px 12px}.success{background:var(--ok-bg);color:var(--ok);border-radius:8px;padding:10px 12px}.auth-page{justify-content:center;align-items:center;min-height:100vh;padding:24px 16px;display:flex}.auth-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;width:100%;max-width:400px;padding:28px}.auth-card h1{margin:0 0 4px;font-size:30px}.divider{color:var(--muted);align-items:center;gap:12px;margin:18px 0;font-size:13px;display:flex}.divider:before,.divider:after{content:"";border-top:1px solid var(--line);flex:1}.requests{margin:0;padding:0;list-style:none}.requests li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:12px;padding:10px 0;display:flex}.requests li p{margin:6px 0 0}.hp{opacity:0;width:1px;height:1px;position:absolute;left:-9999px}.auth-card.legal{max-width:640px;line-height:1.55}.auth-card.legal h2{margin:22px 0 6px;font-size:18px}.auth-card.legal ul{padding-left:20px}button.google{justify-content:center;align-items:center;gap:10px;width:100%;display:flex}.app-shell{flex-direction:column;min-height:100vh;display:flex}.topbar{background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:20px;padding:10px 16px;display:flex}.brand{font:600 22px/1 var(--serif);color:var(--ink);text-decoration:none}.topbar nav{gap:16px;margin-right:auto;display:flex}.topbar nav a{color:var(--ink);text-decoration:none}.topbar nav a:hover{color:var(--accent)}.who{color:var(--muted);font-size:13px}.lang-switch{border:1px solid var(--line);border-radius:8px;display:inline-flex;overflow:hidden}.lang-switch button{background:var(--panel);color:var(--muted);border:none;border-radius:0;padding:4px 10px;font-size:13px}.lang-switch button+button{border-left:1px solid var(--line)}.lang-switch button.active{background:var(--accent);color:var(--accent-ink)}.lang-switch button:disabled{opacity:1}.auth-lang{justify-content:flex-end;margin:-12px -12px 8px 0;display:flex}.role-badge{background:var(--bg);border:1px solid var(--line);border-radius:999px;margin-left:4px;padding:2px 8px}.page{width:100%;max-width:860px;margin:0 auto;padding:24px 16px 60px}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;margin:18px 0;padding:18px 20px}.card h2{margin:0 0 10px;font-size:19px}.grid-form{grid-template-columns:1fr 1fr;gap:0 16px;display:grid}.grid-form>p{grid-column:1/-1}.grid-form label{margin:8px 0}.table-wrap{overflow-x:auto}table.members{border-collapse:collapse;width:100%}table.members th,table.members td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:10px 8px}table.members th{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:12px}table.members select{width:auto;margin:0}table.members .actions{white-space:nowrap;text-align:right}table.members .actions button+button{margin-left:6px}dl.roles div{gap:12px;padding:6px 0;display:flex}dl.roles dt{flex:none;width:100px;font-weight:600}dl.roles dd{color:var(--muted);margin:0}.tree-app{flex-direction:column;flex:1;height:calc(100vh - 53px);min-height:0;display:flex}.toolbar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 16px;display:flex}.save-state{color:var(--muted);min-width:120px;margin-right:auto;font-size:13px}.save-state.error{color:var(--warn)}.tree-grid{flex:1;grid-template-columns:240px 1fr 380px;min-height:0;display:grid}aside.list{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;min-height:0;display:flex}aside.list input{width:auto;margin:12px}aside.list ul{margin:0;padding:0 6px 12px;list-style:none;overflow:auto}aside.list li button{text-align:left;background:0 0;border:none;border-radius:6px;width:100%;padding:7px 10px}aside.list li button:hover{background:var(--bg)}aside.list li button.active{background:var(--focus)}aside.list .yr{color:var(--muted);font-size:12px;display:block}.tree-area{--vine-wood:#7a5636;--vine-leaf:#6f9a3c;--vine-leaf-dark:#4b7428;--berry-hi:#a9a6d2;--berry-mid:#4a3f6e;--berry-lo:#22182f;--unripe-hi:#d6e39a;--unripe-lo:#8aa246;--label-bg:#fffcf2;--label-line:#ddd2b3;--label-ink:#2d1f33;--label-muted:#7d6f78;--label-tag:#5d7f33;--sun:#e0aa3a;--sun-bg:#fbf0c9;--leaf-pattern:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260'%3E%3Cg fill='%236f9a3c' fill-opacity='.08'%3E%3Cpath transform='translate(30 150) rotate(-20) scale(.7)' d='M50 74 Q30 82 8 64 Q22 58 30 50 Q12 44 10 22 Q26 26 36 32 Q36 14 50 3 Q64 14 64 32 Q74 26 90 22 Q88 44 70 50 Q78 58 92 64 Q70 82 50 74 Z'/%3E%3Cpath transform='translate(160 40) rotate(25) scale(.55)' d='M50 74 Q30 82 8 64 Q22 58 30 50 Q12 44 10 22 Q26 26 36 32 Q36 14 50 3 Q64 14 64 32 Q74 26 90 22 Q88 44 70 50 Q78 58 92 64 Q70 82 50 74 Z'/%3E%3C/g%3E%3C/svg%3E");background:radial-gradient(ellipse 80% 50% at 50% 0%, #fff6c8b3, transparent 70%), var(--leaf-pattern), linear-gradient(#eef3dc, #e2e9cc);min-height:0;position:relative;overflow:auto}@media (prefers-color-scheme:dark){.tree-area{--vine-wood:#9a774f;--vine-leaf:#77a447;--vine-leaf-dark:#4f7530;--berry-hi:#b4b0e0;--berry-mid:#5a4d86;--berry-lo:#1c1427;--unripe-hi:#c3d486;--unripe-lo:#6f8638;--label-bg:#241f29;--label-line:#40374a;--label-ink:#efe8f2;--label-muted:#a99cad;--label-tag:#9cc46a;--sun:#d9a83c;--sun-bg:#3a321c;background:radial-gradient(ellipse 80% 50% at 50% 0%, #786e3238, transparent 70%), var(--leaf-pattern), linear-gradient(#141911, #1b1621)}}.vine-garland{z-index:0;pointer-events:none;height:0;position:sticky;top:0;left:0}.vine-garland svg{display:block;overflow:visible}.tree-area .wood{fill:none;stroke:var(--vine-wood);stroke-width:3.2px;stroke-linecap:round}.tree-area .tendril{fill:none;stroke:var(--vine-leaf);stroke-width:1.3px;stroke-linecap:round}.tree-area .leaf{fill:var(--vine-leaf);stroke:var(--vine-leaf-dark)}.vine-garland .berry{fill:url(#grape-berry);stroke:var(--berry-lo);stroke-opacity:.5;stroke-width:.6px}.vine-garland .berry.unripe{fill:url(#grape-unripe)}.vine-garland .shine{fill:#fff;opacity:.35}.berry-hi{stop-color:var(--berry-hi)}.berry-mid{stop-color:var(--berry-mid)}.berry-lo{stop-color:var(--berry-lo)}.unripe-hi{stop-color:var(--unripe-hi)}.unripe-lo{stop-color:var(--unripe-lo)}.tree-area .welcome{z-index:1;margin-top:0;padding-top:70px;position:relative}.tree-inner{flex-direction:column;align-items:center;gap:44px;width:max-content;min-width:100%;padding:64px 32px 48px;display:flex;position:relative}.hint{color:var(--label-tag);margin-bottom:-24px;font-size:13px;font-style:italic}.anc-row{justify-content:center;align-items:flex-end;gap:16px;display:flex}.anc-col{flex-direction:column;align-items:center;gap:44px;display:flex}.mid-row{align-items:center;gap:22px;display:flex}.desc-row{align-items:flex-start;gap:24px;display:flex}.desc-col{flex-direction:column;align-items:center;gap:44px;display:flex}.gk-row{gap:12px;display:flex}.pbox{--ring-lo:#4a3352;--ring-hi:#a58cb3;z-index:1;text-align:center;background:0 0;border:none;border-radius:0;flex-direction:column;align-items:center;width:148px;padding:0;transition:transform .15s;display:flex;position:relative}.pbox.M{--ring-lo:#2c2f5a;--ring-hi:#8d90cc}.pbox.F{--ring-lo:#5e2442;--ring-hi:#c27792}.pbox.pet{--ring-lo:#6f8638;--ring-hi:#d6e39a;width:120px}.pbox:hover:not(:disabled):not(.focus){transform:translateY(-2px)}.pbox:hover:not(:disabled) .label{border-color:var(--vine-leaf)}.pbox .oval{background:linear-gradient(155deg, var(--ring-hi), var(--ring-lo) 70%);border-radius:50%;width:92px;height:116px;margin-bottom:-10px;padding:3px;display:block;box-shadow:0 3px 10px #2d193c47}.pbox.pet .oval{width:76px;height:96px}.pbox .oval-in{background:radial-gradient(circle at 40% 30%, color-mix(in srgb, var(--ring-hi) 30%, var(--label-bg)), color-mix(in srgb, var(--ring-lo) 30%, var(--label-bg)));border-radius:50%;justify-content:center;align-items:center;width:100%;height:100%;display:flex;overflow:hidden}.pbox .oval img{object-fit:cover;width:100%;height:100%}.pbox .oval svg.none{width:58%;fill:color-mix(in srgb, var(--ring-hi) 60%, transparent);margin-top:18%}.pbox .oval span.none{opacity:.55;font-size:28px}.pbox .label{width:100%;color:var(--label-ink);background:var(--label-bg);border:1px solid var(--label-line);border-radius:10px;padding:8px 8px 7px;display:block;position:relative;box-shadow:0 2px 6px #2d193c1f}.pbox.pet .label{border-style:dashed}.pbox .label:before{content:"";background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath fill='%236f9a3c' stroke='%234b7428' stroke-width='3' d='M50 74 Q30 82 8 64 Q22 58 30 50 Q12 44 10 22 Q26 26 36 32 Q36 14 50 3 Q64 14 64 32 Q74 26 90 22 Q88 44 70 50 Q78 58 92 64 Q70 82 50 74 Z M50 96 V74 M50 74 L50 12 M50 74 L18 28 M50 74 L82 28'/%3E%3C/svg%3E") 50%/contain no-repeat;width:22px;height:22px;position:absolute;top:-13px;right:14px;transform:rotate(28deg)}.pbox.focus{cursor:default}.pbox.focus .oval{box-shadow:0 0 0 3px var(--sun), 0 0 22px 4px color-mix(in srgb, var(--sun) 55%, transparent)}.pbox.focus .label{background:var(--sun-bg);border-color:var(--sun);box-shadow:0 0 0 1px var(--sun), 0 2px 8px #2d193c26}.pbox .nm{font:600 15px/1.25 var(--serif);overflow-wrap:anywhere;display:block}.pbox .yr{color:var(--label-muted);margin-top:1px;font-size:12px;display:block}.pbox .tag{color:var(--label-tag);text-transform:uppercase;letter-spacing:.06em;font-size:10.5px;font-weight:600;display:block}.ph{z-index:1;border:1.5px dashed var(--vine-wood);background:color-mix(in srgb, var(--label-bg) 55%, transparent);width:148px;color:var(--vine-wood);border-radius:999px;padding:14px 10px;position:relative}.ph:hover{color:var(--vine-leaf-dark);border-color:var(--vine-leaf)!important}svg.lines{pointer-events:none;z-index:0;position:absolute;top:0;left:0;overflow:visible}svg.lines>path{fill:none;stroke:var(--vine-wood);stroke-width:3px;stroke-linecap:round}svg.lines>path.tendril{stroke:var(--vine-leaf);stroke-width:1.3px}svg.lines>path.partner{stroke:var(--vine-leaf);stroke-width:2px}.photo-box{margin:10px 0 14px}.member-avatar{float:left;object-fit:cover;border-radius:50%;width:40px;height:40px;margin-right:10px}.photo-box img,.photo-empty{object-fit:cover;background:var(--bg);border:1px solid var(--line);border-radius:10px;width:160px;height:160px;display:block}.photo-empty{text-align:center;color:var(--muted);justify-content:center;align-items:center;padding:8px;font-size:13px;display:flex}.photo-actions{gap:6px;margin-top:6px;display:flex}.welcome{text-align:center;max-width:460px;margin:60px auto;padding:0 16px}.welcome h2{margin:0 0 8px;font-size:24px}.welcome .actions{flex-direction:column;align-items:center;gap:10px;margin-top:20px;display:flex}.detail-area{background:var(--panel);border-left:1px solid var(--line);min-height:0;overflow:auto}.panel{padding:16px 18px 40px}.panel h2{overflow-wrap:anywhere;margin:4px 0 2px;font-size:22px}.alt-names{margin:0 0 8px;font-size:14px}.living-box{flex-direction:column;justify-content:flex-end;display:flex}.private{background:var(--focus);border-radius:8px;padding:8px 10px}.facts{margin:12px 0}.fact{gap:10px;padding:4px 0;display:flex}.fact dt{width:110px;color:var(--muted);flex:none;padding-top:1px;font-size:13px}.fact dd{margin:0}h3.sub{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:16px 0 4px;font-size:12px}.rel{border-top:1px solid var(--line);margin-top:18px;padding-top:12px}.rel h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 8px;font-size:12px}.chips{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.chip{background:var(--bg);border:1px solid var(--line);border-radius:999px;align-items:center;gap:6px;padding:3px 12px;display:inline-flex}.chip:has(.x){padding-right:6px}.chip .x{color:var(--muted);background:0 0;border:none;padding:0 6px;font-size:16px;line-height:1}.chip .x:hover{color:var(--danger)}.rel .add{padding:4px 10px;font-size:13px}.rel .none{color:var(--muted);margin:0 0 8px;font-size:13px}.delete-wrap{border-top:1px solid var(--line);margin-top:24px;padding-top:16px}dialog.picker{border:1px solid var(--line);background:var(--panel);width:min(440px,100vw - 32px);color:var(--ink);border-radius:12px;padding:20px}dialog::backdrop{background:#0006}dialog h3{font:600 19px/1.2 var(--serif);margin:0 0 14px}.or{color:var(--muted);border-top:1px solid var(--line);margin:18px 0 8px;padding-top:14px;font-size:13px}.pick-list{max-height:220px;margin:8px 0 0;padding:0;list-style:none;overflow:auto}.pick-list button{text-align:left;background:0 0;border:none;border-radius:6px;width:100%;padding:7px 10px}.pick-list button:hover{background:var(--bg)}.dialog-foot{justify-content:flex-end;margin-top:16px;display:flex}.owner-list{max-height:180px;overflow:auto}.dialog-foot.split{justify-content:space-between;gap:8px}.dialog-foot .buttons{gap:8px;margin-left:auto;display:flex}@media (max-width:960px){.tree-app{height:auto}.tree-grid{display:block}aside.list{border-right:none;border-bottom:1px solid var(--line);max-height:240px}.tree-area{border-bottom:1px solid var(--line);min-height:380px}.detail-area{border-left:none}.grid-form{grid-template-columns:1fr}table.members .actions{text-align:left}}
