/* Shared iOS-inspired tokens. Native system fonts on Apple devices; graceful fallbacks. */
:root{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','Noto Sans Arabic',sans-serif;--blue:#007aff;--muted:#72727a;--border:#e5e5ea;--tint:#edf5ff;--surface:#fff;--grouped:#f2f2f7;--radius:14px;color:#1c1c1e;background:var(--grouped);-webkit-font-smoothing:antialiased}
body{background:var(--grouped)}button,input,select,textarea{font-family:inherit}button{border-radius:11px;min-height:38px;font-weight:500;transition:background .16s,transform .16s}button:active:not(:disabled){transform:scale(.98)}button:focus-visible,summary:focus-visible{outline:3px solid #80bdff;outline-offset:3px}button.primary,.primary{background:var(--blue);border-color:var(--blue)}.primary:hover{background:#0068df}.soft{color:var(--blue);background:#edf5ff}.ghost{color:var(--blue)}.danger{color:#d93434}h1{font-weight:700;letter-spacing:-.7px}h2{font-weight:650;letter-spacing:-.4px}.muted,.subtitle{color:var(--muted)}
.topbar{background:#ffffffec;backdrop-filter:blur(20px);padding:18px 24px;border-color:#dedee580}.brand{letter-spacing:-.7px}.top-actions{gap:7px}.mode{background:#f2f2f7;border:0;border-radius:10px;padding:10px 12px;color:#48484a}.toolbar{padding:12px 22px;background:#ffffffd9;backdrop-filter:blur(20px);gap:12px}.search input{border:0;background:#efeff4;border-radius:11px;font-size:13px;padding-top:11px;padding-bottom:11px;color:#1c1c1e}.search input::placeholder{color:#808087}.search svg{top:11px}.search-results{border:0;border-radius:14px;box-shadow:0 12px 35px #00000014;padding:6px}.search-results button{border-radius:8px}.view-switch{background:#e9e9ef;padding:3px;border-radius:10px}.view-switch button{border-radius:8px;min-height:30px;color:#63636c}.view-switch button.active{color:#1c1c1e;box-shadow:0 2px 5px #00000012;background:#fff}.canvas{background-color:#f5f5f9;background-image:radial-gradient(#d9d9e2 .65px,transparent .65px);background-size:24px 24px}.tree-label{color:#85858e;font-weight:500}.connections path{stroke:#c7c7d3;stroke-width:1.5}.person{border-radius:14px;border-color:#e2e2e9;box-shadow:0 2px 5px #00000003}.person strong{font-size:12px;color:#29292e;font-weight:600}.person small{color:#81818b}.person.selected{border-color:var(--blue);box-shadow:0 0 0 3px #007aff0b}.person:hover{box-shadow:0 4px 12px #00000008}.couple-frame{border-radius:20px;background:#ffffff5c;border-color:#dddde7}.selected-couple{border-color:#a7cfff;background:#eff6ff70}.avatar .outline-face{width:83%;height:83%;stroke-width:1.9}.unified-add button{border-color:#b5d7ff;color:var(--blue);box-shadow:0 2px 8px #007aff0b}.zoom-tools{border:0;border-radius:13px;background:#fffffff0;box-shadow:0 3px 16px #00000009;backdrop-filter:blur(20px)}.zoom-tools button{color:var(--blue);border-radius:9px}.return-button{border:0;color:var(--blue);border-radius:12px;background:#fffffff0}.branch-switch{border:0;border-radius:12px;background:#fffffff0;box-shadow:0 3px 16px #00000009}.branch-switch select{color:#3a3a45}.branch-switch label{color:#7a7a85}.inspector{background:#f8f8fc;padding:18px;border-color:#e1e1e8}.panel-top{color:#81818b;font-size:10px}.profile{padding:18px 5px 22px}.profile .avatar{margin-bottom:12px}.profile h2{font-size:21px;color:#1c1c1e}.pill{background:#eaeaf1;border-radius:7px;color:#777780}.profile-actions button{min-height:38px;border-radius:10px}.section{margin-bottom:12px;border:0;background:#fff;border-radius:var(--radius);padding:16px}.section-head{margin-bottom:9px}.section h3{color:#3a3a40}.relative{border-radius:8px;padding:9px 0}.relative:hover{background:#f5f5fa}.union-section{border-color:#ededf2}.union-actions button{color:var(--blue)}.detail strong{color:#42424a}.detail small{color:#8a8a93}.invite-card{background:#eaf3ff;border:0;border-radius:var(--radius);color:#6b829c}.invite-card button{border:0;color:var(--blue)}.invite-card strong{color:#376ba5}.page{background:var(--grouped)}.list-person,.review-card{border:0;border-radius:var(--radius)}.list-person{box-shadow:0 1px 3px #00000004}.review-card{padding:20px}.badge{border-radius:7px}.intro-banner{background:#eaf3ff;color:#49729e}.empty-start button,.start-card{border-radius:20px}
dialog{border:0;border-radius:24px;background:#f7f7fb;box-shadow:0 24px 90px #00000030;max-width:580px}dialog::backdrop{background:#15152660;backdrop-filter:blur(7px)}.modal-head{padding:19px 22px 15px;border-color:#e5e5ec;background:#ffffffc9;position:sticky;top:0;z-index:8;backdrop-filter:blur(16px)}.modal-head h2{font-size:19px}.modal-head .icon{border-radius:50%;background:#ededf3;color:#80808a;width:30px;min-height:30px;height:30px;padding:7px}.modal-body{padding:21px 22px}.modal-body>p{color:#7b7b85;line-height:1.6}.form-grid{gap:16px 12px}.field{color:#62626e;gap:7px;font-size:12px}.field>label{font-weight:500}.field input,.field textarea,.field select,.link-input{background:#fff;border:1px solid #e2e2e9;border-radius:11px;color:#24242b;padding:11px 12px;min-height:42px;font-size:14px}.field input:focus,.field textarea:focus,.field select:focus{border-color:#91c3ff;outline:3px solid #007aff0b;outline-offset:0}.field input::placeholder{color:#a0a0a9;font-size:12px}.field input[type=file]{font-size:11px}.field input[type=file]::file-selector-button{border:0;border-radius:7px;background:#edf5ff;color:var(--blue);padding:5px 8px;margin-inline-end:8px}.optional-details{border-top:1px solid #e2e2e9;padding-top:14px;margin-top:18px}.optional-details>summary{color:#656570;font-size:12px;font-weight:500;cursor:pointer;padding:4px 0 14px}.relation-summary{background:#eaf3ff;border:0;border-radius:10px;color:#687e99}.gender-options{border:0;padding:0;margin:20px 0 0}.gender-options legend{margin-bottom:9px;color:#72727e}.gender-choice{border-radius:11px;background:#fff;border-color:#e3e3eb;min-height:44px}.gender-choice:has(input:checked){box-shadow:0 1px 5px #00000004}.check{color:#72727e}.check input[type=checkbox]{appearance:none;position:relative;width:36px;height:22px;flex-shrink:0;border-radius:20px;background:#d7d7de;cursor:pointer;transition:background .18s}.check input[type=checkbox]::after{content:'';position:absolute;width:18px;height:18px;border-radius:50%;left:2px;top:2px;background:#fff;box-shadow:0 1px 3px #00000025;transition:transform .18s}.check input[type=checkbox]:checked{background:#34c759}.check input[type=checkbox]:checked::after{transform:translateX(14px)}.modal-footer{gap:9px;padding-top:21px}.modal-footer button{min-height:42px;border:0;padding:10px 18px}.modal-footer button:not(.primary){background:#eaeaf2;color:var(--blue)}.relation-menu{background:#fff;border-radius:16px;padding:4px 12px;gap:0}.relation-menu button{border-radius:0;padding:16px 0;border-bottom:1px solid #ededf2}.relation-menu button:last-child{border-bottom:0}.relation-menu button>svg:first-child{color:var(--blue)}.add-person-context{border-color:#e2e2e9}.share-person{background:#fff;border-radius:14px}.share-options{background:#e9e9f0;padding:3px;border-radius:11px;gap:3px}.share-options button{border:0;border-radius:8px}.share-row{border-color:#e1e1e9}#toast{background:#30303bed;backdrop-filter:blur(20px);border-radius:15px;padding:13px 20px;box-shadow:0 8px 28px #0000001a}
/* Calendar expands in-flow: never clipped or trapped behind the modal edge. */
.date-field{position:relative;align-self:start}.date-control>input{width:100%;padding-inline-end:46px;font-variant-numeric:tabular-nums}.ios-date-picker{margin:0;padding:0;border:0}.ios-date-picker>summary{position:absolute;top:26px;inset-inline-end:6px;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;list-style:none;color:var(--blue);background:#edf5ff;cursor:pointer}.ios-date-picker>summary::-webkit-details-marker{display:none}.ios-date-picker[open]>summary{background:var(--blue);color:white}.date-field:has(.ios-date-picker[open]){grid-column:1/-1}.date-hint{font-size:10px;color:#93939d}.calendar-surface{padding:15px;background:#fff;border:1px solid #e5e5ec;border-radius:17px;margin-top:2px;box-shadow:0 5px 18px #22223b06;max-width:380px;margin-inline:auto}.calendar-precision{display:flex;gap:3px;background:#eeeef3;border-radius:9px;padding:3px;margin-bottom:16px}.calendar-precision button{flex:1;border:0;background:transparent;min-height:29px;font-size:12px;padding:5px 9px;color:#72727e;border-radius:7px}.calendar-precision button[aria-pressed=true]{background:#fff;color:#24242c;box-shadow:0 1px 4px #00000012}.calendar-heading{display:flex;align-items:center;gap:5px;margin-bottom:16px}.calendar-heading .calendar-month{border:0;padding:6px 0;min-height:34px;font-size:15px;font-weight:600;width:auto;flex:1;background:transparent;max-width:45%;text-transform:capitalize}.calendar-heading .calendar-year{width:77px;border:0;background:#f2f2f7;min-height:33px;padding:5px 7px;font-size:15px;font-weight:550;border-radius:8px}.calendar-heading button{border:0;background:transparent;color:var(--blue);width:30px;min-height:34px;padding:4px;border-radius:8px}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.calendar-weekdays{margin-bottom:7px;text-align:center;font-size:10px;color:#9a9aa4}.calendar-days button{border:0;justify-self:center;width:36px;height:36px;min-height:36px;border-radius:50%;padding:0;font-size:14px;font-weight:400;background:transparent;color:#35353e}.calendar-days button:hover{background:#edf5ff}.calendar-days button[aria-pressed=true]{background:var(--blue);color:#fff;font-weight:600}.calendar-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #ededf3;margin-top:13px;padding-top:10px}.calendar-footer button{border:0;background:none;color:var(--blue);font-size:13px;min-height:34px;padding:6px 9px}.calendar-footer .calendar-done{font-weight:650;background:#edf5ff;border-radius:9px}.calendar-year-note{font-size:12px;line-height:1.6;color:#93939e;padding:12px 0 20px}.calendar-heading button:disabled{opacity:.3}
@media(max-width:760px){.topbar{padding:14px 16px}.toolbar{padding:10px 14px}.inspector{background:#f7f7fbf5;border-radius:24px 24px 0 0;backdrop-filter:blur(20px);padding-top:16px}.inspector:before{content:'';display:block;width:32px;height:4px;background:#c7c7d0;border-radius:4px;margin:-5px auto 12px}dialog{margin:auto 0 0;width:100%;max-width:none;max-height:93dvh;border-radius:24px 24px 0 0;padding-bottom:env(safe-area-inset-bottom)}.modal-head{padding:18px 20px 14px}.modal-body{padding:18px 20px 25px}.field input,.field textarea,.field select{font-size:16px}.calendar-heading .calendar-year{font-size:16px}.calendar-days button{width:38px;height:38px;min-height:38px}.canvas-footer{bottom:16px}.profile h2{font-size:20px}.form-grid{gap:15px 10px}}
@media(prefers-reduced-motion:reduce){button,.check input[type=checkbox],.check input[type=checkbox]::after{transition:none}button:active:not(:disabled){transform:none}}
