:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#f5f1e8;--foreground:#14211c;--muted:#65746b;--soft:#ede6d8;--panel:#fffdf8;--panel-strong:#fff;--line:#ded5c5;--line-strong:#c8bda8;--accent:#235f48;--accent-dark:#183f31;--accent-soft:#e3eee6;--warm:#b36a2e;--berry:#8a3d52;--blue:#2d5fa8;--blue-soft:#e8f0fd;--shadow:0 18px 50px #1f2b241f;--shadow-soft:0 10px 28px #1f2b2414;--radius-panel:14px;--radius-input:10px}*{box-sizing:border-box;margin:0;padding:0}html,body{max-width:100vw;min-height:100%;overflow-x:hidden}body{background:linear-gradient(135deg, #235f4824, transparent 28rem), linear-gradient(215deg, #b36a2e1f, transparent 34rem), linear-gradient(180deg, var(--background), #eef3ed);color:var(--foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{max-width:1240px;margin:0 auto;padding:30px 22px 44px}.topbar{justify-content:space-between;align-items:end;gap:22px;margin-bottom:28px;display:flex}.brand-block{max-width:720px}.eyebrow{color:var(--berry);letter-spacing:.06em;text-transform:uppercase;margin-bottom:7px;font-size:.74rem;font-weight:850}h1{letter-spacing:-.02em;font-size:clamp(2.7rem,7vw,5.5rem);line-height:.94}h2{letter-spacing:-.01em;font-size:1.22rem;line-height:1.2}h3{letter-spacing:-.01em}p{color:var(--muted);line-height:1.5}.lede{color:#41524a;max-width:42rem;margin-top:12px;font-size:1.02rem}.topbar-tools{place-items:end;gap:12px;display:grid}.tree-picker{min-width:245px}.tree-picker select{background-color:#fffdf8db}.stat-strip{border-radius:var(--radius-panel);box-shadow:var(--shadow-soft);background:#fffdf8b8;border:1px solid #ded5c5eb;grid-template-columns:.75fr 1.25fr;gap:1px;min-width:245px;display:grid;overflow:hidden}.stat-strip div{background:#ffffff8f;gap:2px;min-width:0;padding:12px 14px;display:grid}.stat-strip strong{color:var(--foreground);text-overflow:ellipsis;white-space:nowrap;font-size:1rem;overflow:hidden}.stat-strip span{color:var(--muted);font-size:.76rem;font-weight:760}.setup-grid,.workbench{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;display:grid}.setup-grid>:only-child{grid-column:1/-1;justify-self:center;width:100%;max-width:520px}.workbench{grid-template-columns:minmax(330px,.85fr) minmax(430px,1.15fr);align-items:start}.people-panel{grid-column:1/-1}.panel{border-radius:var(--radius-panel);box-shadow:var(--shadow);background:#fffdf8eb;border:1px solid #ded5c5f2;min-width:0;padding:22px}.hero-panel{background:linear-gradient(180deg, #ffffffbd, #fffdf8f0), var(--panel);border-color:#235f4847}.form-stack,.search-panel,.people-panel{gap:16px;display:grid}.panel-title{gap:4px;display:grid}.people-heading{justify-content:space-between;align-items:end;display:flex}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}label span,.tree-picker span{color:var(--muted);margin-bottom:6px;font-size:.8rem;font-weight:780;display:block}input,select,textarea{background:var(--panel-strong);border-radius:var(--radius-input);color:var(--foreground);border:1px solid #cfc5b3;width:100%;min-height:46px;padding:11px 12px;transition:border-color .15s,box-shadow .15s,background .15s}textarea{resize:vertical;line-height:1.45}input::placeholder,textarea::placeholder{color:#9a9387}input:focus,select:focus,textarea:focus{border-color:var(--accent);background:#fff;outline:none;box-shadow:0 0 0 3px #235f4829}button[type=submit]{background:var(--accent);border:1px solid var(--accent-dark);border-radius:var(--radius-input);color:#fff;min-height:46px;padding:10px 14px;font-weight:850;transition:background .15s,transform .15s,box-shadow .15s;box-shadow:0 8px 18px #235f482e}button[type=submit]:hover{background:var(--accent-dark);transform:translateY(-1px);box-shadow:0 10px 22px #235f4838}.secondary-button,.person-actions button{border:1px solid var(--line);color:var(--accent-dark);background:#fff;border-radius:8px;min-height:38px;padding:8px 10px;font-weight:820;transition:border-color .15s,background .15s,transform .15s}.secondary-button:hover,.person-actions button:hover{background:var(--accent-soft);border-color:#235f4859;transform:translateY(-1px)}.status{background:var(--accent-soft);border-radius:var(--radius-input);color:var(--accent-dark);border:1px solid #235f4833;padding:10px 14px;font-size:.9rem;font-weight:760}.search-panel input{min-height:52px;padding:13px 16px;font-size:1.06rem}.results{gap:12px;display:grid}@keyframes searching-pulse{0%,to{opacity:1}50%{opacity:.45}}.empty{border:1px dashed var(--line-strong);border-radius:var(--radius-input);color:var(--muted);text-align:center;background:#ffffffb3;padding:20px 16px;font-size:.9rem}.empty.is-searching{border-style:solid;animation:1.4s ease-in-out infinite searching-pulse}.result-card{border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--radius-input);background:#fff;padding:16px 18px;box-shadow:0 6px 18px #1f2b2412}.result-title{justify-content:space-between;align-items:start;gap:12px;display:flex}.result-title h3{font-size:1.05rem}.result-meta{color:var(--muted);text-align:right;font-size:.84rem;line-height:1.4}.result-years{color:var(--warm);margin-top:2px;font-size:.8rem;font-weight:760;display:block}.relationship{background:var(--accent-soft);color:var(--accent-dark);border-radius:6px;margin-top:12px;padding:5px 10px;font-size:.98rem;font-weight:880;display:inline-block}ol{color:var(--muted);border-left:2px solid #cfe0d2;gap:5px;margin:12px 0 0 4px;padding-left:20px;font-size:.88rem;display:grid}li{line-height:1.4}li::marker{color:var(--accent);font-size:.78rem;font-weight:800}.notes{color:#4f5a52;background:#f8f4ed;border-radius:8px;margin-top:12px;padding:10px 12px;font-size:.88rem;line-height:1.5}.people-filter{width:auto;min-width:200px;min-height:38px;padding:8px 12px;font-size:.88rem}.people-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-height:390px;padding-right:4px;display:grid;overflow-y:auto}.people-list::-webkit-scrollbar{width:5px}.people-list::-webkit-scrollbar-track{background:0 0}.people-list::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:99px}.people-list::-webkit-scrollbar-thumb:hover{background:var(--muted)}.person-card{border:1px solid var(--line);border-radius:var(--radius-input);background:#fff;gap:12px;padding:14px;transition:border-color .15s,box-shadow .15s,transform .15s;display:grid}.person-card:hover{box-shadow:var(--shadow-soft);border-color:#235f484d;transform:translateY(-2px)}.person-card-main{grid-template-columns:44px minmax(0,1fr);align-items:start;gap:11px;display:grid}.avatar{aspect-ratio:1;background:var(--accent-soft);color:var(--accent-dark);border:1.5px solid #235f4838;border-radius:999px;justify-content:center;align-items:center;font-size:.78rem;font-weight:880;display:flex;overflow:hidden}.avatar-female{color:var(--berry);background:#fce8ef;border-color:#8a3d5247}.avatar-male{background:var(--blue-soft);color:var(--blue);border-color:#2d5fa83d}.avatar-warm{color:var(--warm);background:#fdf0e4;border-color:#b36a2e3d}.person-card strong{overflow-wrap:anywhere;font-size:.96rem;display:block}.person-card .person-nickname{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:.84rem;display:block;overflow:hidden}.person-card .person-years{color:var(--warm);margin-top:3px;font-size:.8rem;font-weight:760;display:block}.person-card .person-gender{color:var(--muted);margin-top:2px;font-size:.78rem;display:block}.me-badge{background:var(--accent-soft);color:var(--accent-dark);letter-spacing:.04em;text-transform:uppercase;vertical-align:middle;border:1px solid #235f4840;border-radius:20px;margin-left:6px;padding:1px 7px;font-size:.68rem;font-weight:900;display:inline-block}.person-actions{gap:8px;display:flex}.edit-form{border:1px solid var(--line);border-radius:var(--radius-input);background:#fff;gap:16px;padding:18px;display:grid;box-shadow:inset 0 0 0 1px #235f480f}.edit-heading{justify-content:space-between;align-items:start;gap:12px;display:flex}.edit-heading h3{margin-bottom:4px;font-size:1rem}@media (max-width:980px){.workbench{grid-template-columns:1fr}}@media (max-width:760px){.app-shell{padding:22px 14px 34px}.topbar{flex-direction:column;align-items:stretch}.topbar-tools{justify-items:stretch}.setup-grid,.form-grid,.people-list,.stat-strip{grid-template-columns:1fr}.people-filter{width:100%;min-width:0}.people-heading{flex-direction:column;align-items:stretch;gap:10px}.tree-picker{min-width:0}.panel{padding:16px}.result-title,.edit-heading{flex-direction:column;align-items:stretch}.result-meta{text-align:left}}
