:root{color:#28231b;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#f4efe4;font-family:Inter,Pretendard,Noto Sans KR,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%}#root{min-width:0}body{background:radial-gradient(circle at 15% 10%,#d6e1c9cc,#0000 32rem),radial-gradient(circle at 85% 90%,#efcdb7a6,#0000 30rem),#f4efe4;min-width:320px;min-height:100vh;margin:0}.app-shell{grid-template-columns:minmax(0,1fr);place-items:center;min-width:0;min-height:100vh;padding:1.5rem;display:grid}.auth-card{background:#fffdf8f2;border:1px solid #d8d2c6;border-radius:1.5rem;width:100%;min-width:0;max-width:34rem;padding:clamp(1.5rem,5vw,3rem);box-shadow:0 1.5rem 4rem #3f34231f}.eyebrow{color:#735d32;letter-spacing:.14em;margin:0 0 1rem;font-size:.78rem;font-weight:700}h1{color:#28231b;letter-spacing:-.04em;word-break:keep-all;margin:0 0 1rem;font-size:clamp(2rem,7vw,3.4rem);line-height:1.08}h2{color:#28231b;word-break:keep-all;margin:0;font-size:1.5rem}.summary{color:#625b50;margin:.75rem 0 1.5rem;line-height:1.7}form{gap:1rem;min-width:0;margin-top:1.5rem;display:grid}.field{color:#4f473c;gap:.4rem;min-width:0;font-weight:650;display:grid}.field input,.field select{color:#28231b;width:100%;min-width:0;max-width:100%;font:inherit;background:#fff;border:1px solid #bdb4a5;border-radius:.65rem;padding:.8rem .9rem}.field input:focus{border-color:#47714c;outline:3px solid #47714c40}.check{color:#544c40;align-items:flex-start;gap:.65rem;line-height:1.5;display:flex}.check input{width:1.15rem;height:1.15rem;margin-top:.15rem}.button{color:#fff;min-height:3rem;font:inherit;cursor:pointer;background:#315d3a;border:0;border-radius:.7rem;padding:.75rem 1rem;font-weight:700}.button.secondary{background:#655744}.button:disabled{opacity:.6;cursor:wait}.auth-nav{flex-wrap:wrap;gap:.5rem 1rem;margin-top:1.5rem;display:flex}.auth-nav button{color:#315d3a;font:inherit;cursor:pointer;background:0 0;border:0;padding:.25rem 0;text-decoration:underline}.notice,.status{border-radius:.7rem;margin:1rem 0;padding:.8rem 1rem;line-height:1.5}.notice.success{color:#185c32;background:#dff1e3}.notice.error{color:#8b2d1e;background:#fbe3df}.group-panel{background:#fff;border:1px solid #ded7c9;border-radius:1rem;min-width:0;margin:1.5rem 0;padding:1.25rem}.family-tree-panel{background:#faf8f2;border:1px solid #ded7c9;border-radius:.85rem;min-width:0;margin:1.25rem 0 1.75rem;padding:1rem}.family-tree-panel h3{color:#28231b;margin:0;font-size:1.2rem}.family-tree-scroll{width:100%;min-width:0;max-width:100%;padding-bottom:.5rem;overflow-x:auto}.family-tree{min-width:100%;display:block}.tree-edge{fill:none;stroke:#796b57;stroke-width:3px}.spouse-edge{stroke:#8b4f65;stroke-dasharray:8 5}.tree-node rect{fill:#fff;stroke:#796b57;stroke-width:2px}.tree-node text{fill:#28231b;font-size:1rem;font-weight:700}.tree-node.self rect{fill:#dff1e3;stroke:#315d3a;stroke-width:4px}.tree-node .tree-self-label{fill:#185c32;font-size:.75rem;font-weight:700}.family-tree-empty{color:#625b50;text-align:center;margin:0;padding:1rem}.member-list{gap:.65rem;margin:0 0 1.5rem;padding:0;list-style:none;display:grid}.member-list li{color:#383127;background:#f4f0e7;border-radius:.7rem;justify-content:space-between;align-items:center;gap:.75rem;min-width:0;padding:.8rem 1rem;display:flex}.member-list li>span:first-child{overflow-wrap:anywhere;min-width:0}.self-badge{color:#185c32;background:#dff1e3;border-radius:999px;padding:.2rem .55rem;font-size:.8rem;font-weight:700}.member-editor{gap:.65rem;width:100%;min-width:0;display:grid}.member-editor form{grid-template-columns:minmax(0,1fr) auto;align-items:end;min-width:0;margin:0}.member-editor .field span{font-size:.85rem}.button.compact{min-height:2.6rem;padding:.55rem .8rem}.button.danger{background:#8b2d1e;justify-self:end}.account-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;min-width:0;display:flex}.account-delete-link{color:#8b2d1e;font:inherit;cursor:pointer;background:0 0;border:0;text-decoration:underline}.account-delete-link:disabled{opacity:.6;cursor:wait}.account-delete-panel{background:#fff5f3;border:2px solid #c98b80;border-radius:1rem;margin-top:1.5rem;padding:1.25rem}.account-delete-warning{color:#7a281c;font-weight:700;line-height:1.6}.account-delete-buttons{flex-wrap:wrap;gap:.75rem;min-width:0;display:flex}.member-add-form{border-top:1px solid #ded7c9;padding-top:1rem}.relationship-panel{border-top:1px solid #ded7c9;margin-top:1.5rem;padding-top:1.5rem}.relationship-list{gap:.65rem;padding:0;list-style:none;display:grid}.relationship-list li{background:#f4f0e7;border-radius:.7rem;justify-content:space-between;align-items:center;gap:1rem;min-width:0;padding:.8rem 1rem;display:flex}.relationship-list li>span{overflow-wrap:anywhere;min-width:0}.relationship-form{grid-template-columns:repeat(2,minmax(0,1fr))}.relationship-form .field:first-child,.relationship-form .button{grid-column:1/-1}@media (width<=30rem){.app-shell{padding:.75rem}.auth-card{border-radius:1rem;padding:1.25rem}.member-editor form,.relationship-form{grid-template-columns:minmax(0,1fr)}.member-editor form .button,.relationship-form .field,.relationship-form .button{grid-column:1;width:100%}.relationship-list li{flex-direction:column;align-items:stretch}.relationship-list .button{width:100%}.account-delete-buttons .button{flex:8rem}}
