:root{--ink:#173f39;--ink-2:#23564e;--cream:#f7f3e9;--paper:#fffdfa;--gold:#dcae57;--gold-soft:#f1dfb9;--rose:#ead2c6;--line:#e7e1d4;--muted:#707b76;--danger:#a3453e;--shadow:0 18px 50px rgba(34,55,49,.1);font-family:Assistant,Arial,sans-serif;color:var(--ink);background:var(--cream);font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--cream)}button,input,select,textarea{font:inherit}button{cursor:pointer}.boot,.loading-card{min-height:100vh;display:grid;place-content:center;text-align:center;gap:12px}.spinner{display:inline-block;width:30px;height:30px;margin:auto;border:3px solid var(--gold-soft);border-top-color:var(--ink);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.brand{display:flex;align-items:center;gap:12px}.brand svg{width:48px;height:48px}.brand svg rect{fill:var(--ink)}.brand svg path{fill:none;stroke:var(--gold);stroke-width:4;stroke-linecap:round}.brand strong{display:block;font-family:Frank Ruhl Libre,serif;font-size:30px;line-height:.9}.brand span{display:block;margin-top:5px;font-size:11px;letter-spacing:.04em}.eyebrow{display:block;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#88734e}.auth-page{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr;background:var(--paper)}.auth-story{position:relative;min-height:100vh;padding:48px 7vw;display:flex;flex-direction:column;justify-content:space-between;color:#fff;overflow:hidden;background:radial-gradient(circle at 18% 12%,rgba(220,174,87,.22),transparent 25%),linear-gradient(145deg,#214f47,#102f2b)}.auth-story:before,.auth-story:after{content:"";position:absolute;border:1px solid rgba(220,174,87,.22);border-radius:50%}.auth-story:before{width:620px;height:620px;left:-240px;bottom:-270px}.auth-story:after{width:420px;height:420px;left:-140px;bottom:-170px}.auth-story .brand{position:relative;z-index:1}.auth-story .brand svg rect{fill:transparent;stroke:var(--gold);stroke-width:1}.auth-story .brand span{color:#d9e4df}.story-copy{position:relative;z-index:1;max-width:610px}.story-copy .eyebrow{color:var(--gold)}.story-copy h1{font:900 clamp(48px,7vw,92px)/.95 "Frank Ruhl Libre",serif;margin:20px 0}.story-copy h1 em{color:var(--gold);font-style:normal}.story-copy>p{max-width:520px;color:#dce7e3;font-size:19px;line-height:1.7}.story-quote{position:relative;z-index:1;border-top:1px solid rgba(255,255,255,.18);padding-top:26px;display:flex;gap:16px;color:#dce7e3}.story-quote span{font:50px/1 serif;color:var(--gold)}.story-quote p{margin:0;line-height:1.7}.auth-panel{padding:40px 8vw;display:flex;flex-direction:column;justify-content:center}.mobile-logo{display:none}.auth-card{width:100%;max-width:430px;margin:auto}.auth-card h2,.modal h2{font:700 42px/1.15 Frank Ruhl Libre,serif;margin:9px 0}.auth-card>p,.modal-heading p,.section-head p{color:var(--muted);line-height:1.6;margin:0 0 28px}.auth-card label,.form-grid label{display:flex;flex-direction:column;gap:7px;font-weight:600;font-size:14px;margin-bottom:16px}.auth-card input,.form-grid input,.form-grid select,.form-grid textarea,.guest-row input,.topbar select{border:1px solid var(--line);border-radius:12px;background:#fff;padding:13px 15px;color:var(--ink);outline:none;transition:.2s}.auth-card input:focus,.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.guest-row input:focus{border-color:var(--gold);box-shadow:0 0 0 3px #dcae5726}.button{border:0;border-radius:12px;padding:13px 18px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px}.button.primary{background:var(--ink);color:#fff;box-shadow:0 8px 18px #173f392b}.button.primary:hover{background:var(--ink-2)}.button.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}.button.cream{background:var(--cream);color:var(--ink)}.button.small{padding:10px 14px}.button:disabled{opacity:.55;cursor:wait}.auth-card>.button{width:100%;margin-top:4px}.auth-card small{display:block;text-align:center;color:var(--muted);margin-top:20px}.auth-footer{text-align:center;font-size:12px;color:var(--muted)}.notice{background:#eef5ef;border:1px solid #cddfce;color:#35643b;border-radius:10px;padding:11px;margin-bottom:18px}.app-shell{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:var(--paper);border-left:1px solid var(--line);padding:28px 22px;display:flex;flex-direction:column;z-index:20}.sidebar .brand{padding:0 8px 34px}.sidebar nav{display:grid;gap:7px}.nav-item,.logout{border:0;background:transparent;color:#52625e;border-radius:11px;padding:12px 14px;display:flex;align-items:center;gap:12px;text-align:right;font-weight:600}.nav-item span{font-size:20px;width:24px}.nav-item:hover,.nav-item.active{background:#edf3ef;color:var(--ink)}.nav-item.active{box-shadow:inset -3px 0 var(--gold)}.sidebar-foot{margin-top:auto}.privacy{display:flex;gap:10px;align-items:center;background:var(--cream);padding:12px;border-radius:12px;margin-bottom:10px}.privacy>span{display:grid;place-content:center;width:28px;height:28px;border-radius:50%;background:#dceadf;color:#377044}.privacy strong,.privacy small{display:block}.privacy strong{font-size:12px}.privacy small{color:var(--muted);font-size:10px}.logout{width:100%}.main{min-width:0}.topbar{height:105px;padding:22px clamp(24px,5vw,72px);background:#f7f3e9e0;backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(225,216,200,.8);position:sticky;top:0;z-index:10}.topbar h1{font:700 28px/1 Frank Ruhl Libre,serif;margin:5px 0 0}.avatar{display:grid;place-content:center;width:44px;height:44px;border-radius:50%;background:var(--ink);color:#fff;font-weight:700}.icon-button{display:none;border:0;background:transparent;font-size:24px}.content{padding:42px clamp(24px,5vw,72px) 70px;max-width:1500px;margin:auto}.section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:28px}.section-head h2{font:700 clamp(33px,4vw,52px)/1.1 "Frank Ruhl Libre",serif;margin:7px 0}.section-head p{margin:0}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:22px}.stat{min-height:170px;border-radius:18px;padding:24px;position:relative;overflow:hidden}.stat:after{content:"";position:absolute;width:120px;height:120px;border:1px solid currentColor;opacity:.12;border-radius:50%;left:-35px;bottom:-50px}.stat.green{background:var(--ink);color:#fff}.stat.sand{background:#e9d9b7}.stat.rose{background:var(--rose)}.stat span,.stat small{display:block}.stat span{font-size:13px;font-weight:600;opacity:.8}.stat strong{display:block;font:700 60px/1 Frank Ruhl Libre,serif;margin:14px 0}.stat small{opacity:.7}.home-grid{display:grid;grid-template-columns:1.5fr .8fr;gap:22px}.panel{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:25px;box-shadow:0 8px 30px #2237310a}.panel-title{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:17px}.panel h3,.family-note h3,.special-card h3,.branch-card h3{font:700 27px/1.25 Frank Ruhl Libre,serif;margin:6px 0}.text-button{border:0;background:transparent;color:var(--ink);font-weight:700}.timeline{display:grid}.event-row{display:grid;grid-template-columns:55px 1fr auto;align-items:center;gap:15px;padding:15px 0;border-bottom:1px solid var(--line)}.event-row:last-child{border-bottom:0}.date-chip{width:52px;height:58px;border-radius:12px;background:var(--cream);display:grid;place-content:center;text-align:center}.date-chip strong{font:700 22px/1 Frank Ruhl Libre,serif}.date-chip span{font-size:10px;color:var(--muted)}.event-row>div:nth-child(2) strong,.event-row>div:nth-child(2) small{display:block}.event-row>div:nth-child(2) small{color:var(--muted);margin-top:4px}.event-type,.channels span{font-size:11px;background:#edf3ef;padding:5px 8px;border-radius:999px}.family-note{background:var(--ink);color:#fff;position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-height:370px}.family-note:after{content:"";position:absolute;width:300px;height:300px;border:1px solid rgba(220,174,87,.22);border-radius:50%;left:-150px;bottom:-160px}.family-note .mark{font-size:28px;color:var(--gold)}.family-note .eyebrow{color:var(--gold);margin-top:30px}.family-note p{color:#c9d9d4;line-height:1.7}.family-note .button{margin-top:18px;position:relative;z-index:1}.toolbar{display:flex;margin-bottom:22px}.search{width:min(420px,100%);display:flex;align-items:center;gap:9px;border:1px solid var(--line);background:var(--paper);padding:0 14px;border-radius:12px}.search input{width:100%;border:0;outline:none;background:transparent;padding:13px}.people-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.person-card{border:1px solid var(--line);background:var(--paper);border-radius:15px;padding:17px;display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:13px;text-align:right;color:var(--ink);transition:.2s}.person-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--gold-soft)}.person-avatar{width:46px;height:46px;border-radius:50%;display:grid;place-content:center;background:#e7efe9;color:var(--ink);font-weight:700}.person-avatar.large{width:82px;height:82px;font-size:24px;margin-bottom:20px}.person-card strong,.person-card small{display:block}.person-card small{color:var(--muted);margin-top:3px}.person-card i{font-style:normal}.branch-grid,.special-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.branch-card,.special-card{background:var(--paper);border:1px solid var(--line);border-radius:17px;padding:24px;min-height:220px;position:relative}.branch-no{position:absolute;left:20px;top:18px;color:#b7afa1;font:700 25px Frank Ruhl Libre,serif}.branch-icon,.special-symbol{font-size:28px;color:var(--gold)}.branch-card p,.special-card p{color:var(--muted)}.branch-card small{color:#88734e}.special-card{min-height:265px}.special-top{display:flex;justify-content:space-between}.dots{border:0;background:transparent;color:var(--muted);letter-spacing:2px}.special-meta{display:grid;gap:7px;border-top:1px solid var(--line);padding-top:15px;margin-top:18px;font-size:13px}.channels{display:flex;gap:6px;margin-top:14px}.empty,.empty-mini{text-align:center;color:var(--muted)}.empty-mini{padding:35px}.empty-mini span,.special-empty>span{font-size:32px;color:var(--gold)}.special-empty{grid-column:1/-1;background:var(--paper);border:1px dashed #d8ccb7;border-radius:18px;padding:60px 20px}.special-empty .button{margin-top:12px}.loading-card{min-height:60vh}.toast{position:fixed;z-index:100;left:24px;bottom:24px;background:var(--ink);color:#fff;padding:13px 18px;border-radius:12px;box-shadow:var(--shadow);opacity:0;transform:translateY(20px);pointer-events:none;transition:.25s}.toast.show{opacity:1;transform:none}.toast.bad{background:var(--danger)}.modal-backdrop{position:fixed;z-index:50;inset:0;background:#0b201d94;backdrop-filter:blur(4px);display:grid;place-items:center;padding:20px;overflow:auto}.modal{position:relative;width:min(520px,100%);max-height:calc(100vh - 40px);overflow:auto;background:var(--paper);border-radius:20px;padding:32px;box-shadow:0 30px 90px #05191647}.modal-wide{width:min(980px,100%)}.modal-close{position:absolute;left:18px;top:14px;border:0;background:transparent;font-size:28px;color:var(--muted)}.person-detail{text-align:center}.person-detail .person-avatar{margin-left:auto;margin-right:auto}.person-detail dl{display:grid;grid-template-columns:1fr 1fr;text-align:right;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-top:25px}.person-detail dl div{background:#fff;padding:14px}.person-detail dt{font-size:11px;color:var(--muted)}.person-detail dd{margin:5px 0 0;font-weight:600}.modal-heading{padding-bottom:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.form-grid .span-2{grid-column:1/-1}.guests-head{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:20px;margin-top:10px}.guests-head h3{margin:0}.guests-head p{color:var(--muted);margin:4px 0;font-size:13px}.guest-row{display:grid;grid-template-columns:1fr 1.2fr 1fr auto auto 30px;gap:8px;align-items:center;margin:10px 0}.guest-row input{min-width:0}.check{font-size:12px;white-space:nowrap}.remove-guest{border:0;background:transparent;color:var(--danger);font-size:24px}.modal-actions{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:22px;margin-top:20px}.danger-link{border:0;background:transparent;color:var(--danger)}.consent-confirm{display:flex;align-items:flex-start;gap:9px;margin-top:16px;padding:13px;border-radius:10px;background:#f2f5ef;color:#456058;font-size:13px}.consent-confirm input{margin-top:3px}@media (max-width:1000px){.people-grid,.branch-grid,.special-grid{grid-template-columns:repeat(2,1fr)}.home-grid{grid-template-columns:1fr}.guest-row{grid-template-columns:1fr 1fr}.remove-guest{justify-self:end}.auth-page{grid-template-columns:1fr}.auth-story{display:none}.auth-panel{min-height:100vh}.mobile-logo{display:block;margin-bottom:50px}.auth-card{margin:0 auto}.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;right:0;transform:translate(105%);transition:.25s;box-shadow:var(--shadow)}.sidebar.open{transform:none}.icon-button{display:block}.topbar{justify-content:flex-start;gap:20px}.topbar .avatar,.topbar select{margin-right:auto}}@media (max-width:680px){.content{padding:28px 16px 55px}.topbar{height:90px;padding:18px 16px}.stats{grid-template-columns:1fr}.stat{min-height:130px}.stat strong{font-size:48px}.people-grid,.branch-grid,.special-grid{grid-template-columns:1fr}.section-head{align-items:flex-start;flex-direction:column}.event-row{grid-template-columns:52px 1fr}.event-type{display:none}.form-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:auto}.guest-row{grid-template-columns:1fr}.modal{padding:28px 20px}.person-detail dl{grid-template-columns:1fr}.auth-panel{padding:24px}.auth-card h2{font-size:35px}.mobile-logo{margin-bottom:35px}.guests-head{align-items:flex-start;gap:12px}.panel{padding:18px}}.brand img{width:54px;height:54px;object-fit:contain;border-radius:13px;background:#fff}.brand strong{font-size:23px}.brand span{font-size:10px}.auth-story .brand img{border:1px solid rgba(220,174,87,.6)}.family-tree{display:grid;gap:34px;overflow-x:auto;padding:20px 8px 45px}.tree-generation{position:relative;min-width:720px;text-align:center}.generation-label{position:relative;z-index:2;display:inline-flex;align-items:center;gap:9px;background:var(--cream);border:1px solid var(--gold-soft);border-radius:999px;padding:7px 14px;margin-bottom:20px}.generation-label>span{display:grid;place-content:center;width:26px;height:26px;border-radius:50%;background:var(--ink);color:#fff;font-size:11px}.generation-line{position:absolute;z-index:0;top:57px;right:8%;left:8%;height:1px;background:linear-gradient(90deg,transparent,var(--gold-soft) 15%,var(--gold-soft) 85%,transparent)}.generation-line:after{content:"";position:absolute;top:-12px;right:50%;width:1px;height:25px;background:var(--gold-soft)}.tree-people{position:relative;z-index:1;display:flex;justify-content:center;align-items:stretch;gap:13px;flex-wrap:wrap}.tree-person{width:220px;min-height:82px;box-shadow:0 8px 24px #2237310f}.tree-person:before{content:"";position:absolute;top:-21px;right:50%;width:1px;height:20px;background:var(--gold-soft)}.person-card{position:relative}.person-card small{color:#8b7040;font-weight:600}.branch-open{margin-top:22px;width:100%}.branch-detail-panel{background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:28px}.branch-hero{display:flex;align-items:center;gap:18px;margin:25px 0;padding:25px;background:linear-gradient(135deg,#edf3ef,#f8f3e7);border-radius:16px}.branch-hero .branch-icon{font-size:44px}.branch-hero h2{font:700 40px/1.1 Frank Ruhl Libre,serif;margin:5px 0}.branch-family-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:20px}.branch-family-grid>section{border:1px solid var(--line);border-radius:15px;padding:20px}.mini-person-list,.child-family-list{display:grid;gap:10px}.child-family-card{padding:12px;background:var(--cream);border-radius:13px}.child-family-card .person-card{width:100%}.person-facts{display:grid;grid-template-columns:110px 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:13px;overflow:hidden;margin:20px 0}.person-facts>div{background:#f8f5ec;padding:15px}.person-facts span,.person-facts strong{display:block}.person-facts span{font-size:11px;color:var(--muted)}.person-facts strong{margin-top:4px}.person-detail a{color:var(--ink)}.person-detail dl .span-2{grid-column:1/-1}.relationship-pills{display:flex;gap:6px;flex-wrap:wrap}.relationship-pills span,.role-badge{background:#edf3ef;border-radius:999px;padding:5px 9px;font-size:12px}.settings-card{max-width:900px}.date-choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:22px}.date-choice{position:relative;border:1px solid var(--line);border-radius:15px;padding:22px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:7px;cursor:pointer}.date-choice input{position:absolute;opacity:0}.date-choice.selected{border-color:var(--gold);box-shadow:0 0 0 3px #dcae5729;background:#fffcf5}.date-choice-icon{display:grid;place-content:center;width:54px;height:54px;border-radius:50%;background:var(--ink);color:#fff;font:700 18px Frank Ruhl Libre,serif}.date-choice small{color:var(--muted)}.settings-note{display:flex;gap:10px;align-items:flex-start;background:#eef4ef;border-radius:12px;padding:13px;margin-bottom:20px}.settings-note p{margin:0}.admin-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:20px}.access-rows{display:grid}.access-rows>div{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.access-rows p{margin:0}.access-rows strong,.access-rows small{display:block}.access-rows small{color:var(--muted);margin-top:3px}.date-chip.hebrew{background:#edf3ef}.date-chip.hebrew strong{font-size:14px}@media (max-width:800px){.branch-family-grid,.admin-layout,.date-choice-grid{grid-template-columns:1fr}.family-tree{margin:0 -16px}.tree-generation{min-width:620px}.tree-person{width:190px}.brand strong{font-size:20px}.brand span{display:none}}.topbar-actions{display:flex;align-items:center;gap:14px;margin-right:auto}.today-hebrew{display:grid;grid-template-columns:auto auto;column-gap:10px;align-items:center;text-align:right;padding:9px 13px;background:var(--paper);border:1px solid var(--line);border-radius:13px;box-shadow:0 6px 18px #2237310d}.today-hebrew small{grid-row:1/3;display:grid;place-content:center;width:38px;height:38px;border-radius:10px;background:var(--ink);color:#fff;font-weight:700}.today-hebrew strong,.today-hebrew span{display:block}.today-hebrew strong{font-size:14px}.today-hebrew span{font-size:10px;color:var(--muted)}.family-tree-canvas{position:relative;direction:rtl;overflow:auto;min-height:560px;border:1px solid var(--line);border-radius:20px;background-color:#fbfaf6;background-image:radial-gradient(#d7d2c7 1px,transparent 1px);background-size:22px 22px;box-shadow:inset 0 0 80px #173f3909}.tree-canvas-toolbar{position:sticky;z-index:8;top:14px;right:14px;width:max-content;display:flex;align-items:center;gap:10px;padding:9px 13px;border:1px solid var(--line);border-radius:12px;background:#fffdfaf0;backdrop-filter:blur(8px);box-shadow:0 8px 25px #22373114}.tree-canvas-toolbar span{font-weight:700}.tree-canvas-toolbar small{color:var(--muted)}.genealogy-forest{display:flex;align-items:flex-start;justify-content:center;gap:90px;width:max-content;min-width:100%;padding:65px 55px 95px}.genealogy-branch{position:relative;display:flex;flex-direction:column;align-items:center;min-width:max-content}.couple-node{position:relative;padding:0 20px}.couple-cards{position:relative;display:flex;direction:rtl;justify-content:center;gap:32px}.couple-cards:after{content:"";position:absolute;top:50%;right:calc(50% - 18px);width:36px;height:2px;background:var(--gold)}.couple-heart{position:absolute;z-index:2;top:50%;right:50%;display:grid;place-content:center;width:24px;height:24px;border-radius:50%;background:var(--paper);border:1px solid var(--gold);color:#9c7431;transform:translate(50%,-50%);font-size:14px}.descendant-line{width:2px;height:38px;background:var(--gold-soft)}.offspring-row{position:relative;display:flex;direction:rtl;align-items:flex-start;justify-content:center;gap:42px;padding-top:34px}.offspring-row:before{content:"";position:absolute;top:0;right:calc(var(--edge-inset, 8%) + 18px);left:calc(var(--edge-inset, 8%) + 18px);height:2px;background:var(--gold-soft)}.offspring-node{position:relative;display:flex;justify-content:center}.offspring-node:before{content:"";position:absolute;z-index:0;top:-34px;right:50%;width:2px;height:34px;background:var(--gold-soft)}.genealogy-branch .person-card{z-index:1;width:205px;min-height:78px;background:var(--paper);box-shadow:0 8px 24px #22373114}.genealogy-branch .genealogy-branch{padding:0}.genealogy-branch .genealogy-branch>.couple-node{padding:0 12px}.tree-search-results,.unconnected-people>div{display:grid;grid-template-columns:repeat(3,minmax(210px,1fr));gap:14px}.tree-search-results{padding:8px}.unconnected-people{margin:0 40px 45px;padding:22px;border:1px dashed #c8b98f;border-radius:16px;background:#fffdfae6}.unconnected-people h3{margin:0 0 15px;font:700 22px Frank Ruhl Libre,serif}.person-detail .person-facts.personal{grid-template-columns:1fr 1fr}.person-detail .person-facts.personal>div{min-height:82px}.person-detail .person-facts.personal strong{overflow-wrap:anywhere}.person-detail-actions{display:flex;justify-content:center;gap:10px;margin-top:20px}.date-chip.hebrew strong{font-size:18px}.date-chip.hebrew span{font-size:10px;max-width:48px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width:1000px){.today-hebrew{margin-right:auto}.genealogy-forest{justify-content:flex-start}.tree-search-results,.unconnected-people>div{grid-template-columns:repeat(2,minmax(190px,1fr))}}@media (max-width:680px){.topbar-actions{margin-right:auto}.today-hebrew span{display:none}.today-hebrew{padding:6px}.today-hebrew strong{font-size:12px}.today-hebrew small{width:32px;height:32px}.topbar select{max-width:120px}.family-tree-canvas{margin:0 -16px;border-radius:0}.tree-canvas-toolbar small{display:none}.genealogy-forest{padding:60px 28px 80px;gap:55px}.genealogy-branch .person-card{width:175px}.couple-cards{gap:26px}.offspring-row{gap:28px}.tree-search-results,.unconnected-people>div{grid-template-columns:1fr}.person-detail .person-facts.personal{grid-template-columns:1fr}.person-detail-actions{flex-direction:column}}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;margin:0 0 20px;background:#f2ede2;border-radius:999px}.auth-tabs button{border:0;background:transparent;color:#8b8171;border-radius:999px;padding:11px 14px;font-weight:700;transition:.2s}.auth-tabs button.active{background:var(--ink);color:#fff;box-shadow:0 5px 14px #173f392e}.auth-reset{display:block;margin:14px auto 0;border:0;background:transparent;color:var(--ink);font-weight:700}.auth-card input[readonly]{background:#f7f3e9;color:var(--muted)}
