:root{color-scheme:light;--bg: #f5f2ea;--panel: #fffdf8;--ink: #241f18;--muted: #7c7365;--line: #e2dacb;--line-strong: #cfc4b1;--accent: #3c6a55;--accent-soft: #e7f0ea;--male: #3c6c96;--female: #a44f75;--other: #6d63a0;--unknown: #918a7c;--danger: #a33a32;--radius: 10px;--shadow: 0 1px 2px rgba(49, 40, 24, .06), 0 4px 12px rgba(49, 40, 24, .04)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:radial-gradient(circle at 12% -10%,#fdfaf2 0%,transparent 45%),radial-gradient(circle at 100% 0%,#eef3ec 0%,transparent 40%),var(--bg);color:var(--ink);font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;font-family:Iowan Old Style,Palatino Linotype,Georgia,serif;font-weight:600;letter-spacing:-.01em}h1{font-size:1.5rem}h2{font-size:1.1rem}h3{font-size:.95rem}p{margin:0}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}input{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{max-width:1600px;margin:0 auto;padding:1.25rem 1.25rem 3rem;display:flex;flex-direction:column;height:100vh}.app-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.5rem .25rem 1.25rem}.app-header p{margin-top:.2rem;max-width:60ch}.api-link{flex:none;padding:.35rem .7rem;border:1px solid var(--line-strong);border-radius:999px;background:var(--panel);color:var(--accent);font-size:.8rem;text-decoration:none;white-space:nowrap}.api-link:hover{border-color:var(--accent)}button.api-link{cursor:pointer}.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:.45rem;flex-wrap:wrap}.user-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.28rem .55rem;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--muted);font-size:.8rem;white-space:nowrap}.role-badge{padding:.04rem .3rem;border:1px solid currentColor;border-radius:999px;color:var(--accent);font-size:.6rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.role-badge.role-admin{color:var(--danger)}.mobile-tabs{display:none}.auth-gate{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem}.login-card{width:min(430px,100%);padding:1.5rem;border:1px solid var(--line-strong);border-radius:16px;background:var(--panel);box-shadow:0 24px 60px #241f1824}.login-card h1{margin-top:.15rem;font-size:1.55rem}.login-intro{margin-top:.35rem;font-size:.88rem}.eyebrow{color:var(--accent);font-size:.7rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.login-form{display:flex;flex-direction:column;gap:.8rem;margin-top:1.1rem}.login-submit{justify-content:center;margin-top:.2rem;padding:.5rem .8rem;font-size:.9rem}.layout{display:grid;grid-template-columns:minmax(220px,270px) minmax(0,1fr) minmax(280px,360px);gap:1rem;align-items:stretch;flex:1;min-height:0}@media (max-width: 1180px){.app{display:block;height:auto;min-height:0}.layout{grid-template-columns:minmax(220px,260px) minmax(0,1fr);align-items:stretch}.search-panel{grid-column:1;grid-row:1}.details-panel{grid-column:2;grid-row:1;overflow:visible}.tree-panel{grid-column:1 / -1;grid-row:2}.empty-state{grid-column:2;grid-row:1}.person-list{max-height:58vh}.tree-canvas{max-height:72vh}}@media (max-width: 760px){.app{padding:.9rem}.layout{grid-template-columns:minmax(0,1fr)}.search-panel,.details-panel,.tree-panel,.empty-state{grid-column:1 / -1;grid-row:auto}}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:.9rem;min-width:0}.empty-state{min-height:220px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.4rem;text-align:center}.muted{color:var(--muted)}.small{font-size:.78rem}.error{color:var(--danger);background:#fdf0ee;border:1px solid #f0cfc9;border-radius:8px;padding:.5rem .6rem;font-size:.82rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;padding:.38rem .7rem;border:1px solid var(--line-strong);border-radius:8px;background:#fffefb;font-size:.82rem;line-height:1.2;white-space:nowrap}.btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn--small{padding:.18rem .45rem;border-radius:7px;font-size:.72rem}.btn--primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn--primary:hover:not(:disabled){background:#335c49;border-color:#335c49;color:#fff}.btn--danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn--danger:hover:not(:disabled){background:#8d2f28;border-color:#8d2f28;color:#fff}.btn--danger-ghost{background:#fff8f6;border-color:#e8c9c3;color:var(--danger)}.btn--danger-ghost:hover:not(:disabled){border-color:var(--danger);color:var(--danger)}.icon-button{width:1.3rem;height:1.3rem;flex:none;padding:0;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--muted);font-size:.95rem;line-height:1}.icon-button:hover:not(:disabled){background:#fff7f5;border-color:#e8c9c3;color:var(--danger)}select.inline-select{height:1.45rem;padding:0 .2rem;border:1px solid var(--line);border-radius:6px;background:#fffefb;color:var(--muted);font-size:.7rem}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.panel-head h2{font-size:1rem}.section-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.row-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.25rem}.search-panel{display:flex;flex-direction:column;gap:.7rem;min-height:0;overflow:hidden}.search-fields{display:flex;flex-direction:column;gap:.55rem}.field{display:flex;flex-direction:column;gap:.2rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.field input{padding:.45rem .55rem;border:1px solid var(--line-strong);border-radius:8px;background:#fffefb;font-size:.9rem;text-transform:none;letter-spacing:normal;color:var(--ink)}.field input::placeholder{color:#b3aa9a}.search-summary{font-size:.75rem;color:var(--muted);border-top:1px solid var(--line);padding-top:.55rem}.person-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.2rem;flex:1 1 auto;min-height:0;overflow-y:auto}.person-row{display:flex;align-items:center;gap:.5rem;width:100%;padding:.4rem .5rem;border:1px solid transparent;border-radius:8px;background:transparent;text-align:left}.person-row:hover{background:#f6f2e8}.person-row.is-selected{background:var(--accent-soft);border-color:#c6dccd}.person-row-text{display:flex;flex-direction:column;min-width:0}.person-row-name{font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.person-row-meta{font-size:.75rem;color:var(--muted)}.sex-dot{flex:none;display:inline-flex;align-items:center;justify-content:center;width:1.45rem;height:1.45rem;border-radius:50%;border:1px solid currentColor;font-size:.75rem;line-height:1}.sex-male{color:var(--male);background:#e9f0f7}.sex-female{color:var(--female);background:#f9eaf1}.sex-other{color:var(--other);background:#efecfa}.sex-unknown{color:var(--unknown);background:#f3f0e9}.pager{display:flex;align-items:center;justify-content:space-between;gap:.4rem;border-top:1px solid var(--line);padding-top:.55rem;font-size:.78rem;color:var(--muted)}.pager button{width:1.9rem;height:1.9rem;border:1px solid var(--line-strong);border-radius:7px;background:#fffefb;font-size:1rem;line-height:1}.pager button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.tree-panel{display:flex;flex-direction:column;gap:.7rem;min-height:0;overflow:hidden}.tree-toolbar{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.6rem;border-bottom:1px solid var(--line);padding-bottom:.65rem}.tree-title{display:flex;flex-direction:column;gap:.1rem}.tree-title .muted{font-size:.78rem}.tree-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.4rem}.depth-control{display:flex;flex-direction:column;gap:.15rem;font-size:.68rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.depth-control input{width:4rem;padding:.25rem .4rem;border:1px solid var(--line-strong);border-radius:7px;background:#fffefb;font-size:.85rem;letter-spacing:normal;color:var(--ink)}.tree-controls>button{padding:.36rem .6rem;border:1px solid var(--line-strong);border-radius:7px;background:#fffefb;font-size:.78rem}.tree-controls>button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.tree-canvas{overflow:auto;padding:.35rem .15rem 1rem;flex:1 1 auto;min-height:0}.view-switch{display:inline-flex;border:1px solid var(--line-strong);border-radius:7px;overflow:hidden}.view-switch button{padding:.36rem .6rem;border:0;background:#fffefb;font-size:.78rem;color:var(--ink)}.view-switch button+button{border-left:1px solid var(--line-strong)}.view-switch button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);font-weight:600}.tree-graph{display:flex;flex-direction:column;gap:.5rem;flex:1 1 auto;min-height:0}.graph-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:.4rem}.graph-toolbar select{padding:.28rem .4rem;border:1px solid var(--line-strong);border-radius:7px;background:#fffefb;font-size:.82rem;color:var(--ink)}.graph-zoom{display:flex;align-items:center;gap:.35rem}.graph-zoom button{min-width:2rem;padding:.3rem .5rem;border:1px solid var(--line-strong);border-radius:7px;background:#fffefb;font-size:.82rem}.tree-graph-canvas{overflow:auto;flex:1 1 auto;min-height:0;padding:.5rem;border:1px solid var(--line);border-radius:8px;background:radial-gradient(circle at 20% 0%,#fdfaf2 0%,transparent 55%),#fffefb}.tree-graph-canvas svg{display:block;margin:0 auto}.tree-graph-canvas g.node{cursor:pointer}.tree-graph-canvas g.node:hover path,.tree-graph-canvas g.node:hover polygon,.tree-graph-canvas g.node:focus path,.tree-graph-canvas g.node:focus polygon{filter:brightness(.96)}.tree-graph-canvas g.node:focus{outline:none}.tree-graph-canvas g.node:focus-visible path,.tree-graph-canvas g.node:focus-visible polygon{stroke:var(--accent);stroke-width:2.5}.tree-node{display:flex;flex-direction:column;align-items:flex-start;gap:.3rem;min-width:0}.node-card{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem;padding:.34rem .55rem .34rem .35rem;background:var(--panel);border:1px solid var(--line);border-radius:9px;box-shadow:0 1px 1px #3128180a;max-width:100%}.node-card.is-selected{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent-soft),var(--shadow)}.toggle{flex:none;width:1.4rem;height:1.4rem;padding:0;border:1px solid var(--line-strong);border-radius:6px;background:#fffefb;color:var(--muted);font-size:.7rem;line-height:1}.toggle:hover{border-color:var(--accent);color:var(--accent)}.toggle--empty{display:inline-flex;align-items:center;justify-content:center;border-color:transparent;background:transparent;font-size:.5rem;color:var(--line-strong)}.node-name{padding:0;border:none;background:none;font-weight:600;text-align:left}.node-name:hover{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.node-years{font-size:.78rem;color:var(--muted)}.badge{display:inline-flex;align-items:center;gap:.2rem;padding:.08rem .4rem;border-radius:999px;font-size:.68rem;line-height:1.4;letter-spacing:.01em;white-space:nowrap}.badge--relation{background:#f1ece0;border:1px solid #e2d9c6;color:#77664a}.badge--union{background:#eef3f8;border:1px solid #d5e2ee;color:#40617f;max-width:20rem;overflow:hidden;text-overflow:ellipsis}.badge--event{background:var(--accent-soft);border:1px solid #c6dccd;color:#2f5a47}.tree-branch{display:flex;flex-direction:column;align-items:flex-start;gap:.3rem;margin-left:.75rem;padding-left:.7rem;border-left:1px dashed var(--line-strong)}.branch-label{font-size:.62rem;text-transform:uppercase;letter-spacing:.09em;color:#a39885}.tree-branch--parents .branch-label:before{content:"↑ "}.tree-branch--children .branch-label:before{content:"↓ "}.collapsed-hint{margin-left:1.8rem;padding:.1rem .45rem;border:1px dashed var(--line-strong);border-radius:999px;background:transparent;color:var(--muted);font-size:.7rem}.collapsed-hint:hover{border-color:var(--accent);color:var(--accent)}.details-panel{display:flex;flex-direction:column;gap:.85rem;min-height:0;overflow-y:auto}.details-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;border-bottom:1px solid var(--line);padding-bottom:.7rem}.details-header-side{display:flex;align-items:center;justify-content:space-between;gap:.4rem;margin-top:.3rem}.details-title{display:flex;align-items:flex-start;flex:1 1 auto;gap:.7rem;min-width:0}.details-identity{display:flex;flex:1 1 auto;flex-direction:column;gap:.1rem;min-width:0}.details-title h2{overflow-wrap:anywhere}.details-title .muted{font-size:.78rem}.avatar{flex:none;display:inline-flex;align-items:center;justify-content:center;width:2.4rem;height:2.4rem;border-radius:50%;border:1px solid currentColor;font-size:1.1rem}.details-photo-link{flex:none;display:block;border:1px solid var(--line-strong);border-radius:12px;overflow:hidden;transition:border-color .12s ease}.details-photo-link:hover,.details-photo-link:focus-visible{border-color:var(--accent)}.details-photo{display:block;width:7rem;height:7rem;object-fit:cover;background:#f6f2e8}.id-chip{flex:none;padding:.1rem .45rem;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.72rem}.fact-grid{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.25rem .7rem;margin:0;font-size:.86rem}.fact-grid dt{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;padding-top:.15rem}.fact-grid dd{margin:0}.biography{font-size:.86rem;color:#4b4337;border-left:2px solid var(--line-strong);padding-left:.6rem}.details-section{display:flex;flex-direction:column;gap:.35rem;border-top:1px solid var(--line);padding-top:.7rem}.details-section h3{font-size:.72rem;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-family:inherit;font-weight:600}.relation-list,.union-list,.event-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.3rem}.relation-list li{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem}.link-button{padding:0;border:none;background:none;color:var(--accent);text-align:left;font-size:.86rem;text-decoration:underline;text-decoration-color:#c2d6c9;text-underline-offset:2px}.link-button:hover{text-decoration-color:currentColor}.link-button .muted{color:var(--muted);text-decoration:none;font-size:.76rem}.union-item{font-size:.86rem}.union-item>.picture-list{margin-top:.55rem}.union-item-main{display:flex;align-items:flex-start;gap:.7rem}.union-item-body{display:flex;flex:1 1 auto;flex-direction:column;gap:.3rem;min-width:0}.union-item-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.35rem}.union-title{display:flex;align-items:center;gap:.4rem}.union-photo-link{display:block;flex:none;border-radius:12px;overflow:hidden;border:1px solid var(--line-strong);transition:border-color .12s ease}.union-photo-link:hover,.union-photo-link:focus-visible{border-color:var(--accent)}.union-photo{display:block;width:7rem;height:7rem;object-fit:cover;background:#f6f2e8}.union-partner{display:flex;align-items:center;gap:.3rem}.event-item{border-left:2px solid var(--line);padding-left:.55rem;display:flex;flex-direction:column;gap:.12rem}.event-head{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem}.event-place{font-size:.82rem;color:#4b4337}.event-description{font-size:.8rem;color:var(--muted)}.event-actions{margin-left:auto}.event-shares{font-size:.8rem;color:#4b4337}.event-sharing{display:flex;flex-direction:column;gap:.4rem;padding:.7rem;border:1px dashed var(--line-strong);border-radius:10px;background:#faf7ef}.event-sharing .form-field-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.participant-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem}.participant-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .25rem .2rem .55rem;border:1px solid #c6dccd;border-radius:999px;background:var(--accent-soft);font-size:.82rem}.event-picture-list{list-style:none;margin:.25rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem}.event-picture-link{display:block;border:1px solid var(--line-strong);border-radius:8px;overflow:hidden;background:#f6f2e8;transition:border-color .12s ease}.event-picture-link:hover,.event-picture-link:focus-visible{border-color:var(--accent)}.event-picture-thumb{display:block;width:4rem;height:4rem;object-fit:cover}.event-picture-editor .muted,.event-picture-editor .error{text-transform:none;letter-spacing:normal}.event-picture-grid{list-style:none;margin:0 0 .5rem;padding:0;display:flex;flex-wrap:wrap;gap:.6rem}.event-picture-tile{display:flex;flex-direction:column;align-items:stretch;gap:.25rem;width:5.5rem}.event-picture-frame{display:block;border:1px solid var(--line-strong);border-radius:8px;overflow:hidden;background:#f6f2e8;transition:border-color .12s ease}.event-picture-frame:hover,.event-picture-frame:focus-visible{border-color:var(--accent)}.event-picture-frame img{display:block;width:100%;height:5.5rem;object-fit:cover}.event-picture-tile .btn{font-size:.7rem;padding:.22rem .3rem}.picture-list{list-style:none;margin:.15rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.45rem}.picture-link{position:relative;display:block;border:1px solid var(--line-strong);border-radius:8px;overflow:hidden;background:#f6f2e8;transition:border-color .12s ease}.picture-link:hover,.picture-link:focus-visible{border-color:var(--accent)}.picture-link.is-default{border-color:var(--accent)}.picture-thumb{display:block;width:4rem;height:4rem;object-fit:cover}.picture-badge{position:absolute;inset:auto 0 0 0;padding:.08rem .2rem;background:var(--accent);color:#fff;font-size:.55rem;letter-spacing:.04em;text-transform:uppercase;text-align:center}.picture-gallery-editor .muted,.picture-gallery-editor .error{text-transform:none;letter-spacing:normal}.picture-grid{list-style:none;margin:0 0 .5rem;padding:0;display:flex;flex-wrap:wrap;gap:.6rem}.picture-tile{display:flex;flex-direction:column;align-items:stretch;gap:.25rem;width:7rem}.picture-frame{display:block;border:1px solid var(--line-strong);border-radius:8px;overflow:hidden;background:#f6f2e8;transition:border-color .12s ease}.picture-frame:hover,.picture-frame:focus-visible{border-color:var(--accent)}.picture-frame img{display:block;width:100%;height:6.5rem;object-fit:cover}.picture-default{padding:.12rem .25rem;border-radius:6px;background:#e4efe7;color:var(--accent);font-size:.62rem;font-weight:600;letter-spacing:.05em;text-align:center;text-transform:uppercase}.picture-tile .btn{font-size:.68rem;padding:.22rem .3rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:flex-start;justify-content:center;padding:2.2rem 1rem;overflow-y:auto;background:#241f1861;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{width:min(560px,100%);background:var(--panel);border:1px solid var(--line-strong);border-radius:14px;box-shadow:0 24px 60px #241f1847}.modal--wide{width:min(700px,100%)}.modal:focus{outline:none}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border-bottom:1px solid var(--line)}.modal-header h2{font-size:1.12rem}.modal-close{padding:.1rem .3rem;border:none;background:transparent;color:var(--muted);font-size:1.35rem;line-height:1}.modal-close:hover{color:var(--danger)}.modal-body{padding:1rem}.dialog-form{display:flex;flex-direction:column;gap:.85rem}.confirm-message{font-size:.9rem;line-height:1.5}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem .8rem}.form-grid--nested{padding:.6rem;border:1px dashed var(--line-strong);border-radius:8px;background:#faf7ef}.form-field{display:flex;flex-direction:column;gap:.18rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.form-field--full{grid-column:1 / -1}.form-field input,.form-field select,.form-field textarea{width:100%;padding:.42rem .55rem;border:1px solid var(--line-strong);border-radius:8px;background:#fffefb;color:var(--ink);font-size:.9rem;text-transform:none;letter-spacing:normal}.form-field textarea{min-height:4.5rem;resize:vertical}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:2px solid var(--accent);outline-offset:1px}.form-field em{color:var(--danger);font-style:normal}.form-field.has-error input,.form-field.has-error select,.form-field.has-error textarea{border-color:#d9a39b;background:#fffbfa}.field-error{color:var(--danger);font-size:.7rem;text-transform:none;letter-spacing:normal}.dialog-actions{display:flex;justify-content:flex-end;gap:.5rem;border-top:1px solid var(--line);padding-top:.8rem}.user-create-form{margin-top:.75rem;padding-bottom:.9rem;border-bottom:1px solid var(--line)}.user-list-title{margin-top:.9rem;font-size:.95rem}.user-list{list-style:none;margin:.45rem 0 0;padding:0;display:flex;flex-direction:column;gap:.4rem}.user-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.45rem .5rem;border:1px solid var(--line);border-radius:10px;background:#fffefb}.user-row-main{flex:1 1 160px;min-width:0;display:flex;flex-direction:column}.user-name{font-size:.85rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-enabled{display:inline-flex;align-items:center;gap:.25rem;color:var(--muted);font-size:.72rem}.picture-editor{display:flex;align-items:flex-start;gap:.75rem;text-transform:none;letter-spacing:normal}.picture-preview{flex:none;width:6rem;height:6rem;object-fit:cover;border:1px solid var(--line-strong);border-radius:10px;background:#f6f2e8}.picture-preview--empty{display:flex;align-items:center;justify-content:center;padding:.4rem;color:var(--muted);font-size:.7rem;text-align:center}.picture-controls{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem;min-width:0}.picture-controls input[type=file]{max-width:100%;padding:.2rem 0;font-size:.78rem;color:var(--muted)}.person-picker{display:flex;flex-direction:column;gap:.35rem}.picker-selected{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.35rem .5rem;border:1px solid #c6dccd;border-radius:8px;background:var(--accent-soft);font-size:.85rem}.picker-list{list-style:none;margin:0;padding:.2rem;display:flex;flex-direction:column;gap:.1rem;max-height:11rem;overflow-y:auto;border:1px solid var(--line);border-radius:8px}.picker-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.32rem .45rem;border:1px solid transparent;border-radius:6px;background:transparent;font-size:.84rem;text-align:left}.picker-row:hover{background:#f6f2e8}.picker-row.is-selected{background:var(--accent-soft);border-color:#c6dccd}.picker-empty{padding:.5rem;font-size:.8rem}@media (max-width: 620px){.form-grid{grid-template-columns:minmax(0,1fr)}.modal-backdrop{padding:1rem .6rem}}@media (max-width: 760px){.app-header{flex-direction:column;align-items:stretch;gap:.6rem;padding-bottom:.75rem}.app-header p{display:none}.app-header h1{font-size:1.15rem}.header-actions{justify-content:flex-start}.mobile-tabs{position:sticky;top:0;z-index:30;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.3rem;margin:0 0 .75rem;padding:.35rem;border:1px solid var(--line-strong);border-radius:12px;background:#fffdf8f2;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:var(--shadow)}.mobile-tab{min-height:44px;padding:.45rem .5rem;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--muted);font-size:.9rem;font-weight:550}.mobile-tab[aria-selected=true]{background:var(--accent);border-color:var(--accent);color:#fff}.mobile-tab:disabled{opacity:.4}.layout[data-mobile-panel=people] .tree-panel,.layout[data-mobile-panel=people] .details-panel,.layout[data-mobile-panel=people] .empty-state,.layout[data-mobile-panel=tree] .search-panel,.layout[data-mobile-panel=tree] .details-panel,.layout[data-mobile-panel=details] .search-panel,.layout[data-mobile-panel=details] .tree-panel,.layout[data-mobile-panel=details] .empty-state{display:none}.search-panel,.person-list{overflow:visible}.person-list,.tree-canvas,.tree-graph-canvas{max-height:none}.field input,.form-field input,.form-field select,.form-field textarea,.depth-control input,select.inline-select,.graph-toolbar select{font-size:1rem}.btn,.btn--small{min-height:42px;padding:.5rem .75rem;font-size:.85rem}.btn--small{font-size:.8rem}.icon-button{width:2.5rem;height:2.5rem;border-color:var(--line);font-size:1.15rem}.toggle{width:2.25rem;height:2.25rem;font-size:.85rem}.toggle--empty{border-color:transparent}select.inline-select{height:2.5rem;padding:0 .45rem}.pager button{width:2.75rem;height:2.75rem;font-size:1.1rem}.view-switch button,.tree-controls>button,.graph-zoom button{min-height:42px;padding:.5rem .7rem;font-size:.85rem}.graph-toolbar select{min-height:42px;padding:.4rem .5rem}.depth-control input{width:4.5rem;padding:.4rem .5rem}.api-link{display:inline-flex;align-items:center;min-height:42px;padding:.4rem .8rem;font-size:.85rem}.modal-close{width:2.5rem;height:2.5rem}.link-button{padding:.3rem 0}.node-card{padding:.45rem .6rem .45rem .45rem}.node-name{padding:.2rem 0}}
