/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial}::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.block{display:block}.contents{display:contents}.inline{display:inline}.table{display:table}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.lowercase{text-transform:lowercase}}:root{--ink:#21372f;--muted:#6d776e;--paper:#f6f1e7;--paper-strong:#fffdf8;--forest:#234b3c;--forest-deep:#16362c;--moss:#8fa183;--clay:#b9674f;--line:#21372f29;--shadow:0 18px 48px #1c2f271f;--font-sans:"Roboto", "Roboto Flex", "Inter", "Helvetica Neue", "Segoe UI", Arial, sans-serif}*{box-sizing:border-box}html,body{min-height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);margin:0;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}::selection{background:#b9674f33}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}.family-app{background:radial-gradient(circle at 12% 18%,#eea0842b,#0000 30%),radial-gradient(circle at 86% 68%,#71a98e29,#0000 32%),linear-gradient(145deg,#f7f2e9,#edf1e9);width:100vw;height:100vh;min-height:640px;position:relative;overflow:hidden}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.family-app:before{content:"";pointer-events:none;opacity:.22;background-image:radial-gradient(circle,#234b3c24 .8px,#0000 .9px);background-size:24px 24px;position:absolute;inset:0}.app-header{z-index:30;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffffceb;border:1px solid #ffffffb8;border-radius:24px;align-items:center;gap:16px;height:64px;padding:10px 12px 10px 16px;display:flex;position:absolute;top:16px;left:18px;right:18px;box-shadow:0 14px 42px #1c2f2714}.brand-block{align-items:center;gap:12px;min-width:270px;display:flex}.brand-seal{color:#fffaf2;width:40px;height:40px;font:750 17px/1 var(--font-sans);background:linear-gradient(145deg,#2f6654,#20493c);border-radius:14px 18px;flex:none;place-items:center;display:grid;box-shadow:inset 0 0 0 4px #ffffff1f}.brand-kicker,.section-kicker{color:var(--clay);letter-spacing:.05em;margin:0 0 2px;font-size:10px;font-weight:800}.brand-title{font:750 19px/1.1 var(--font-sans);letter-spacing:-.025em;white-space:nowrap;margin:0}.search-box{flex:360px;max-width:520px;position:relative}.search-box input{border:1px solid var(--line);background:#f4f0e7b3;border-radius:12px;outline:none;width:100%;height:40px;padding:0 42px 0 38px;transition:all .15s}.search-box input:focus{background:var(--paper-strong);border-color:#234b3c73;box-shadow:0 0 0 3px #234b3c14}.search-icon{z-index:1;width:18px;height:18px;color:var(--muted);pointer-events:none;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.search-icon:before{content:"";border:2px solid;border-radius:50%;width:10px;height:10px;position:absolute;top:1px;left:1px}.search-icon:after{content:"";transform-origin:0;background:currentColor;border-radius:999px;width:6px;height:2px;position:absolute;top:12px;left:12px;transform:rotate(45deg)}.search-count{min-width:20px;color:var(--muted);text-align:center;background:#21372f14;border-radius:8px;padding:2px 5px;font-size:11px;position:absolute;top:10px;right:11px}.header-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.btn{border:0;border-radius:14px;justify-content:center;align-items:center;gap:8px;height:40px;padding:0 14px;font-size:13px;font-weight:700;transition:transform .12s,box-shadow .12s,background .12s;display:inline-flex}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn-primary{color:#fffdf7;background:var(--forest);box-shadow:0 7px 18px #234b3c33}.btn-primary:hover:not(:disabled){background:var(--forest-deep)}.btn-secondary{color:var(--forest);border:1px solid var(--line);background:#fffdf8d1}.btn-secondary.is-active{color:#fff;border-color:var(--clay);background:var(--clay)}.btn-danger{color:#a04433;background:#f9e9e3}.btn-small{height:34px;padding:0 11px;font-size:12px}.avatar-button{color:#fff;background:linear-gradient(145deg,#c17d63,#9c503f);border:0;border-radius:50%;width:40px;height:40px;font-weight:800;box-shadow:inset 0 0 0 3px #fff3}.canvas-toolbar{z-index:25;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffdf8e0;border:1px solid #ffffffb8;border-radius:15px;gap:7px;width:48px;padding:7px;display:grid;position:absolute;top:96px;left:18px;box-shadow:0 10px 28px #1c2f2714}.tool-button{width:34px;height:34px;color:var(--forest);background:0 0;border:0;border-radius:9px;place-items:center;font-size:18px;display:grid}.tool-button:hover{background:#234b3c14}.tool-button.is-active,.tool-button.is-active:hover{color:#fff;background:var(--forest);box-shadow:0 5px 12px #1b443333}.activity-tool-icon{gap:3px;width:18px;display:grid}.activity-tool-icon>span{background:radial-gradient(circle at 1.5px,currentColor 0 1.5px,#0000 1.7px),linear-gradient(currentColor,currentColor) 100%/12px 2px no-repeat;border-radius:999px;width:18px;height:3px}.tool-divider{background:var(--line);height:1px;margin:1px 4px}.graph-canvas{touch-action:none;cursor:grab;position:absolute;inset:0;overflow:hidden}.graph-canvas.is-panning{cursor:grabbing}.graph-scene{transform-origin:0 0;text-rendering:geometricprecision;width:1px;height:1px;position:absolute;top:142px;left:50%}.graph-edges{pointer-events:none;width:1px;height:1px;position:absolute;inset:0;overflow:visible}.edge-family-halo,.edge-spouse-halo{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;pointer-events:none}.edge-family-halo{stroke:url(#family-line-gradient);stroke-width:11px;opacity:.18;filter:blur(1.6px)}.edge-family{fill:none;stroke:url(#family-line-gradient);stroke-width:3.25px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.graph-edges g.is-highlighted .edge-family-halo,.graph-edges g.is-highlighted .edge-spouse-halo{stroke:url(#kinship-line-gradient);opacity:.24}.graph-edges g.is-highlighted .edge-family,.graph-edges g.is-highlighted .edge-spouse{stroke:url(#kinship-line-gradient);stroke-width:4.25px}.family-junction{fill:#f6f0e5;stroke:#2f4e3fc2;stroke-width:2.4px}.family-branch-dot{fill:#2f4e3fd1}.family-connector.is-single-parent .family-junction{fill:#fffaf1;stroke-dasharray:2 2}.unknown-parent-mark{fill:#fffcf6f7;stroke:#4d665a80;stroke-width:1.1px;stroke-dasharray:2.5 2.5;filter:drop-shadow(0 2px 4px #2f4e3f14)}.unknown-parent-label{fill:#607267;font-family:var(--font-sans);letter-spacing:.018em;text-anchor:middle;font-size:7.4px;font-weight:700}.graph-edges g.is-highlighted .family-junction{stroke:var(--clay)}.graph-edges g.is-highlighted .family-branch-dot{fill:var(--clay)}.graph-edges g.is-highlighted .unknown-parent-mark{fill:#f7e8df;stroke:var(--clay)}.graph-edges g.is-highlighted .unknown-parent-label{fill:#7f3d2d}.edge-spouse{fill:none;stroke:url(#partner-line-gradient);stroke-width:3px;stroke-linecap:round;stroke-dasharray:4 7;vector-effect:non-scaling-stroke}.edge-spouse-halo{stroke:url(#partner-line-gradient);stroke-width:12px;opacity:.2;filter:blur(1.8px)}.spouse-mark{fill:#fffaf3f0;stroke:#a45b4594;stroke-width:1.35px;filter:drop-shadow(0 2px 4px #7044351f)}.spouse-label{fill:#92513f;font-family:var(--font-sans);letter-spacing:.055em;text-anchor:middle;text-transform:uppercase;font-size:8.5px;font-weight:700}.sibling-mark{fill:#fafcf6f5;stroke:#365f4e80;stroke-width:1.2px;filter:drop-shadow(0 2px 4px #2f4e3f1a)}.sibling-label{fill:#365f4e;font-family:var(--font-sans);letter-spacing:.025em;text-anchor:middle;font-size:8px;font-weight:750}.graph-edges g.is-highlighted .spouse-mark{fill:#f7dfd5;stroke:var(--clay)}.graph-edges g.is-highlighted .spouse-label{fill:#7f3d2d}.graph-edges g.is-highlighted .sibling-mark{fill:#f2e2d8;stroke:var(--clay)}.graph-edges g.is-highlighted .sibling-label{fill:#7f3d2d}.person-node{--card-accent:#c79765b8;--card-orb:#d3b17c26;--card-glow:#e6c28f1f;width:276px;height:142px;color:var(--ink);background:radial-gradient(circle at 92% 7%, var(--card-glow), transparent 31%), linear-gradient(155deg, #fffffdfc, #f7f6eefa);font-family:var(--font-sans);text-align:left;border:1px solid #36534526;border-radius:20px;padding:11px 14px 10px;transition:border .14s,box-shadow .14s,transform .14s;position:absolute;overflow:hidden;transform:translate(-50%);box-shadow:0 10px 26px #233e311c,0 2px 5px #233e310d}.person-node.gender-male{--card-accent:#498f84c2;--card-orb:#4b97892b;--card-glow:#64ad9e21}.person-node.gender-female{--card-accent:#da747cc7;--card-orb:#e07e8b2b;--card-glow:#ee929c24}.person-node:before{content:"";z-index:0;background:var(--card-orb);pointer-events:none;border-radius:50%;width:48px;height:48px;position:absolute;inset:auto -18px -22px auto}.person-node:after{content:"";z-index:0;background:linear-gradient(90deg, transparent, var(--card-accent), transparent);pointer-events:none;border-radius:0 0 6px 6px;height:3px;position:absolute;top:0;left:26px;right:26px}.person-node>span{z-index:1;position:relative}.person-node:hover{border-color:#234b3c7a;transform:translate(-50%);box-shadow:inset 0 0 0 4px #ffffff6b,0 10px 25px #1c2f2729}.person-node.is-selected{border-color:var(--clay);outline-offset:3px;outline:2px solid #b9674f57;box-shadow:0 10px 28px #1c2f2729}.person-node.is-relation-picked{border-color:var(--forest);outline-offset:3px;outline:2px solid #234b3c4d;box-shadow:0 10px 28px #1c2f2726}.person-node.is-kinship-path:not(.is-relation-picked){border-color:#b9674fb3}.person-node.is-dimmed{opacity:.3}.person-main{grid-template-columns:52px minmax(0,1fr);align-items:center;gap:12px;height:84px;display:grid}.person-photo,.person-initials{object-fit:cover;border:1px solid #5b4c3433;border-radius:17px;flex:none;width:52px;height:52px;box-shadow:inset 0 0 0 3px #ffffff6b,0 2px 7px #3039301a}.person-initials{color:var(--forest-deep);font:700 16px/1 var(--font-sans);background:linear-gradient(155deg,#e6eadc,#d5ddcc);place-items:center;display:grid}.person-initials.gender-female{color:#7c493b;background:linear-gradient(155deg,#f1e1da,#e8d3c9)}.person-identity{min-width:0;display:block}.person-name{min-width:0;font-family:var(--font-sans);margin:0;display:block}.person-full-name{color:#1e3d31;text-overflow:ellipsis;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:14px;font-weight:720;line-height:1.22;display:-webkit-box;overflow:hidden}.person-years{color:#7a7164;font-variant-numeric:tabular-nums;letter-spacing:.03em;margin-top:5px;font-size:10.5px;font-weight:700;display:block}.person-meta{color:#766f63;border-top:1px solid #5b4c3421;justify-content:space-between;align-items:center;gap:10px;height:27px;margin-top:6px;padding-top:7px;font-size:9.5px;display:flex}.person-place{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;min-width:0;display:flex;overflow:hidden}.person-archive-count{color:#4a5b4ec7;letter-spacing:.05em;text-transform:uppercase;flex:none;font-size:8.5px;font-weight:800}.person-meta .source-dot{background:#91a380;border-radius:50%;width:6px;height:6px}.generation-label{color:#21372f6b;letter-spacing:.1em;text-align:right;text-transform:uppercase;width:110px;font-size:10px;font-weight:800;position:absolute}.graph-scene[data-density=compact] .person-meta{opacity:0}.graph-scene[data-density=overview] .person-meta,.graph-scene[data-density=overview] .person-photo,.graph-scene[data-density=overview] .person-initials{display:none}.graph-scene[data-density=overview] .person-main{grid-template-columns:1fr;height:100%}.graph-scene[data-density=overview] .person-full-name{font-size:18px;line-height:1.18}.graph-scene[data-density=overview] .person-years{font-size:14px}.empty-canvas,.loading-state{z-index:8;pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.loading-card,.empty-card{max-width:380px;box-shadow:var(--shadow);text-align:center;pointer-events:auto;background:#fffdf8e0;border:1px solid #fffc;border-radius:24px;padding:26px 30px}.loading-ring{border:3px solid #234b3c1f;border-top-color:var(--forest);border-radius:50%;width:32px;height:32px;margin:0 auto 14px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.error-toast{z-index:80;color:#843b2e;background:#fff0eaf5;border:1px solid #a0443333;border-radius:13px;max-width:min(560px,100vw - 40px);padding:12px 16px;font-size:13px;position:absolute;top:90px;left:50%;transform:translate(-50%);box-shadow:0 10px 28px #602a1f1f}.detail-panel{z-index:35;width:min(432px,100vw - 112px);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);overscroll-behavior:contain;background:#fffffcf7;border:1px solid #fffc;border-radius:26px;animation:.18s ease-out panel-in;position:absolute;top:96px;bottom:78px;right:18px;overflow:auto}.activity-panel{z-index:34;width:360px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffffcf7;border:1px solid #fffc;border-radius:26px;grid-template-rows:auto minmax(0,1fr);animation:.18s ease-out activity-panel-in;display:grid;position:absolute;top:96px;bottom:78px;left:78px;overflow:hidden}@keyframes activity-panel-in{0%{opacity:0;transform:translate(-12px)}}.activity-panel-header{background:radial-gradient(circle at 12% 0,#e07b622e,#0000 38%),linear-gradient(225deg,#edf5ee,#f9ece5);border-bottom:1px solid #2f4e3f1a;grid-template-columns:40px minmax(0,1fr);align-items:center;gap:11px;min-height:104px;padding:17px 52px 16px 18px;display:grid;position:relative}.activity-panel-symbol{width:40px;height:40px;color:var(--forest);background:#ffffff9e;border-radius:13px;place-items:center;font-size:18px;display:grid;box-shadow:inset 0 0 0 1px #234b3c14}.activity-panel-header .section-kicker{margin-bottom:2px}.activity-panel-header h2{font:760 22px/1.08 var(--font-sans);letter-spacing:-.025em;margin:0}.activity-panel-header>div>span{color:#21372f94;margin-top:4px;font-size:10.5px;display:block}.activity-panel-close{width:30px;height:30px;color:var(--forest);background:#ffffffa8;border:0;border-radius:50%;place-items:center;font-size:18px;display:grid;position:absolute;top:12px;right:12px}.activity-list{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#234b3c66 transparent;min-height:0;padding:4px 10px 14px;overflow-y:auto}.activity-list::-webkit-scrollbar{width:8px}.activity-list::-webkit-scrollbar-track{background:0 0}.activity-list::-webkit-scrollbar-thumb{background:#234b3c66 padding-box padding-box;border:2px solid #0000;border-radius:999px}.activity-group>h3{z-index:1;color:#7b847e;letter-spacing:.065em;text-transform:uppercase;background:#fffffcf5;margin:0;padding:10px 6px 6px;font-size:9.5px;font-weight:780;position:sticky;top:0}.activity-entry{width:100%;min-height:70px;color:var(--ink);text-align:left;background:0 0;border:0;border-radius:14px;grid-template-columns:34px minmax(0,1fr) auto;align-items:start;gap:10px;padding:9px;transition:background .13s,box-shadow .13s;display:grid}.activity-entry:hover{background:#f1f5ef}.activity-entry:focus-visible{outline-offset:-2px;outline:3px solid #b9674f33}.activity-entry.is-current{box-shadow:inset 3px 0 0 var(--forest);background:#e9f2ea}.activity-entry-icon{color:#35604d;background:#e5efe8;border-radius:11px;place-items:center;width:34px;height:34px;font-size:15px;font-weight:760;display:grid}.activity-entry.tone-relationship .activity-entry-icon{color:#856148;background:#f3eadf}.activity-entry.tone-media .activity-entry-icon{color:#6b5b7e;background:#ece8f3}.activity-entry.tone-restore .activity-entry-icon{color:#8c5544;background:#f6e6df}.activity-entry.tone-seed .activity-entry-icon{color:#8a7442;background:#f2eddb}.activity-entry-copy{min-width:0}.activity-entry-copy>strong{color:#2d4c3f;font-size:12px;font-weight:730;line-height:1.3;display:block}.activity-entry-detail{color:#53665b;-webkit-line-clamp:4;-webkit-box-orient:vertical;margin-top:2px;font-size:10.5px;line-height:1.35;display:-webkit-box;overflow:hidden}.activity-entry-meta{color:#7a847d;flex-wrap:wrap;align-items:center;gap:4px;margin-top:5px;font-size:9.5px;line-height:1.25;display:flex}.activity-entry-meta b{color:#5d7166;font-weight:720}.activity-revision{color:#6d7771;background:#f0eee7;border-radius:8px;margin-top:1px;padding:4px 6px;font-size:9px;font-weight:740}.activity-empty{color:var(--muted);text-align:center;background:#f5f5ef;border:1px dashed #234b3c38;border-radius:15px;margin:18px 8px;padding:18px;font-size:11.5px;line-height:1.5}.detail-panel,.modal,.media-viewer-stage{scrollbar-width:thin;scrollbar-color:#234b3c66 transparent}.detail-panel::-webkit-scrollbar{width:8px;height:8px}.modal::-webkit-scrollbar{width:8px;height:8px}.media-viewer-stage::-webkit-scrollbar{width:8px;height:8px}.detail-panel::-webkit-scrollbar-track{background:0 0}.modal::-webkit-scrollbar-track{background:0 0}.media-viewer-stage::-webkit-scrollbar-track{background:0 0}.detail-panel::-webkit-scrollbar-thumb{background:#234b3c66 padding-box padding-box;border:2px solid #0000;border-radius:999px}.modal::-webkit-scrollbar-thumb{background:#234b3c66 padding-box padding-box;border:2px solid #0000;border-radius:999px}.media-viewer-stage::-webkit-scrollbar-thumb{background:#234b3c66 padding-box padding-box;border:2px solid #0000;border-radius:999px}.detail-panel::-webkit-scrollbar-thumb:hover{background-color:#234b3c9e}.modal::-webkit-scrollbar-thumb:hover{background-color:#234b3c9e}.media-viewer-stage::-webkit-scrollbar-thumb:hover{background-color:#234b3c9e}@keyframes panel-in{0%{opacity:0;transform:translate(12px)}}.detail-cover{min-height:120px;color:var(--ink);background:radial-gradient(circle at 88% 4%,#e07b6238,#0000 34%),linear-gradient(135deg,#edf5ee,#f9ece5);padding:24px 22px 18px;position:relative}.detail-close{width:30px;height:30px;color:var(--forest);background:#ffffffa3;border:0;border-radius:50%;font-size:18px;position:absolute;top:12px;right:12px}.detail-name{max-width:320px;font:760 26px/1.08 var(--font-sans);letter-spacing:-.025em;margin:20px 0 6px}.detail-life{color:#21372f9e;margin:0;font-size:12px}.detail-body{padding:18px 20px 24px}.profile-actions{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin-bottom:17px;display:grid}.profile-action{aspect-ratio:1;color:#355648;background:radial-gradient(circle at 75% 8%,#ffffffeb,#0000 42%),linear-gradient(145deg,#f4f7f1,#e9f0e8);border:1px solid #284d3d1c;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-width:0;min-height:64px;padding:7px 3px 6px;font-size:10.5px;font-weight:750;line-height:1.1;transition:transform .14s,border-color .14s,box-shadow .14s;display:flex;overflow:hidden;box-shadow:0 4px 12px #1f3a2d0e}.profile-action:hover:not(:disabled){border-color:#284d3d3d;transform:translateY(-2px);box-shadow:0 8px 18px #1f3a2d1c}.profile-action:focus-visible{outline-offset:2px;outline:3px solid #b9674f33}.profile-action:disabled{cursor:default;opacity:.46}.profile-action-icon{color:#315548;background:#ffffffbd;border-radius:11px;flex:none;place-items:center;width:33px;height:33px;display:grid;position:relative;box-shadow:inset 0 0 0 1px #2d554214,0 2px 6px #1e392c14}.profile-action-icon svg{width:18px;height:18px}.profile-action:not(.is-edit) .profile-action-icon:after{content:"";background:linear-gradient(#fff,#fff) 50%/7px 1.5px no-repeat,linear-gradient(#fff,#fff) 50%/1.5px 7px no-repeat,#386b55;border:2px solid #f1f5ef;border-radius:50%;place-items:center;width:15px;height:15px;display:grid;position:absolute;top:-5px;right:-5px;box-shadow:0 2px 5px #21453433}.profile-action.is-edit{color:#fff;background:radial-gradient(circle at 78% 6%,#ffffff29,#0000 40%),linear-gradient(145deg,#386b55,#204b3a);border-color:#224e3c61;box-shadow:0 6px 16px #1e453433}.profile-action.is-edit .profile-action-icon{color:#fff;background:#ffffff24;box-shadow:inset 0 0 0 1px #ffffff21}.profile-action.is-partner .profile-action-icon{color:#935668;background:#f5e1e6}.profile-action.is-sibling .profile-action-icon{color:#5f5c91;background:#ebe9f6}.profile-facts{border-top:1px solid #2f4e3f1a;border-bottom:1px solid #2f4e3f1a;margin-bottom:17px}.profile-fact{grid-template-columns:34px minmax(0,1fr) 28px;align-items:center;gap:10px;min-width:0;min-height:52px;padding:7px 1px;display:grid}.profile-fact+.profile-fact{border-top:1px solid #2f4e3f13}.profile-fact-icon{color:#486658;background:#edf3eb;border-radius:11px;place-items:center;width:34px;height:34px;display:grid}.profile-fact-icon svg{width:17px;height:17px}.profile-fact-icon.tone-date{color:#80574a;background:#f6e9e2}.profile-fact-icon.tone-place{color:#3d6b5e;background:#e3f0eb}.profile-fact-icon.tone-name{color:#6f6042;background:#f2eddf}.profile-fact-icon.tone-contact{color:#685a7d;background:#ece8f3}.profile-fact>div{min-width:0}.profile-fact>div>span,.profile-fact>div>strong{display:block}.profile-fact>div>span{color:#3e524794;letter-spacing:.065em;text-transform:uppercase;margin-bottom:2px;font-size:9.5px;font-weight:780}.profile-fact>div>strong{overflow-wrap:anywhere;color:#304e41;font-size:12.5px;font-weight:640;line-height:1.32}.profile-fact.is-missing>div>strong{color:#8a8d84;font-weight:540}.profile-fact:not(.is-missing)>div{grid-column:2/-1}.profile-fact>button{color:#35664f;background:#edf5ef;border:1px solid #35664f29;border-radius:9px;place-items:center;width:27px;height:27px;font-size:14px;font-weight:700;display:grid}.profile-fact>button:hover:not(:disabled){background:#e1efe6;border-color:#35664f4d}.detail-section{border-top:1px solid var(--line);padding:16px 0}.data-warning{color:#754538;background:#fbefe9;border:1px solid #b9674f38;border-radius:11px;margin:0 0 12px;padding:10px 11px;font-size:11px;line-height:1.45}.detail-section h3{font:750 16px/1.2 var(--font-sans);margin:0 0 9px}.detail-section p{color:#59665e;white-space:pre-wrap;margin:0;font-size:12px;line-height:1.55}.media-grid{grid-template-columns:repeat(3,1fr);gap:7px;display:grid}.media-item{aspect-ratio:1;color:#fff;cursor:zoom-in;isolation:isolate;background:#e7e7df;border:1px solid #234b3c1f;border-radius:13px;width:100%;padding:0;transition:transform .15s,border-color .15s,box-shadow .15s;display:block;position:relative;overflow:hidden;box-shadow:0 5px 14px #1c342914}.media-item:hover{border-color:#234b3c4d;transform:translateY(-2px);box-shadow:0 9px 20px #1c342924}.media-item:focus-visible{outline-offset:2px;outline:3px solid #b9674f42}.media-item img,.media-item video{object-fit:cover;pointer-events:none;width:100%;height:100%;transition:transform .24s;display:block}.media-item:hover img,.media-item:hover video{transform:scale(1.035)}.media-item-shade{z-index:1;pointer-events:none;background:linear-gradient(#0000 38%,#0d1d16ad);position:absolute;inset:0}.media-item-icon{z-index:2;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#182f25b3;border:1px solid #ffffff73;border-radius:50%;place-items:center;width:25px;height:25px;font-size:10px;display:grid;position:absolute;bottom:7px;right:7px;box-shadow:0 3px 10px #00000029}.media-item-caption{z-index:2;color:#ffffffeb;text-align:left;text-shadow:0 1px 4px #00000073;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:8.5px;font-weight:650;line-height:1.25;display:-webkit-box;position:absolute;bottom:7px;left:8px;right:37px;overflow:hidden}.media-file{width:100%;height:100%;color:var(--muted);text-align:center;place-items:center;padding:8px;font-size:10px;display:grid}.section-add-action{height:34px;color:var(--forest);cursor:pointer;background:#edf5ef6b;border:1px dashed #234b3c59;border-radius:10px;align-items:center;gap:7px;margin-top:9px;padding:0 11px;font-family:inherit;font-size:11px;font-weight:800;transition:border-color .14s,background .14s,transform .14s;display:inline-flex}.section-add-action:hover:not(:disabled){background:#edf5ef;border-color:#234b3c8f;transform:translateY(-1px)}.section-add-action:focus-visible{outline-offset:2px;outline:3px solid #b9674f33}.section-add-action:disabled{cursor:default;opacity:.5}.media-lightbox{z-index:130;-webkit-backdrop-filter:blur(14px)saturate(.82);backdrop-filter:blur(14px)saturate(.82);background:#0c1913d6;place-items:center;padding:24px;animation:.16s ease-out media-lightbox-in;display:grid;position:fixed;inset:0}@keyframes media-lightbox-in{0%{opacity:0}}.media-viewer{color:#ffffffe6;background:#101c17;border:1px solid #ffffff38;border-radius:24px;grid-template-rows:auto minmax(0,auto) auto;width:fit-content;min-width:min(420px,100vw - 48px);max-width:min(1180px,100vw - 48px);height:auto;max-height:calc(100dvh - 48px);display:grid;overflow:hidden;box-shadow:0 34px 100px #0000006b}.media-viewer-header{background:#14251df5;border-bottom:1px solid #ffffff17;justify-content:space-between;align-items:center;gap:18px;min-height:48px;padding:9px 11px 9px 15px;display:flex}.media-viewer-header div{min-width:0}.media-viewer-header span{color:#ffffff80;letter-spacing:.06em;text-transform:uppercase;margin-bottom:3px;font-size:10px;font-weight:720;display:block}.media-viewer-header>button{color:#fff;background:#ffffff17;border:1px solid #ffffff29;border-radius:50%;flex:none;width:34px;height:34px;font-size:21px}.media-viewer-stage{background:radial-gradient(circle at 50% 44%,#4b705d2e,#0000 48%),#08100d;justify-content:center;justify-self:center;align-items:center;width:fit-content;min-width:min(420px,100vw - 48px);max-width:100%;min-height:min(240px,100dvh - 190px);max-height:calc(100dvh - 190px);display:flex;position:relative;overflow:hidden}.media-viewer-stage>img,.media-viewer-stage>video{object-fit:contain;width:auto;max-width:min(1120px,100vw - 48px);height:auto;max-height:calc(100dvh - 190px);display:block}.media-viewer-stage>video{background:#050a08;width:min(960px,100vw - 48px)}.media-viewer-nav{z-index:2;color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0c1d1594;border:1px solid #ffffff2e;border-radius:15px;width:44px;height:54px;font-size:30px;line-height:1;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 6px 20px #00000038}.media-viewer-nav:hover{background:#1f3f30d1}.media-viewer-nav.is-previous{left:14px}.media-viewer-nav.is-next{right:14px}.media-viewer-info{background:#14251df5;border-top:1px solid #ffffff17;width:100%;min-width:0;padding:10px 16px 12px}.media-viewer-caption-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:5px;display:flex}.media-viewer-caption-heading>span{color:#ffffff75;letter-spacing:.07em;text-transform:uppercase;font-size:9px;font-weight:760}.media-viewer-caption-heading button,.media-viewer-caption-toggle{color:#f3c4b4;background:0 0;border:0;padding:0;font-size:10.5px;font-weight:700}.media-viewer-caption{overflow-wrap:anywhere;white-space:pre-wrap;color:#ffffffe0;margin:0;font-size:12.5px;line-height:1.48}.media-viewer-caption.is-empty{color:#ffffff6b;font-style:italic}.media-viewer-caption.is-collapsed{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.media-viewer-caption.is-expanded{max-height:min(180px,24dvh);padding-right:6px;overflow:auto}.media-viewer-caption-toggle{margin-top:4px}.media-caption-backdrop{z-index:150;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0c191394;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.media-caption-dialog{width:min(580px,100%);color:var(--ink);background:#f8f5ee;border:1px solid #ffffffe0;border-radius:22px;overflow:hidden;box-shadow:0 28px 86px #0a181157}.media-caption-dialog>header{background:radial-gradient(circle at 90% 0,#eb9b7e2e,#0000 38%),#fffefa;border-bottom:1px solid #2e4d3e17;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px 13px;display:flex}.media-caption-dialog>header span{color:var(--clay);letter-spacing:.08em;text-transform:uppercase;font-size:9px;font-weight:800}.media-caption-dialog h2{letter-spacing:-.025em;margin:2px 0 0;font-size:21px}.media-caption-dialog>header button{border:1px solid var(--line);width:32px;height:32px;color:var(--forest);background:#ffffffb8;border-radius:50%;flex:none;font-size:19px}.media-caption-dialog form{padding:15px 18px 17px}.media-caption-file{background:#eef2e9b8;border:1px solid #2e4d3e1a;border-radius:13px;align-items:center;gap:10px;margin-bottom:13px;padding:9px 10px;display:flex}.media-caption-file>span{width:32px;height:32px;color:var(--forest);background:#dfe9dd;border-radius:10px;flex:none;place-items:center;font-size:13px;display:grid}.media-caption-file div{min-width:0}.media-caption-file strong,.media-caption-file small{display:block}.media-caption-file strong{text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.media-caption-file small{color:var(--muted);margin-top:2px;font-size:9.5px}.media-caption-field{color:#4c5d54;gap:6px;font-size:11.5px;font-weight:700;display:grid}.media-caption-field textarea{resize:vertical;width:100%;min-height:132px;max-height:min(360px,44dvh);color:var(--ink);font:400 13px/1.5 var(--font-sans);background:#fffefa;border:1px solid #46564c33;border-radius:14px;outline:none;padding:11px 12px}.media-caption-field textarea:focus{border-color:#234b3c80;box-shadow:0 0 0 3px #234b3c12}.media-caption-counter{color:var(--muted);justify-content:space-between;gap:14px;margin-top:6px;font-size:9.5px;display:flex}.media-caption-counter strong{flex:none;font-weight:650}.media-caption-dialog form>footer{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.media-viewer-caption.is-expanded,.media-caption-field textarea{scrollbar-width:thin;scrollbar-color:#698b7775 transparent}.media-viewer-caption.is-expanded::-webkit-scrollbar{width:7px}.media-caption-field textarea::-webkit-scrollbar{width:7px}.media-viewer-caption.is-expanded::-webkit-scrollbar-thumb{background:#698b7775 padding-box padding-box;border:2px solid #0000;border-radius:999px}.media-caption-field textarea::-webkit-scrollbar-thumb{background:#698b7775 padding-box padding-box;border:2px solid #0000;border-radius:999px}.upload-label input{display:none}.history-dock{z-index:32;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffdf8f0;border:1px solid #fffc;border-radius:20px;grid-template-columns:minmax(0,1fr) 200px;align-items:center;gap:16px;width:min(520px,100vw - 36px);height:48px;padding:7px 14px 7px 12px;transition:height .2s,padding .2s,box-shadow .2s;display:grid;position:absolute;bottom:16px;left:50%;right:auto;transform:translate(-50%);box-shadow:0 12px 36px #1c2f271f}.history-dock.is-expanded{grid-template-columns:190px minmax(360px,1fr) 232px;gap:16px;width:auto;height:104px;padding:14px 16px 12px;left:18px;right:18px;transform:none;box-shadow:0 16px 42px #1c2f2724}.history-dock.is-collapsed{border-radius:15px;width:48px;height:48px;padding:0;display:block;right:auto}.history-dock.is-collapsed .history-title-row,.history-dock.is-collapsed .timeline-wrap,.history-dock.is-collapsed .history-current{display:none}.history-toggle{z-index:2;width:52px;height:28px;color:var(--forest);background:#fffdf8fa;border:1px solid #234b3c26;border-radius:14px 14px 10px 10px;place-items:center;display:grid;position:absolute;top:-14px;left:50%;transform:translate(-50%);box-shadow:0 -5px 15px #1c2f2714}.history-toggle:hover{background:#edf4ec}.history-toggle:focus-visible{outline-offset:2px;outline:3px solid #b9674f38}.history-toggle>span{border-bottom:2px solid;border-right:2px solid;width:9px;height:9px;transition:transform .18s;transform:rotate(-135deg)}.history-dock.is-collapsed .history-toggle{border-radius:inherit;width:100%;height:100%;box-shadow:none;background:0 0;border:0;position:static;transform:none}.history-dock.is-expanded .history-toggle>span{transform:rotate(45deg)}.history-title-row{align-items:center;gap:10px;display:flex}.history-icon{width:32px;height:32px;color:var(--forest);background:#e6ebdf;border-radius:11px;place-items:center;font-size:17px;display:grid}.history-dock.is-expanded .history-icon{width:36px;height:36px}.history-title{margin:0;font-size:12px;font-weight:800}.history-subtitle{color:var(--muted);margin:3px 0 0;font-size:10px}.timeline-wrap{min-width:0;position:relative}.history-dock.is-collapsed .timeline-wrap{display:none}.timeline-labels{color:var(--muted);justify-content:space-between;gap:10px;margin-bottom:6px;font-size:9px;display:flex}.timeline-labels>span:first-child,.timeline-labels>span:last-child{flex:none}.timeline-labels>span:nth-child(2){text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.timeline-range{--timeline-progress:100%;-webkit-appearance:none;appearance:none;cursor:pointer;touch-action:pan-y;background:0 0;border:0;outline:none;width:100%;height:40px;margin:0;display:block}.timeline-range::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--clay) 0, var(--clay) var(--timeline-progress), #234b3c26 var(--timeline-progress), #234b3c26 100%);border-radius:999px;height:9px;box-shadow:inset 0 1px 2px #342d241f}.timeline-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:var(--clay);border:3px solid #fffdf8;border-radius:50%;width:26px;height:26px;margin-top:-8.5px;box-shadow:0 3px 9px #5530264d}.timeline-range::-moz-range-track{background:#234b3c26;border-radius:999px;height:9px;box-shadow:inset 0 1px 2px #342d241f}.timeline-range::-moz-range-progress{background:var(--clay);border-radius:999px;height:9px}.timeline-range::-moz-range-thumb{background:var(--clay);border:3px solid #fffdf8;border-radius:50%;width:26px;height:26px;box-shadow:0 3px 9px #5530264d}.timeline-range:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px #b9674f2e,0 3px 9px #5530264d}.timeline-range:focus-visible::-moz-range-thumb{box-shadow:0 0 0 4px #b9674f2e,0 3px 9px #5530264d}.timeline-range:disabled{cursor:default;opacity:.5}.history-current{grid-template-columns:repeat(2,108px);justify-content:end;align-items:center;gap:8px;display:grid}.revision-badge{text-align:center;background:#f0ebe1;border-radius:12px;place-items:center;width:108px;height:44px;padding:5px 8px;font-size:10px;line-height:1.1;display:grid}.revision-badge strong{margin-top:2px;font-size:12px;display:block}.history-current .btn{border-radius:12px;width:108px;height:44px;padding:0 8px;font-size:11.5px}.history-dock.is-collapsed .history-subtitle{display:none}.history-dock.is-collapsed .history-current{grid-template-columns:repeat(2,96px)}.history-dock.is-collapsed .revision-badge{justify-content:center;align-items:center;gap:4px;width:96px;height:32px;padding:0 8px;display:flex}.history-dock.is-collapsed .history-current .btn{border-radius:10px;width:96px;height:32px;font-size:10.5px}.history-dock.is-collapsed .revision-badge strong{margin:0;font-size:11px;display:inline}.historical-banner{z-index:31;color:#733f32;background:#fff2ebf5;border:1px solid #b9674f3d;border-radius:13px;align-items:center;gap:12px;padding:9px 10px 9px 14px;font-size:11px;display:flex;position:absolute;bottom:72px;left:50%;transform:translate(-50%);box-shadow:0 10px 28px #61382b1c}.relationship-card{z-index:38;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffdf8f7;border:1px solid #fffc;border-radius:18px;width:min(330px,100vw - 36px);padding:15px 16px;position:absolute;bottom:78px;right:18px;box-shadow:0 14px 42px #1c2f2726}.family-app.is-history-expanded .detail-panel,.family-app.is-history-expanded .activity-panel,.family-app.is-history-expanded .relationship-card{bottom:136px}.detail-panel,.activity-panel,.relationship-card,.historical-banner{transition:bottom .2s}.family-app.is-history-expanded .historical-banner{bottom:130px}.relationship-card h2{font:760 18px/1.2 var(--font-sans);letter-spacing:-.02em;margin:1px 34px 4px 0}.relationship-card p{color:var(--muted);margin:0;font-size:10.5px;line-height:1.4}.relationship-picks{grid-template-columns:minmax(0,1fr);justify-items:stretch;gap:3px;margin-top:10px;display:grid}.relationship-picks>span{color:#234b3c75;text-align:center;font-size:12px;line-height:1}.pick-chip{min-width:0;min-height:34px;color:var(--muted);text-align:left;text-overflow:ellipsis;white-space:nowrap;background:#f7f3ea;border:1px dashed #234b3c47;border-radius:11px;justify-content:flex-start;align-items:center;padding:7px 10px;font-size:10.5px;display:flex;overflow:hidden}.pick-chip.has-person{color:var(--forest);border-style:solid;font-weight:800}.kinship-result{background:#f8eee8;border:1px solid #b9674f24;border-radius:12px;margin-top:10px;padding:10px 11px}.kinship-result strong{color:var(--ink);font:760 15px/1.2 var(--font-sans);margin-bottom:4px;display:block}.kinship-result span{color:#7d655b;font-size:9.5px;line-height:1.35;display:block}.modal-backdrop{z-index:90;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#1b302757;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal{background:#f6f4ee;border:1px solid #ffffffeb;border-radius:26px;width:min(920px,100%);max-height:calc(100vh - 48px);overflow:auto;box-shadow:0 30px 90px #0f1f1938}.modal-header{z-index:2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:radial-gradient(circle at 86% 0,#eb9b7e2e,#0000 34%),#fffffcfa;border-bottom:1px solid #3952451a;justify-content:space-between;gap:20px;padding:16px 20px 14px;display:flex;position:sticky;top:0}.modal-header h2{font:770 23px/1.15 var(--font-sans);letter-spacing:-.025em;margin:2px 0 0}.modal-subtitle{max-width:520px;color:var(--muted);margin:5px 0 0;font-size:12px;line-height:1.45}.modal-x{border:1px solid var(--line);width:34px;height:34px;color:var(--forest);background:#ffffffbd;border-radius:50%;font-size:19px}.modal-body{padding:12px 16px 5px}.form-grid{grid-template-columns:1fr 1fr;gap:10px 12px;display:grid}.person-basics-grid{grid-template-columns:repeat(12,minmax(0,1fr));align-items:start}.field-surname,.field-first-name,.field-middle-name,.field-gender,.field-birth-name{grid-column:span 3}.field-birth-date,.field-death-date{grid-column:span 2}.field-birth-place{grid-column:span 5}.form-field{gap:5px;display:grid}.form-field.is-wide{grid-column:1/-1}.form-field label{color:#4c5d54;letter-spacing:0;font-size:12px;font-weight:680}.form-field input,.form-field select,.form-field textarea{background:#fffefa;border:1px solid #46564c2e;border-radius:12px;outline:none;width:100%;padding:9px 11px;font-size:14px}.form-field input,.form-field select{height:42px}.form-field textarea{resize:vertical;min-height:112px}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:#234b3c80;box-shadow:0 0 0 3px #234b3c12}.form-hint{color:var(--muted);font-size:10.5px;line-height:1.45}.person-form{display:block}.form-server-error{color:#8f4232;background:#fff0ea;border:1px solid #b54c392e;border-radius:14px;margin-bottom:12px;padding:11px 13px;font-size:11.5px;line-height:1.45}.form-section{background:#fffffcd1;border:1px solid #2e4d3e1a;border-radius:17px;margin-bottom:10px;padding:13px 14px;box-shadow:0 5px 18px #233e3109}.form-section-title{align-items:flex-start;gap:9px;margin-bottom:10px;display:flex}.form-section-title>span{color:#8d4f3e;background:#f7dfd5;border-radius:8px;flex:none;place-items:center;width:24px;height:24px;font-size:10px;font-weight:800;display:grid}.form-section-title h3{letter-spacing:-.015em;margin:0 0 2px;font-size:15px;font-weight:760}.form-section-title p{color:var(--muted);margin:0;font-size:10.5px;line-height:1.4}.field-error{color:#a54c39;margin:0;font-size:10.5px;font-weight:650;line-height:1.35}.field-error.is-wide{grid-column:1/-1}.gender-field{border:0;min-width:0;margin:0;padding:0}.gender-field legend{color:#4c5d54;margin-bottom:7px;font-size:12px;font-weight:680}.gender-options{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:6px;display:grid}.gender-options label{color:#536158;cursor:pointer;background:#fffefa;border:1px solid #46564c24;border-radius:14px;grid-template-columns:30px 1fr 18px;align-items:center;gap:8px;min-height:48px;padding:7px 10px;font-size:12px;font-weight:650;transition:border .14s,background .14s,transform .14s;display:grid}.gender-options label:hover{border-color:#295b4b47;transform:translateY(-1px)}.gender-options label.is-selected{color:var(--forest);background:#eef5ef;border-color:#295b4b6b;box-shadow:inset 0 0 0 1px #295b4b14}.gender-options input{opacity:0;pointer-events:none;position:absolute}.gender-symbol{color:#52675b;background:#edf1e9;border-radius:9px;place-items:center;width:28px;height:28px;font-weight:800;display:grid}.gender-check{color:var(--forest);opacity:0;font-size:13px}.gender-options label.is-selected .gender-check{opacity:1}.field-gender legend{margin-bottom:5px;line-height:16px}.field-gender .gender-options{background:#f1eee7;border:1px solid #46564c2e;border-radius:12px;grid-template-columns:repeat(3,1fr);gap:3px;height:42px;margin:0;padding:3px}.field-gender .gender-options label{background:0 0;border:0;border-radius:9px;grid-template-columns:1fr;place-items:center;gap:0;min-height:34px;padding:0;display:grid}.field-gender .gender-options label:hover{background:#ffffff7a;transform:none}.field-gender .gender-options label.is-selected{background:#fffefa;box-shadow:0 1px 5px #233e3121}.field-gender .gender-symbol{background:0 0;border-radius:0;width:auto;height:auto;font-size:12px}.field-gender .gender-label,.field-gender .gender-check{display:none}.existing-relations{flex-wrap:wrap;align-items:center;gap:7px;margin-bottom:8px;display:flex}.existing-relations>p{color:var(--muted);flex:0 0 100%;margin:0 0 1px;font-size:10.5px;font-weight:700}.existing-relation{color:#385648;background:#eef5ef;border:1px solid #37614d24;border-radius:999px;align-items:center;gap:7px;min-height:32px;padding:4px 5px 4px 11px;font-size:10.5px;font-weight:650;display:inline-flex}.existing-relation button{color:#7d5b50;background:#ffffffb8;border:0;border-radius:50%;width:22px;height:22px}.empty-relations{color:var(--muted);font-size:11px}.relation-list{gap:7px;display:grid}.relation-editor{background:#fbfaf5;border:1px solid #52635921;border-radius:16px;grid-template-columns:26px minmax(150px,.72fr) minmax(220px,1.28fr) 34px;align-items:end;gap:8px;padding:8px;display:grid;position:relative}.relation-number{color:#8d4f3e;background:#f8e4dc;border-radius:9px;align-self:center;place-items:center;width:25px;height:25px;font-size:10px;font-weight:800;display:grid}.relation-remove{color:#9a5948;background:#f7e9e3;border:0;border-radius:11px;align-self:end;width:34px;height:34px;margin-bottom:6px;font-size:17px}.relation-error{grid-column:2/-1}.add-relation-button{min-height:36px;color:var(--forest);background:#eef5ef9e;border:1px dashed #295b4b4d;border-radius:13px;margin-top:7px;padding:0 13px;font-size:12px;font-weight:720}.form-more{background:#fffffcb8;border:1px solid #2e4d3e1a;border-radius:18px;margin-bottom:10px}.form-more summary{color:var(--forest);cursor:pointer;justify-content:space-between;align-items:center;padding:11px 14px;font-size:13px;font-weight:720;display:flex}.form-more summary small{color:var(--muted);font-size:10px;font-weight:600}.form-more[open] summary{border-bottom:1px solid #2e4d3e17}.form-more .form-grid{padding:13px}.form-separator{background:var(--line);grid-column:1/-1;height:1px;margin:4px 0}.modal-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.person-form .modal-actions{z-index:3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffcf7;border-top:1px solid #2e4d3e1a;align-items:center;margin:0;padding:10px 16px 12px;position:sticky;bottom:0}.save-caption{color:var(--muted);margin-right:auto;font-size:10.5px}.access-notice{color:#724235;background:#fbefe9;border:1px solid #b9674f38;border-radius:13px;padding:14px 15px;font-size:12px;line-height:1.5}.member-row{border:1px solid var(--line);border-radius:13px;grid-template-columns:42px 1fr auto;align-items:center;gap:11px;margin-top:15px;padding:12px;display:grid}.member-avatar{color:#fff;background:var(--forest);border-radius:50%;place-items:center;width:42px;height:42px;font-weight:800;display:grid}.member-row strong,.member-row small{display:block}.member-row small{color:var(--muted);margin-top:3px}.role-pill{color:var(--forest);background:#e6ebdf;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:800}@media (max-width:980px){.brand-block{min-width:auto}.brand-kicker,.header-actions .btn-secondary{display:none}.detail-panel{width:min(396px,100vw - 96px)}.activity-panel{width:330px}.history-dock.is-expanded{grid-template-columns:160px minmax(260px,1fr) 216px;gap:10px}}@media (max-width:720px){.family-app{min-height:540px}.app-header{height:58px;top:10px;left:10px;right:10px}.brand-block{min-width:42px}.brand-block>div:last-child{display:none}.search-box{flex-basis:120px}.header-actions .avatar-button{flex:0 0 40px;width:40px;height:40px;font-size:12px}.canvas-toolbar{top:80px;left:10px}.detail-panel{width:auto;max-height:60vh;inset:auto 10px 70px}.detail-cover{z-index:3;position:sticky;top:0}.activity-panel{border-radius:22px;width:auto;height:min(520px,60dvh);inset:auto 10px 70px}.history-dock{grid-template-columns:minmax(0,1fr) 161px;gap:7px;width:auto;height:50px;padding:8px;bottom:10px;left:10px;right:10px;transform:none}.history-dock.is-collapsed{width:48px;height:48px;padding:0;display:block;left:50%;right:auto;transform:translate(-50%)}.history-dock.is-expanded{grid-template-rows:32px 56px 40px;grid-template-columns:minmax(0,1fr);gap:4px;width:auto;height:154px;padding:10px 10px 8px;left:10px;right:10px;transform:none}.history-subtitle{display:none}.history-dock.is-expanded .history-icon{width:32px;height:32px}.history-dock.is-expanded .timeline-labels{margin-bottom:2px}.timeline-labels>span:nth-child(2){display:none}.history-dock.is-expanded .timeline-range{height:40px}.history-current,.history-dock.is-collapsed .history-current{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;width:100%}.history-dock.is-collapsed .history-current{width:161px}.history-current .revision-badge,.history-current .btn,.history-dock.is-collapsed .revision-badge,.history-dock.is-collapsed .history-current .btn{width:100%;min-width:0;height:40px}.history-dock.is-collapsed .revision-badge,.history-dock.is-collapsed .history-current .btn{height:32px}.family-app.is-history-expanded .detail-panel,.family-app.is-history-expanded .activity-panel,.family-app.is-history-expanded .relationship-card{bottom:174px}.historical-banner{bottom:64px}.family-app.is-history-expanded .historical-banner{bottom:168px}.relationship-card{width:min(330px,100vw - 20px);bottom:70px;right:10px}.form-grid{grid-template-columns:1fr}.person-basics-grid>.form-field,.person-basics-grid>.gender-field{grid-column:1/-1}.form-field.is-wide,.form-separator{grid-column:auto}.gender-options{grid-template-columns:1fr}.relation-editor{grid-template-columns:26px 1fr 34px;align-items:end}.relation-editor .form-field{grid-column:2/3}.relation-editor .relation-number{grid-area:1/1}.relation-editor .relation-remove{grid-area:1/3}.relation-error{grid-column:2/-1}.save-caption{display:none}.person-form .modal-actions{padding-inline:14px}.header-actions .btn-primary{padding:0 10px}.header-actions .btn-primary .btn-label{display:none}.media-lightbox{padding:10px}.media-viewer{border-radius:18px;width:calc(100vw - 20px);min-width:0;max-width:calc(100vw - 20px);height:auto;max-height:calc(100dvh - 20px)}.media-viewer-header{padding:12px 12px 11px 15px}.media-viewer-stage{min-width:0;max-width:100%;min-height:220px;max-height:calc(100dvh - 210px)}.media-viewer-stage>img,.media-viewer-stage>video{max-width:100%;max-height:calc(100dvh - 210px)}.media-viewer-nav{border-radius:13px;width:38px;height:48px}.media-viewer-nav.is-previous{left:8px}.media-viewer-nav.is-next{right:8px}.media-viewer-info{padding:9px 13px 11px}.media-caption-backdrop{padding:10px}.media-caption-dialog{border-radius:18px}.media-caption-dialog form{padding:13px 14px 15px}.media-caption-counter>span{display:none}}@media (max-width:360px){.detail-body{padding-inline:14px}.profile-actions{gap:5px}.profile-action{font-size:9.5px}.profile-action-icon{border-radius:9px;width:29px;height:29px}.profile-action-icon svg{width:16px;height:16px}.history-dock.is-collapsed{grid-template-columns:32px minmax(0,1fr)}.history-dock.is-collapsed .history-title-row>div:last-child{display:none}.history-dock.is-collapsed .history-current{width:100%}}.primary-view-switcher{background:#ebefe6b8;border:1px solid #234b3c24;border-radius:13px;grid-template-columns:repeat(2,minmax(64px,1fr));padding:3px;display:inline-grid}.primary-view-switcher button{min-height:42px;color:var(--muted);background:0 0;border:0;border-radius:10px;padding:0 11px;font-size:12px;font-weight:800}.primary-view-switcher button[aria-current=page]{color:#fffdf7;background:var(--forest);box-shadow:0 5px 13px #234b3c33}.family-app.is-archive-view .canvas-toolbar,.family-app.is-archive-view .graph-canvas,.family-app.is-archive-view .detail-panel,.family-app.is-archive-view .activity-panel,.family-app.is-archive-view .relationship-card,.family-app.is-archive-view .empty-canvas{display:none}.archive-view{overscroll-behavior:contain;scrollbar-color:#234b3c61 transparent;scrollbar-width:thin;padding:0 2px 32px;position:absolute;inset:96px 18px 76px;overflow:auto}.family-app.is-history-expanded .archive-view{bottom:142px}.archive-view::-webkit-scrollbar{width:10px;height:10px}.archive-photo-stage::-webkit-scrollbar{width:10px;height:10px}.archive-viewer-info::-webkit-scrollbar{width:10px;height:10px}.archive-view::-webkit-scrollbar-thumb{background:#234b3c66 padding-box padding-box;border:3px solid #0000;border-radius:999px}.archive-photo-stage::-webkit-scrollbar-thumb{background:#234b3c66 padding-box padding-box;border:3px solid #0000;border-radius:999px}.archive-viewer-info::-webkit-scrollbar-thumb{background:#234b3c66 padding-box padding-box;border:3px solid #0000;border-radius:999px}.archive-hero{background:radial-gradient(circle at 92% 12%,#e391772e,#0000 34%),linear-gradient(135deg,#fffdf8f0,#eff5edeb);border:1px solid #ffffffb3;border-radius:26px;justify-content:space-between;align-items:end;gap:24px;max-width:1480px;margin:0 auto 18px;padding:22px 28px;display:flex;box-shadow:0 16px 46px #234b3c14}.archive-kicker,.archive-upload-dialog header p,.archive-viewer-header p{color:var(--clay);letter-spacing:.045em;margin:0 0 5px;font-size:11px;font-weight:850}.archive-hero h2{letter-spacing:-.035em;margin:0;font-size:clamp(25px,2.5vw,38px)}.archive-hero p:last-child{max-width:660px;color:var(--muted);margin:7px 0 0;font-size:15px;line-height:1.45}.archive-total{background:#fffdf8bd;border:1px solid #234b3c1f;border-radius:20px;place-items:center;min-width:104px;padding:12px 18px;display:grid}.archive-total strong{font-size:28px;line-height:1}.archive-total span{color:var(--muted);margin-top:4px;font-size:11px}.archive-history-note{color:#7c493b;background:#fce7ddeb;border-radius:16px;max-width:1480px;margin:0 auto 16px;padding:12px 18px;font-size:14px;font-weight:700}.archive-grid{grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:18px;max-width:1480px;margin:0 auto;display:grid}.archive-card{background:#fffdf8f0;border:1px solid #234b3c1f;border-radius:23px;transition:all .16s;overflow:hidden;box-shadow:0 12px 30px #21372f1a}.archive-card:hover{border-color:#234b3c47;transform:translateY(-2px);box-shadow:0 18px 38px #21372f24}.archive-card>button{text-align:left;background:0 0;border:0;width:100%;padding:0;display:block}.archive-card-image{aspect-ratio:4/3;background:radial-gradient(circle at 40% 30%,#ffffff14,#0000 32%),#17352b;place-items:center;display:grid;position:relative;overflow:hidden}.archive-card-image img,.archive-card-image video{object-fit:contain;width:100%;height:100%;display:block}.archive-card-image>span:first-child{color:#ffffffc2;font-size:48px}.archive-card-open{color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#142f26c2;border:1px solid #ffffff73;border-radius:999px;padding:8px 12px;font-size:11px;font-weight:800;position:absolute;bottom:12px;right:12px}.archive-card-copy{flex-direction:column;justify-content:center;gap:5px;min-height:86px;padding:15px 17px 11px;display:flex}.archive-card-copy strong{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:16px;line-height:1.25;display:-webkit-box;overflow:hidden}.archive-card-copy span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.archive-card-badges{flex-wrap:wrap;gap:6px;min-height:38px;padding:0 17px 14px;display:flex}.archive-card-badges span{color:var(--forest);background:#eaf0e8;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:800}.archive-empty,.archive-loading{text-align:center;background:#fffdf8bd;border:1px dashed #234b3c47;border-radius:28px;max-width:760px;margin:44px auto;padding:52px 28px}.archive-empty>span{width:72px;height:72px;color:var(--forest);background:#e5eee5;border-radius:24px;place-items:center;margin:0 auto 15px;font-size:34px;display:grid}.archive-empty h3{margin:0;font-size:24px}.archive-empty p{max-width:520px;color:var(--muted);margin:10px auto 22px;font-size:15px;line-height:1.5}.archive-primary-action,.archive-secondary-action{border-radius:15px;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:0 18px;font-size:14px;font-weight:800;display:inline-flex}.archive-primary-action{color:#fffdf7;background:var(--forest);border:0;box-shadow:0 8px 20px #234b3c33}.archive-secondary-action{border:1px solid var(--line);background:#fffdf8}.archive-modal-backdrop{z-index:80;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#182d259e;place-items:center;padding:24px;display:grid;position:fixed;inset:0;overflow:auto}.archive-upload-dialog{background:#f8f5ed;border:1px solid #ffffffbd;border-radius:28px;width:min(760px,100vw - 30px);overflow:hidden;box-shadow:0 34px 90px #11261e52}.archive-upload-dialog>header,.archive-viewer-header{background:radial-gradient(circle at 92% 8%,#e7977e33,#0000 38%),linear-gradient(135deg,#f1f6ef,#fff7f1);justify-content:space-between;align-items:center;gap:20px;padding:22px 24px;display:flex}.archive-upload-dialog header h2{letter-spacing:-.03em;margin:0;font-size:27px}.archive-upload-dialog header>button,.archive-viewer-header-actions>button:last-child{border:1px solid var(--line);background:#fffdf8d6;border-radius:16px;flex:none;width:48px;height:48px;font-size:26px}.archive-upload-dialog form{gap:14px;padding:20px 24px 24px;display:grid}.archive-upload-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.archive-upload-field{background:#fffdf8e6;border:1px dashed #234b3c47;border-radius:19px;flex-direction:column;justify-content:space-between;gap:12px;min-height:112px;padding:15px;display:flex;position:relative}.archive-upload-field.is-required{background:#f0f6ee;border-style:solid;border-color:#234b3c3d}.archive-upload-field>span{grid-template-columns:30px 1fr auto;align-items:center;gap:8px;display:grid}.archive-upload-field b,.archive-editor-instruction>b{color:#7f4636;background:#f8dfd5;border-radius:10px;place-items:center;width:30px;height:30px;font-size:13px;display:grid}.archive-upload-field small,.archive-note-field small{color:var(--muted);font-size:10px;font-weight:700}.archive-upload-field input{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.archive-upload-field:focus-within{outline-offset:2px;outline:3px solid #234b3c29}.archive-upload-field em{min-height:44px;color:var(--forest);text-overflow:ellipsis;white-space:nowrap;background:#e8efe6;border-radius:13px;justify-content:center;align-items:center;font-size:13px;font-style:normal;font-weight:800;display:flex;overflow:hidden}.archive-note-field{gap:8px;font-size:13px;font-weight:800;display:grid}.archive-note-field>span{justify-content:space-between;display:flex}.archive-note-field textarea,.archive-person-search input{border:1px solid var(--line);resize:vertical;background:#fffdf8;border-radius:15px;outline:none;width:100%;padding:12px 14px;font-size:15px;line-height:1.45}.archive-note-field textarea:focus,.archive-person-search input:focus{border-color:#234b3c80;box-shadow:0 0 0 3px #234b3c17}.archive-upload-help{color:var(--muted);margin:0;font-size:12px}.archive-upload-dialog form>footer{justify-content:flex-end;gap:10px;padding-top:4px;display:flex}.archive-modal-backdrop.is-viewer{padding:16px}.archive-viewer{background:#f7f4ec;border:1px solid #ffffffad;border-radius:26px;grid-template-rows:auto minmax(0,1fr);width:min(1540px,100vw - 32px);height:min(920px,100dvh - 32px);display:grid;overflow:hidden;box-shadow:0 36px 100px #10231c6b}.archive-viewer-header{padding:14px 18px 14px 22px}.archive-viewer-header strong{font-size:14px}.archive-viewer-header-actions{align-items:center;gap:8px;display:flex}.archive-viewer-header-actions>button:first-child{color:#fff;background:var(--forest);border:0;border-radius:15px;align-items:center;gap:8px;min-height:48px;padding:0 16px;font-weight:800;display:inline-flex}.archive-viewer-main{grid-template-columns:minmax(0,1fr) minmax(300px,380px);min-height:0;display:grid}.archive-viewer.is-editing .archive-viewer-main{grid-template-columns:minmax(0,1fr) minmax(340px,430px)}.archive-photo-column{background:#122a22;grid-template-rows:auto minmax(0,1fr) auto;min-width:0;min-height:0;display:grid}.archive-photo-toolbar{z-index:2;color:#fff;background:#0c1f18eb;border-bottom:1px solid #ffffff1f;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.archive-side-switch,.archive-zoom-controls{align-items:center;gap:6px;display:flex}.archive-side-switch button,.archive-zoom-controls button{color:#fff;background:#ffffff14;border:1px solid #fff3;border-radius:14px;min-width:50px;min-height:50px;font-size:18px;font-weight:800}.archive-side-switch button{min-width:92px;padding:0 14px;font-size:12px}.archive-side-switch button.is-active{color:var(--forest);background:#fffdf8}.archive-zoom-controls output{text-align:center;min-width:58px;font-size:13px;font-weight:800}.archive-zoom-controls .archive-fit-button{min-width:88px;padding:0 12px;font-size:12px}.archive-zoom-controls .archive-fit-button.is-active{color:var(--forest);background:#fffdf8}.archive-photo-stage{overscroll-behavior:contain;background:radial-gradient(circle at 50% 45%,#5275634d,#0000 48%),#091c15;min-width:0;min-height:0;padding:22px;overflow:auto}.archive-photo-stage>video{object-fit:contain;width:100%;height:100%}.archive-photo-canvas{touch-action:pan-x pan-y;min-width:25%;margin:0 auto;position:relative}.archive-photo-canvas.is-drawing{cursor:crosshair;touch-action:none}.archive-photo-canvas>img{-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block}.archive-person-region{z-index:2;pointer-events:none;border:3px solid #f6c86d;border-radius:10px;display:block;position:absolute;box-shadow:0 0 0 2px #10231c8c,inset 0 0 0 1px #ffffff5c}.archive-person-region>span{color:#16362c;text-overflow:ellipsis;white-space:nowrap;background:#f8d991;border-radius:9px;max-width:230px;padding:6px 9px;font-size:11px;font-weight:850;position:absolute;bottom:calc(100% + 5px);left:-3px;overflow:hidden}.archive-person-region.is-preview{opacity:.85;border-style:dashed}.archive-people-strip{background:#0c1f18eb;border-top:1px solid #ffffff1a;gap:7px;padding:10px 14px 12px;display:flex;overflow-x:auto}.archive-people-strip span{color:#fff;background:#ffffff1a;border-radius:999px;flex:none;padding:7px 10px;font-size:11px}.archive-viewer-info{background:#fffdf8;min-height:0;padding:22px;overflow:auto}.archive-viewer-info section{border-bottom:1px solid var(--line);padding-bottom:20px}.archive-viewer-info h3{margin:0 0 9px;font-size:18px}.archive-viewer-info p{color:#526159;white-space:pre-wrap;margin:0;font-size:15px;line-height:1.55}.archive-audio-memory{margin-top:20px}.archive-audio-memory audio{width:100%}.archive-back-hint{width:100%;min-height:52px;color:var(--forest);background:#edf4eb;border:1px solid #234b3c29;border-radius:15px;margin-top:20px;font-weight:800}.archive-editor-instruction{background:#eef4eb;border-radius:16px;align-items:start;gap:11px;margin-bottom:14px;padding:13px;display:flex}.archive-editor-instruction div{gap:3px;display:grid}.archive-editor-instruction span{color:var(--muted);font-size:12px;line-height:1.35}.archive-person-search{margin-bottom:10px;display:block}.archive-person-picker{gap:6px;max-height:225px;padding-right:3px;display:grid;overflow:auto}.archive-person-picker button{border:1px solid var(--line);text-align:left;background:#fff;border-radius:14px;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:9px;min-height:50px;padding:6px 10px;display:grid}.archive-person-picker button.is-selected{border-color:var(--forest);box-shadow:inset 0 0 0 1px var(--forest);background:#e9f1e7}.archive-person-picker button>span{width:36px;height:36px;color:var(--forest);background:#e4ecdf;border-radius:12px;place-items:center;font-size:11px;font-weight:850;display:grid}.archive-person-picker button strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.archive-tagged-list{border-top:1px solid var(--line);gap:6px;margin:15px 0;padding-top:14px;display:grid}.archive-tagged-list>strong{font-size:12px}.archive-tagged-list>div{grid-template-columns:minmax(0,1fr) 38px;gap:5px;display:grid}.archive-tagged-list button{text-align:left;background:#f1f4ed;border:0;border-radius:11px;min-height:38px;padding:0 10px;font-size:11px;font-weight:750}.archive-tagged-list button:last-child{color:#994f3f;text-align:center;background:#faeae4;padding:0;font-size:20px}.archive-note-field.is-compact{border-top:1px solid var(--line);margin-top:16px;padding-top:15px}.archive-editor-actions{border-top:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffdf8f5;grid-template-columns:1fr 1.2fr;gap:8px;margin:18px -22px -22px;padding:14px 22px 18px;display:grid;position:sticky;bottom:-22px}@media (max-width:1160px){.brand-title{text-overflow:ellipsis;max-width:250px;overflow:hidden}.primary-view-switcher button{padding-inline:8px}.archive-viewer-main,.archive-viewer.is-editing .archive-viewer-main{grid-template-columns:minmax(0,1fr) 340px}}@media (max-width:820px){.app-header{flex-wrap:wrap;align-content:center;height:108px}.brand-block{order:1}.primary-view-switcher{order:2}.header-actions{order:3}.search-box{flex:1 0 calc(100% - 4px);order:4;max-width:none}.canvas-toolbar{top:136px}.archive-view{top:132px}.archive-viewer{border-radius:20px;width:calc(100vw - 20px);height:calc(100dvh - 20px)}.archive-viewer-main,.archive-viewer.is-editing .archive-viewer-main{grid-template-rows:minmax(420px,62dvh) auto;grid-template-columns:1fr;overflow:auto}.archive-photo-column{min-height:420px}.archive-viewer-info{overflow:visible}.family-app.is-history-expanded .archive-view{bottom:178px}}@media (max-width:620px){.archive-view{padding-bottom:22px;inset-inline:10px}.archive-hero{border-radius:20px;align-items:center;padding:16px}.archive-hero p:last-child{display:none}.archive-total{min-width:78px;padding:9px 11px}.archive-total strong{font-size:23px}.archive-grid{grid-template-columns:1fr;gap:13px}.archive-card{border-radius:19px}.archive-card-image{aspect-ratio:16/10}.archive-modal-backdrop{padding:8px}.archive-upload-dialog{border-radius:20px;width:calc(100vw - 16px)}.archive-upload-dialog>header{padding:16px}.archive-upload-dialog form{padding:14px}.archive-upload-options{grid-template-columns:1fr}.archive-upload-field{min-height:102px}.archive-upload-dialog form>footer{grid-template-columns:1fr 1.25fr;display:grid}.archive-viewer-header{padding:10px 10px 10px 14px}.archive-viewer-header-actions>button:first-child span{display:none}.archive-photo-toolbar{flex-direction:column;align-items:stretch}.archive-side-switch button{flex:1}.archive-zoom-controls{justify-content:center}.archive-zoom-controls button{min-width:48px;min-height:48px}.archive-zoom-controls .archive-fit-button{min-width:78px}.archive-photo-stage{padding:10px}.archive-viewer-main,.archive-viewer.is-editing .archive-viewer-main{grid-template-rows:minmax(430px,66dvh) auto}.archive-viewer-info{padding:17px}}@media (max-width:420px){.app-header{gap:8px;padding-inline:9px}.brand-seal{width:36px;height:36px}.primary-view-switcher{flex:1}.primary-view-switcher button{min-width:0;padding-inline:6px}.header-actions .btn-primary{width:48px;min-height:48px;padding:0}.archive-zoom-controls output{min-width:46px}.archive-zoom-controls .archive-fit-button{min-width:64px;padding-inline:7px}}@media (prefers-reduced-motion:reduce){.archive-card,.primary-view-switcher button,.archive-primary-action,.archive-secondary-action{transition:none}}.auth-page{background:radial-gradient(circle at 12% 12%,#eeb8a43b,#0000 35%),radial-gradient(circle at 88% 84%,#a5cdbc45,#0000 38%),linear-gradient(135deg,#f7f1e8,#f4f7ee);place-items:center;height:100dvh;min-height:100dvh;padding:24px;display:grid;overflow:auto}.auth-page:before{pointer-events:none;content:"";opacity:.34;background-image:radial-gradient(#234b3c2e .7px,#0000 .7px);background-size:18px 18px;position:fixed;inset:0}.auth-card{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffdf8f0;border:1px solid #234b3c1f;border-radius:28px;width:min(520px,100%);padding:28px;position:relative;box-shadow:0 28px 80px #18362c29}.auth-brand,.auth-current-user{align-items:center;gap:12px;display:flex}.auth-seal,.auth-current-user>span{color:#fffdf8;background:var(--forest);border-radius:17px;flex:none;place-items:center;width:52px;height:52px;font-size:23px;font-weight:900;display:grid;box-shadow:inset 0 0 0 5px #ffffff1f}.auth-brand span,.auth-brand strong,.auth-current-user strong,.auth-current-user small{display:block}.auth-brand span{color:var(--clay);margin-bottom:2px;font-size:12px;font-weight:800}.auth-brand strong{font-size:19px}.auth-heading{margin:34px 0 24px}.auth-heading p{color:var(--clay);letter-spacing:.08em;text-transform:uppercase;margin:0 0 7px;font-size:12px;font-weight:850}.auth-heading h1{margin:0 0 9px;font-size:clamp(28px,6vw,38px);line-height:1.05}.auth-heading>span{color:var(--muted);font-size:15px;line-height:1.5;display:block}.auth-form{gap:16px;display:grid}.auth-form label>span,.setup-key-field label>span{margin-bottom:7px;font-size:13px;font-weight:780;display:block}.auth-form input{background:#fffefa;border:1px solid #234b3c33;border-radius:14px;outline:none;width:100%;min-height:52px;padding:0 15px;font-size:16px;transition:border-color .15s,box-shadow .15s}.auth-form input:focus{border-color:#234b3c9e;box-shadow:0 0 0 4px #234b3c1a}.auth-form label>small,.setup-key-field>small{color:var(--muted);margin-top:6px;font-size:11px;line-height:1.45;display:block}.password-field{position:relative}.password-field input{padding-right:94px}.password-field button{color:var(--forest);background:#eef3eb;border:0;border-radius:10px;padding:0 12px;font-size:12px;font-weight:800;position:absolute;top:7px;bottom:7px;right:7px}.auth-current-user{background:#f0f4ec;border-radius:16px;padding:12px}.auth-current-user>span{border-radius:14px;width:44px;height:44px;font-size:15px}.auth-current-user small{color:var(--muted);margin-top:3px}.setup-key-field{border:1px dashed #234b3c33;border-radius:14px;padding:12px 14px}.setup-key-field summary{cursor:pointer;color:var(--muted);font-size:12px;font-weight:750}.setup-key-field[open] summary{margin-bottom:13px}.auth-error{color:#7b3e30;background:#fbece6;border:1px solid #b9674f40;border-radius:13px;padding:12px 14px;font-size:13px;line-height:1.45}.auth-submit{color:#fff;background:var(--forest);border:0;border-radius:15px;min-height:54px;font-size:15px;font-weight:850;box-shadow:0 13px 28px #234b3c33}.auth-help{color:var(--muted);border-top:1px solid #234b3c1c;gap:10px;margin-top:22px;padding-top:18px;display:flex}.auth-help>span{color:var(--moss);flex:none;font-size:22px}.auth-help p{margin:0;font-size:12px;line-height:1.5}.auth-recovery{border:1px dashed #234b3c2b;border-radius:14px;margin-top:16px;padding:12px 14px}.auth-recovery summary{cursor:pointer;color:var(--muted);font-size:12px;font-weight:780}.auth-recovery form{gap:13px;margin-top:14px;display:grid}.auth-recovery form>p{color:var(--muted);margin:0;font-size:12px;line-height:1.5}.auth-recovery label>span{margin-bottom:6px;font-size:12px;font-weight:780;display:block}.auth-recovery input{background:#fffefa;border:1px solid #234b3c33;border-radius:13px;width:100%;min-height:48px;padding:0 13px;font-size:16px}@media (max-width:560px){.auth-page{place-items:start center;padding:10px}.auth-card{border-radius:22px;margin:10px 0;padding:21px 18px}.auth-heading{margin:28px 0 20px}}.access-manager{width:min(1040px,100vw - 32px);max-height:min(860px,100vh - 32px);color:var(--forest);scrollbar-color:#325e4b7a transparent;scrollbar-width:thin;background:#fffefa;border:1px solid #234b3c21;border-radius:30px;overflow:auto;box-shadow:0 28px 90px #192e253d}.access-manager-header{z-index:3;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:radial-gradient(circle at 91% 4%,#efb7a44f,#0000 31%),#fffefaf5;border-bottom:1px solid #234b3c1a;justify-content:space-between;align-items:flex-start;gap:24px;padding:28px 32px 24px;display:flex;position:sticky;top:0}.access-manager-header h2,.access-section-heading h3,.temporary-credentials h3{margin:0}.access-manager-header h2{font-size:clamp(27px,3vw,40px);line-height:1.05}.access-manager-header p:last-child{max-width:650px;color:var(--muted);margin:9px 0 0;line-height:1.5}.access-manager-body{gap:22px;padding:24px 32px 34px;display:grid}.access-self-card{background:#f2f6ef;border-radius:20px;grid-template-columns:54px minmax(0,1fr) auto auto;align-items:center;gap:13px;padding:14px;display:grid}.access-self-avatar,.member-avatar{color:#1d4f3c;background:linear-gradient(145deg,#eef5e9,#dde8d7);border:1px solid #234b3c24;border-radius:16px;flex:none;place-items:center;width:48px;height:48px;font-size:16px;font-weight:900;display:grid}.access-self-card>div{gap:2px;min-width:0;display:grid}.access-self-card small,.access-self-card span,.access-account-main span,.access-account-main small{color:var(--muted)}.access-text-button,.access-account-actions button{min-height:40px;color:var(--forest);background:#fffc;border:1px solid #234b3c21;border-radius:12px;padding:8px 12px;font-weight:800}.access-text-button.is-danger,.access-account-actions .is-danger{color:#914d3f}.access-password-form,.access-create-form{background:#faf8f1;border:1px solid #234b3c1f;border-radius:20px;grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:end;gap:12px;padding:18px;display:grid}.access-password-form label,.access-create-form label,.access-account-edit label{gap:7px;min-width:0;font-weight:800;display:grid}.access-password-form input,.access-create-form input,.access-create-form select,.access-account-edit input,.access-account-edit select,.access-role-select select{width:100%;min-height:48px;color:var(--forest);font:inherit;background:#fffefa;border:1px solid #234b3c2e;border-radius:13px;padding:0 13px}.access-error,.access-member-note{border-radius:16px;padding:14px 16px;line-height:1.45}.access-error{color:#8a4134;background:#fff0ea;border:1px solid #efc6ba}.access-member-note{background:#f3f6ef;border:1px solid #234b3c1f}.temporary-credentials{background:linear-gradient(135deg,#fff4ef,#f7f7ec);border:2px solid #ce755d;border-radius:22px;grid-template-columns:minmax(210px,1fr) minmax(300px,1.25fr) auto;align-items:center;gap:22px;padding:20px;display:grid}.temporary-credentials p{color:#ad5e49;letter-spacing:.08em;text-transform:uppercase;margin:0 0 5px;font-size:12px;font-weight:900}.temporary-credentials span{color:var(--muted);margin-top:6px;font-size:13px;display:block}.temporary-credentials dl{gap:8px;margin:0;display:grid}.temporary-credentials dl div{background:#ffffffc2;border-radius:12px;grid-template-columns:135px minmax(0,1fr);align-items:center;gap:10px;padding:10px 12px;display:grid}.temporary-credentials dt{color:var(--muted);font-size:12px;font-weight:800}.temporary-credentials dd{overflow-wrap:anywhere;min-width:0;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:15px;font-weight:900}.temporary-credentials-actions{gap:8px;display:grid}.access-section-heading{justify-content:space-between;align-items:center;gap:18px;display:flex}.access-section-heading p{color:var(--muted);margin:5px 0 0}.access-create-form{grid-template-columns:repeat(3,minmax(0,1fr))}.access-create-form .is-wide,.access-create-actions{grid-column:1/-1}.access-create-actions{justify-content:flex-end;gap:10px;display:flex}.access-loading{color:var(--muted);text-align:center;padding:28px}.access-account-list{gap:10px;display:grid}.access-account{background:#fff;border:1px solid #234b3c1f;border-radius:18px;grid-template-columns:48px minmax(190px,1fr) 155px minmax(230px,auto);align-items:center;gap:13px;padding:14px;display:grid}.access-account.is-disabled{opacity:.62;background:#f3f1ed}.access-account-main{gap:2px;min-width:0;display:grid}.access-account-main strong,.access-account-main span,.access-account-main small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.access-account-main small{font-size:11px}.access-role-select select{min-height:42px}.access-account-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.access-account-actions button{min-height:34px;padding:6px 9px;font-size:11px}.access-account-edit{background:#f7f6f0;border-radius:15px;grid-column:2/-1;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:10px;padding:14px;display:grid}.access-account-edit-actions{grid-column:1/-1;justify-content:flex-end;gap:8px;display:flex}.access-events{border-top:1px solid #234b3c1f;padding-top:14px}.access-events summary{cursor:pointer;font-weight:900}.access-events>div{gap:8px;margin-top:14px;display:grid}.access-events p{background:#f7f6f0;border-radius:12px;grid-template-columns:155px minmax(0,1fr);gap:10px;margin:0;padding:9px 11px;font-size:13px;display:grid}.access-events span{color:var(--muted)}@media (max-width:860px){.access-manager-header,.access-manager-body{padding-left:20px;padding-right:20px}.access-self-card{grid-template-columns:48px minmax(0,1fr)}.access-self-card .access-text-button{width:100%}.access-password-form,.access-create-form{grid-template-columns:1fr}.access-create-form .is-wide,.access-create-actions{grid-column:auto}.access-account{grid-template-columns:48px minmax(0,1fr)}.access-role-select,.access-account-actions{grid-column:2}.access-account-edit{grid-column:1/-1;grid-template-columns:1fr}.access-account-edit-actions{grid-column:auto}.access-account-actions{justify-content:flex-start}.temporary-credentials{grid-template-columns:1fr}}@media (max-width:560px){.access-manager{border-radius:22px;width:calc(100vw - 16px);max-height:calc(100vh - 16px)}.access-manager-header{padding:22px 16px 18px}.access-manager-body{padding:16px}.access-section-heading{flex-direction:column;align-items:stretch}.access-account{grid-template-columns:1fr}.access-account .member-avatar,.access-role-select,.access-account-actions{grid-column:1}.access-events p{grid-template-columns:1fr}}
