*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{color-scheme:light;--color-primary: #2563eb;--color-primary-dark: #1d4ed8;--color-primary-light: #60a5fa;--color-primary-soft: #dbeafe;--color-accent: #0891b2;--color-accent-light: #22d3ee;--color-bg: #eef6ff;--color-bg-card: #ffffff;--color-bg-muted: #e7f0fb;--color-bg-soft: #f8fbff;--color-bg-dark: #0f172a;--color-text: #0f172a;--color-text-light: #475569;--color-text-inverse: #ffffff;--color-border: #c7d9ee;--color-input-bg: #ffffff;--color-input-border: #adc3dd;--color-hero-overlay: rgba(15, 23, 42, .58);--color-gender-male-line: #05aeea;--color-gender-female-line: #ff5e6d;--color-gender-neutral-line: #94a3b8;--color-gender-male-fill: #1877f2;--color-gender-female-fill: #f3425f;--color-modal-bg: #edf5ff;--color-modal-rail: #dcecff;--color-modal-body: #f8fbff;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .1);--shadow-md: 0 2px 8px rgba(0, 0, 0, .12);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .15);--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--font-script: "Noto Sans";--font-body: var(--font-script), "Noto Sans", "Segoe UI", Helvetica, Arial, sans-serif;--font-heading: var(--font-script), "Noto Serif", Georgia, "Times New Roman", serif;--max-width: 1100px;--transition: .2s ease}:root[data-theme=dark]{color-scheme:dark;--color-primary: #60a5fa;--color-primary-dark: #3b82f6;--color-primary-light: #bfdbfe;--color-primary-soft: #172554;--color-accent: #22d3ee;--color-accent-light: #67e8f9;--color-bg: #07111f;--color-bg-card: #0f1b2d;--color-bg-muted: #102238;--color-bg-soft: #0b1627;--color-bg-dark: #020617;--color-text: #e5eefb;--color-text-light: #9fb3c8;--color-text-inverse: #020617;--color-border: #203a5f;--color-input-bg: #0b1627;--color-input-border: #31517a;--color-hero-overlay: rgba(2, 6, 23, .76);--color-modal-bg: #0b1627;--color-modal-rail: #102238;--color-modal-body: #0f1b2d;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .34);--shadow-md: 0 2px 8px rgba(0, 0, 0, .42);--shadow-lg: 0 12px 34px rgba(0, 0, 0, .48)}html{scroll-behavior:smooth}body{font-family:var(--font-body);color:var(--color-text);background:var(--color-bg);line-height:1.6;min-height:100vh;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition)}a:hover{color:var(--color-primary-dark);text-decoration:underline}img{max-width:100%;height:auto;display:block}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);line-height:1.2;color:var(--color-text);font-weight:700}button{cursor:pointer;font-family:var(--font-body)}input,select,textarea{font-family:var(--font-body);font-size:1rem}.container{max-width:var(--max-width);margin:0 auto;padding:0 1rem;width:100%}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.6rem 1.25rem;border-radius:var(--radius-sm);font-weight:600;font-size:.9375rem;border:none;transition:all var(--transition);text-decoration:none}.btn:hover{text-decoration:none}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-dark);color:#fff}.btn-secondary{background:var(--color-bg-muted);color:var(--color-text);border:none}.btn-secondary:hover{background:var(--color-border);color:var(--color-text)}.btn-danger{border:1px solid color-mix(in srgb,#dc2626 48%,var(--color-border));background:#fee2e2;color:#991b1b}.btn-danger:hover,.btn-danger:focus-visible{background:#dc2626;color:#fff}.btn-accent{background:var(--color-accent);color:#fff}.btn-accent:hover{background:var(--color-accent-light)}.tree-list-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem}.tree-management-item.active{border-color:color-mix(in srgb,var(--color-primary) 42%,var(--color-border));background:color-mix(in srgb,var(--color-primary-soft) 44%,var(--color-bg-card))}.tree-list-summary{display:grid;gap:.15rem;min-width:0}.tree-list-summary strong,.tree-list-summary span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-list-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.tree-list-actions .btn{padding:.42rem .7rem;font-size:.8rem}.visibility-toggle{display:inline-flex;align-items:center;gap:.55rem;min-height:2.15rem;padding:.25rem .7rem .25rem .28rem;border:1px solid color-mix(in srgb,var(--color-border) 62%,var(--color-text-light));border-radius:999px;background:color-mix(in srgb,var(--color-bg-muted) 72%,var(--color-bg-card));color:var(--color-text);font-size:.8rem;font-weight:800;cursor:pointer;box-shadow:var(--shadow-sm)}.visibility-toggle input{position:absolute;inline-size:1px;block-size:1px;opacity:0;pointer-events:none}.visibility-toggle-track{position:relative;width:2.8rem;height:1.55rem;border-radius:999px;background:color-mix(in srgb,var(--color-text-light) 42%,var(--color-bg-muted));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--color-text-light) 28%,transparent);transition:background .18s ease,box-shadow .18s ease}.visibility-toggle-track span{position:absolute;top:.2rem;left:.2rem;width:1.15rem;height:1.15rem;border-radius:50%;background:var(--color-bg-card);box-shadow:0 1px 3px #0f172a40;transition:transform .18s ease}.visibility-toggle input:checked+.visibility-toggle-track{background:color-mix(in srgb,#16a34a 72%,var(--color-primary));box-shadow:inset 0 0 0 1px color-mix(in srgb,#bbf7d0 38%,transparent)}.visibility-toggle input:checked+.visibility-toggle-track span{transform:translate(1.25rem)}.visibility-toggle input:focus-visible+.visibility-toggle-track{outline:2px solid var(--color-primary);outline-offset:2px}.visibility-toggle-state{min-width:3.45rem;text-align:left}.tree-inline-form{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.55rem;align-items:end}.tree-inline-form label{display:grid;gap:.25rem;color:var(--color-text-light);font-size:.78rem;font-weight:800}.tree-inline-form input{width:100%;min-height:2.1rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.45rem .6rem;background:var(--color-input-bg);color:var(--color-text);font:inherit}.tree-inline-form .btn{min-height:2.1rem;align-self:end}.tree-delete-note{grid-column:1 / -1;color:var(--color-text-light)}.checkbox-row{display:flex!important;flex-direction:row!important;align-items:center;gap:.5rem;color:var(--color-text);font-weight:600}.checkbox-row input{width:auto}.card{background:var(--color-bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);overflow:hidden;transition:all var(--transition)}.card:hover{box-shadow:var(--shadow-md)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-light)}.portal-signup,.portal-shell{min-height:calc(100vh - 56px);background:var(--color-bg)}.portal-signup{--home-hex-line: color-mix(in srgb, var(--color-primary) 13%, transparent);--home-hex-fill: color-mix(in srgb, var(--color-accent-light) 6%, transparent);position:relative;display:grid;grid-template-columns:minmax(0,620px) minmax(320px,460px);gap:1.5rem;width:100%;max-width:none;min-height:calc(100svh - 56px);margin:0;padding:3rem max(1rem,calc((100vw - 1180px)/2)) 3rem;align-items:start;justify-content:center;overflow:hidden;isolation:isolate;background:radial-gradient(ellipse 90% 80% at 50% 45%,transparent 38%,var(--color-bg) 100%),radial-gradient(circle at 28% 22%,color-mix(in srgb,var(--color-primary-light) 24%,transparent) 0 15rem,transparent 30rem),radial-gradient(circle at 76% 30%,color-mix(in srgb,var(--color-accent-light) 24%,transparent) 0 13rem,transparent 29rem),linear-gradient(135deg,color-mix(in srgb,var(--color-bg-card) 72%,var(--color-bg)),var(--color-bg))}.portal-signup:before,.portal-signup:after{content:"";position:absolute;pointer-events:none;z-index:-1}.portal-signup:before{inset:0;background-image:linear-gradient(30deg,var(--home-hex-line) 12%,transparent 12.5%,transparent 87%,var(--home-hex-line) 87.5%,var(--home-hex-line)),linear-gradient(150deg,var(--home-hex-line) 12%,transparent 12.5%,transparent 87%,var(--home-hex-line) 87.5%,var(--home-hex-line)),linear-gradient(30deg,var(--home-hex-line) 12%,transparent 12.5%,transparent 87%,var(--home-hex-line) 87.5%,var(--home-hex-line)),linear-gradient(150deg,var(--home-hex-line) 12%,transparent 12.5%,transparent 87%,var(--home-hex-line) 87.5%,var(--home-hex-line)),linear-gradient(60deg,transparent 25%,var(--home-hex-fill) 25.5%,var(--home-hex-fill) 75%,transparent 75.5%,transparent),linear-gradient(60deg,transparent 25%,var(--home-hex-fill) 25.5%,var(--home-hex-fill) 75%,transparent 75.5%,transparent);background-position:0 0,0 0,48px 84px,48px 84px,0 0,48px 84px;background-size:96px 168px;mask-image:radial-gradient(ellipse 72% 62% at 50% 34%,#000 0 42%,transparent 78%);opacity:.32}.portal-signup:after{inset:-38% -18%;background:linear-gradient(110deg,transparent 30%,color-mix(in srgb,#ffffff 32%,transparent) 43%,transparent 58%),radial-gradient(circle at 58% 44%,color-mix(in srgb,var(--color-accent-light) 18%,transparent),transparent 24rem);opacity:.58;filter:blur(.2px);transform:translate(-34%) rotate(.001deg);animation:homepage-glaze 9s ease-in-out infinite}.portal-signup>*{position:relative;z-index:1}@keyframes homepage-glaze{0%,18%{transform:translate(-42%) rotate(.001deg)}58%,to{transform:translate(42%) rotate(.001deg)}}@media(prefers-reduced-motion:reduce){.portal-signup:before{animation:none}.portal-signup:after{animation:none;transform:translate(0) rotate(.001deg)}}:root[data-theme=dark] .portal-signup{--home-hex-line: color-mix(in srgb, var(--color-primary-light) 18%, transparent);--home-hex-fill: color-mix(in srgb, var(--color-accent) 8%, transparent);background:radial-gradient(ellipse 90% 80% at 50% 45%,transparent 36%,var(--color-bg) 100%),radial-gradient(circle at 24% 18%,color-mix(in srgb,var(--color-primary) 34%,transparent) 0 16rem,transparent 32rem),radial-gradient(circle at 78% 28%,color-mix(in srgb,var(--color-accent) 30%,transparent) 0 14rem,transparent 30rem),linear-gradient(135deg,#090a0d,var(--color-bg) 55%,#020617)}:root[data-theme=dark] .portal-signup:before{opacity:.4}:root[data-theme=dark] .portal-signup:after{opacity:.38;background:linear-gradient(110deg,transparent 30%,color-mix(in srgb,#ffffff 18%,transparent) 43%,transparent 58%),radial-gradient(circle at 58% 44%,color-mix(in srgb,var(--color-accent) 22%,transparent),transparent 24rem)}.portal-panel,.portal-sidebar{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:1rem}.signup-copy{padding:.5rem 0}.signup-auth-card{position:sticky;top:4.5rem;display:grid;gap:1rem;padding:1.5rem;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);align-content:start}.portal-signup .portal-form{gap:.85rem;align-content:start}.portal-signup .portal-form h2{font-size:1.35rem}.portal-signup .portal-form .btn{margin-top:.35rem;padding:.72rem 1.25rem}.link-button{justify-self:center;border:0;padding:.25rem;background:none;color:var(--color-primary);font-size:.86rem;font-weight:700}.link-button:hover,.link-button:focus-visible{color:var(--color-primary-dark);text-decoration:underline}.signup-lede{max-width:46ch;font-size:1.03rem;line-height:1.65}.signup-highlights{display:grid;gap:.75rem;width:min(100%,34rem);margin-top:1.5rem;padding:0;list-style:none}.signup-highlights li{display:grid;grid-template-columns:1.45rem minmax(0,1fr);gap:.7rem;align-items:start}.signup-highlights li>span:last-child{display:grid;gap:.1rem;min-width:0}.signup-highlight-check{display:grid;place-items:center;width:1.45rem;height:1.45rem;margin-top:.1rem;border-radius:50%;background:color-mix(in srgb,var(--color-accent) 16%,var(--color-bg-card));color:var(--color-accent);font-size:.8rem;font-weight:800}.signup-highlights strong{font-size:.96rem;line-height:1.3}.signup-highlights small{color:var(--color-text-light);font-size:.85rem;line-height:1.45}.signup-copy h1{font-family:"Fraunces",var(--font-heading);font-optical-sizing:auto;font-weight:700;font-size:clamp(2rem,5vw,3.4rem);max-width:12ch;margin-bottom:1rem;letter-spacing:-.02em;line-height:1.05}.signup-copy p,.activity-item span,.media-tile span,.form-note,.portal-identity span,.metric span{color:var(--color-text-light)}.home-tree-links{display:flex;flex-wrap:wrap;gap:.5rem}.home-tree-links-label{margin:1.5rem 0 .5rem;color:var(--color-text-light);font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.demo-tree-link{width:fit-content;padding:.45rem .85rem;border:1px solid var(--color-border);border-radius:999px;background:var(--color-bg-card);color:var(--color-text);font-size:.82rem;font-weight:700}.demo-tree-link:hover,.demo-tree-link:focus-visible{border-color:var(--color-primary);background:var(--color-primary-soft);color:var(--color-primary-dark)}.signup-stats{margin-top:2rem;display:grid;grid-template-columns:repeat(4,minmax(4.8rem,1fr));width:min(100%,32rem);gap:.45rem;padding:.9rem 1.1rem;background:color-mix(in srgb,var(--color-primary-soft) 72%,var(--color-bg-card));border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.signup-stat{display:grid;gap:.08rem;min-width:0;padding-left:.75rem;border-left:1px solid color-mix(in srgb,var(--color-primary) 22%,transparent)}.signup-stat:first-child{padding-left:0;border-left:0}.signup-stat span{font-size:1.55rem;line-height:1.05;font-weight:800;color:var(--color-accent)}.signup-stat small{color:var(--color-text-light);font-size:.7rem;font-weight:700;line-height:1.15;text-transform:uppercase;letter-spacing:.04em}.auth-actions{display:grid;grid-template-columns:1fr 1fr;gap:.25rem;padding:.28rem;background:var(--color-bg-muted);border-radius:var(--radius-md)}.auth-actions button{border:0;border-radius:var(--radius-sm);padding:.62rem 1rem;background:transparent;color:var(--color-text-light);font-weight:800;transition:background var(--transition),color var(--transition)}.auth-actions button:hover{color:var(--color-text)}.auth-actions button.active{background:var(--color-bg-card);color:var(--color-primary-dark);box-shadow:var(--shadow-sm)}.portal-shell{display:grid;grid-template-columns:264px minmax(0,1fr);gap:1.25rem;padding:1.25rem max(1rem,calc((100vw - 1560px)/2))}.portal-auth-loading{display:grid;min-height:42vh;place-items:center;color:var(--color-text-light);font-weight:700}.portal-sidebar{align-self:start;position:sticky;top:72px;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:.85rem;max-height:calc(100vh - 88px);padding:.85rem;overflow:hidden}.portal-nav-toggle{display:none;align-items:center;gap:.55rem;width:100%;padding:.7rem .9rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-card);color:var(--color-text);font-weight:700;cursor:pointer}.portal-sidebar-backdrop{display:none;border:0;padding:0}.portal-identity{display:flex;gap:.75rem;align-items:center;padding:.6rem;border-radius:var(--radius-md);background:color-mix(in srgb,var(--color-primary-soft) 46%,var(--color-bg-card));color:var(--color-text);text-decoration:none;transition:background var(--transition)}.portal-identity:hover,.portal-identity:focus-visible{background:var(--color-primary-soft);color:var(--color-text);text-decoration:none}.portal-identity-copy{display:grid;gap:.18rem;min-width:0}.portal-user-name,.portal-family-name{display:block;line-height:1.25;overflow:hidden;text-overflow:ellipsis}.portal-user-name{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;color:var(--color-text);font-size:.94rem}.portal-family-name{white-space:nowrap;font-size:.82rem}.portal-avatar{width:44px;height:44px;border-radius:50%;background:var(--color-accent);color:#fff;display:grid;place-items:center;font-weight:800;flex:0 0 auto}.portal-avatar.small{width:34px;height:34px;font-size:.82rem}.portal-tabs,.portal-list,.portal-stack,.portal-form,.portal-main{display:grid;gap:.75rem}.portal-main{align-content:start;gap:1rem}.portal-tabs{gap:1rem;margin:0;min-height:0;align-content:start;overflow-y:auto}.portal-tab-group{display:grid;gap:.15rem}.portal-tab-group-label{margin:0 0 .3rem .75rem;color:var(--color-text-light);font-size:.66rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;opacity:.85}.portal-tabs a{position:relative;display:flex;align-items:center;gap:.65rem;text-align:left;padding:.58rem .75rem;border:0;background:transparent;border-radius:var(--radius-sm);color:var(--color-text-light);font-size:.92rem;font-weight:600;text-decoration:none;transition:background var(--transition),color var(--transition)}.portal-tab-icon{width:1.15rem;height:1.15rem;flex:0 0 auto;opacity:.9}.portal-tabs a:hover{background:color-mix(in srgb,var(--color-primary-soft) 60%,transparent);color:var(--color-text);text-decoration:none}.portal-tabs a.active{background:var(--color-primary-soft);color:var(--color-primary-dark);font-weight:700;text-decoration:none}.portal-tabs a.active:before{content:"";position:absolute;left:0;top:.42rem;bottom:.42rem;width:3px;border-radius:0 3px 3px 0;background:var(--color-primary)}.portal-sidebar-footer{padding-top:.7rem;border-top:1px solid var(--color-border)}.portal-signout{display:flex;align-items:center;gap:.65rem;width:100%;padding:.58rem .75rem;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-light);font-size:.92rem;font-weight:700;transition:background var(--transition),color var(--transition)}.portal-signout svg{width:1.15rem;height:1.15rem;flex:0 0 auto}.portal-signout:hover,.portal-signout:focus-visible{background:color-mix(in srgb,#dc2626 12%,transparent);color:#b91c1c}:root[data-theme=dark] .portal-signout:hover,:root[data-theme=dark] .portal-signout:focus-visible{color:#fca5a5}.portal-topbar{position:relative;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1rem;display:flex;justify-content:space-between;gap:1rem;align-items:center;overflow:hidden}.portal-topbar.has-overview-banner{min-height:6.25rem;background:radial-gradient(circle at 12% 18%,rgba(231,190,105,.28),transparent 30%),radial-gradient(circle at 86% 74%,rgba(47,123,96,.35),transparent 34%),linear-gradient(135deg,#14231d,#17362f 52%,#3a2f1f);border-color:color-mix(in srgb,var(--color-primary) 34%,var(--color-border));box-shadow:var(--shadow-lg)}.portal-topbar:not(.has-overview-banner){background:radial-gradient(circle at 82% 42%,color-mix(in srgb,var(--color-primary-soft) 66%,transparent),transparent 42%),linear-gradient(135deg,var(--color-bg-card) 0%,color-mix(in srgb,var(--color-bg-card) 76%,var(--color-bg-soft)) 100%)}.portal-topbar.has-overview-banner:after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,#020617d1,#0206177a 48%,#020617b3),linear-gradient(0deg,rgba(2,6,23,.52),transparent 54%);pointer-events:none}:root:not([data-theme=dark]) .portal-topbar.has-overview-banner:not(.has-uploaded-banner){background:radial-gradient(circle at 12% 18%,rgba(224,242,254,.92),transparent 34%),radial-gradient(circle at 86% 74%,rgba(204,251,241,.78),transparent 38%),linear-gradient(135deg,#fff,#f2f8ff 54%,#edfdf8);border-color:#bfd6ee;box-shadow:var(--shadow-md)}:root:not([data-theme=dark]) .portal-topbar.has-overview-banner:not(.has-uploaded-banner):after{background:linear-gradient(90deg,#ffffffe6,#ffffff94 48%,#ffffffb8),linear-gradient(0deg,rgba(255,255,255,.52),transparent 58%)}.portal-topbar-genealogy{position:absolute;inset:0;z-index:0;display:flex;align-items:center;justify-content:center;padding:0 1.5rem;opacity:.4;pointer-events:none;mask-image:linear-gradient(90deg,transparent,#000 22%,#000 52%,transparent 82%)}.portal-topbar-genealogy svg{width:min(60%,620px);height:100%;min-width:0}.genealogy-line{fill:none;stroke:#f7e7c394;stroke-linecap:round;stroke-width:5}.genealogy-line.main{stroke:#f7e7c3c7;stroke-width:7}.genealogy-node{fill:#fffaeb29;stroke:#f8ebcecc;stroke-width:4}.genealogy-node.primary{fill:#e7be6947;stroke:#ffecbee6}:root:not([data-theme=dark]) .portal-topbar.has-overview-banner:not(.has-uploaded-banner) .genealogy-line{stroke:#0891b26b}:root:not([data-theme=dark]) .portal-topbar.has-overview-banner:not(.has-uploaded-banner) .genealogy-line.main{stroke:#2563eb80}:root:not([data-theme=dark]) .portal-topbar.has-overview-banner:not(.has-uploaded-banner) .genealogy-node{fill:#dbeafe9e;stroke:#0891b294}:root:not([data-theme=dark]) .portal-topbar.has-overview-banner:not(.has-uploaded-banner) .genealogy-node.primary{fill:#ccfbf1b8;stroke:#2563eb9e}.portal-topbar-banner{position:absolute;inset:0;z-index:0}.portal-topbar-banner img{width:100%;height:100%;min-height:0;object-fit:cover;object-position:center;filter:saturate(1.08) contrast(1.02)}.portal-topbar-graphic{position:absolute;inset:0;z-index:0;display:flex;align-items:center;justify-content:center;padding:0 14rem 0 12rem;pointer-events:none;opacity:.82}.portal-topbar-graphic svg{width:min(100%,320px);min-width:12rem;height:100%}.banner-graphic-line,.banner-graphic-light{fill:none;stroke-linecap:round;stroke-linejoin:round}.banner-graphic-line{stroke:color-mix(in srgb,var(--color-primary) 48%,transparent);stroke-width:4}.banner-graphic-line.main{stroke:color-mix(in srgb,var(--color-primary) 64%,transparent);stroke-width:5}.banner-graphic-light{stroke:var(--color-bg-card);stroke-width:4}.banner-graphic-fill,.banner-graphic-soft,.banner-graphic-node{stroke-width:3}.banner-graphic-fill{fill:color-mix(in srgb,var(--color-primary-soft) 76%,var(--color-bg-card));stroke:color-mix(in srgb,var(--color-primary) 40%,var(--color-border))}.banner-graphic-soft{fill:color-mix(in srgb,var(--color-accent-light) 24%,var(--color-bg-card));stroke:color-mix(in srgb,var(--color-accent) 34%,var(--color-border))}.banner-graphic-node{fill:color-mix(in srgb,var(--color-bg-card) 58%,var(--color-primary-soft));stroke:color-mix(in srgb,var(--color-primary) 42%,var(--color-border))}.banner-graphic-node.primary,.banner-graphic-accent{fill:color-mix(in srgb,var(--color-accent-light) 64%,var(--color-bg-card));stroke:color-mix(in srgb,var(--color-accent) 56%,var(--color-border))}.banner-graphic-accent{stroke-width:3}:root[data-theme=dark] .portal-topbar:not(.has-overview-banner){background:radial-gradient(circle at 82% 42%,color-mix(in srgb,var(--color-primary-soft) 74%,transparent),transparent 44%),linear-gradient(135deg,var(--color-bg-card) 0%,color-mix(in srgb,var(--color-bg-card) 78%,var(--color-bg-soft)) 100%)}:root[data-theme=dark] .portal-topbar-graphic{opacity:.72}:root[data-theme=dark] .banner-graphic-light{stroke:var(--color-bg-dark)}.portal-topbar-title,.portal-actions{position:relative;z-index:2}.portal-topbar.has-overview-banner .portal-kicker,.portal-topbar.has-overview-banner h1{color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.42)}:root:not([data-theme=dark]) .portal-topbar.has-overview-banner:not(.has-uploaded-banner) .portal-kicker,:root:not([data-theme=dark]) .portal-topbar.has-overview-banner:not(.has-uploaded-banner) h1{color:var(--color-text);text-shadow:none}.portal-topbar h1{font-size:1.55rem}.portal-topbar-subtitle{max-width:46ch;margin-top:.25rem;color:var(--color-text-light);font-size:.88rem;line-height:1.45}.portal-topbar.has-overview-banner .portal-topbar-subtitle{color:#ffffffdb;text-shadow:0 2px 12px rgba(0,0,0,.42)}:root:not([data-theme=dark]) .portal-topbar.has-overview-banner:not(.has-uploaded-banner) .portal-topbar-subtitle{color:var(--color-text-light);text-shadow:none}.portal-kicker{text-transform:uppercase;letter-spacing:.12em;color:var(--color-accent);font-size:.74rem;font-weight:800}.portal-actions{display:grid;grid-auto-flow:column;gap:.75rem}.portal-tree-select{min-width:180px;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.55rem .75rem;background:var(--color-input-bg);color:var(--color-text);font-weight:700}.portal-status-region:empty{display:none}.portal-status{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.7rem;align-items:center;padding:.7rem .85rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-card);box-shadow:var(--shadow-sm);animation:portal-status-in .22s ease}@keyframes portal-status-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.portal-status{animation:none}}.portal-status p{margin:0;font-size:.92rem;font-weight:600;color:var(--color-text)}.portal-status-icon{display:grid;place-items:center;width:1.4rem;height:1.4rem;border-radius:50%;font-size:.8rem;font-weight:800;color:#fff}.portal-status-dismiss{border:0;border-radius:var(--radius-sm);padding:.1rem .45rem;background:transparent;color:var(--color-text-light);font-size:1.15rem;line-height:1.2}.portal-status-dismiss:hover,.portal-status-dismiss:focus-visible{background:var(--color-bg-muted);color:var(--color-text)}.portal-status.tone-success{border-color:color-mix(in srgb,#16a34a 45%,var(--color-border));background:color-mix(in srgb,#dcfce7 46%,var(--color-bg-card))}.portal-status.tone-success .portal-status-icon{background:#16a34a}.portal-status.tone-error{border-color:color-mix(in srgb,#dc2626 45%,var(--color-border));background:color-mix(in srgb,#fee2e2 46%,var(--color-bg-card))}.portal-status.tone-error .portal-status-icon{background:#dc2626}.portal-status.tone-busy{border-color:color-mix(in srgb,var(--color-primary) 40%,var(--color-border));background:color-mix(in srgb,var(--color-primary-soft) 52%,var(--color-bg-card))}.portal-status.tone-busy .portal-status-icon{width:1.15rem;height:1.15rem;background:transparent;border:2px solid color-mix(in srgb,var(--color-primary) 30%,transparent);border-top-color:var(--color-primary);animation:portal-spin .7s linear infinite}@keyframes portal-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.portal-status.tone-busy .portal-status-icon{animation:none}}:root[data-theme=dark] .portal-status.tone-success{border-color:color-mix(in srgb,#22c55e 46%,var(--color-border));background:color-mix(in srgb,#14532d 52%,var(--color-bg-card))}:root[data-theme=dark] .portal-status.tone-error{border-color:color-mix(in srgb,#ef4444 46%,var(--color-border));background:color-mix(in srgb,#7f1d1d 46%,var(--color-bg-card))}:root[data-theme=dark] .portal-status.tone-busy{background:color-mix(in srgb,var(--color-primary-soft) 62%,var(--color-bg-card))}.form-note.tone-error{color:#b91c1c;font-weight:700}.form-note.tone-success{color:#15803d;font-weight:700}:root[data-theme=dark] .form-note.tone-error{color:#fca5a5}:root[data-theme=dark] .form-note.tone-success{color:#86efac}.gedcom-progress{display:grid;gap:.65rem;margin-top:.85rem;padding:.8rem;border:1px solid color-mix(in srgb,var(--color-primary) 32%,var(--color-border));border-radius:var(--radius-md);background:color-mix(in srgb,var(--color-primary-soft) 42%,var(--color-bg-card))}.gedcom-progress[data-state=complete]{border-color:color-mix(in srgb,#15803d 42%,var(--color-border));background:color-mix(in srgb,#dcfce7 52%,var(--color-bg-card))}.gedcom-progress[data-state=error]{border-color:color-mix(in srgb,#dc2626 42%,var(--color-border));background:color-mix(in srgb,#fee2e2 52%,var(--color-bg-card))}.gedcom-progress-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.gedcom-progress-header strong{color:var(--color-text);font-size:.9rem;line-height:1.25}.gedcom-progress-header span{color:var(--color-text-light);font-size:.78rem;font-weight:800}.gedcom-progress-track{height:.55rem;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--color-border) 70%,transparent)}.gedcom-progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--color-primary),var(--color-accent));transition:width .28s ease}.gedcom-progress[data-state=complete] .gedcom-progress-track span{background:#16a34a}.gedcom-progress[data-state=error] .gedcom-progress-track span{background:#dc2626}.gedcom-progress-messages{display:grid;gap:.28rem;margin:0;padding-left:1.05rem;color:var(--color-text-light);font-size:.78rem}.portal-panel{padding:1.25rem 1.35rem 1.35rem;border-radius:var(--radius-lg)}.portal-panel h2{font-size:1.08rem;margin-bottom:0}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.05rem;padding-bottom:.85rem;border-bottom:1px solid color-mix(in srgb,var(--color-border) 62%,transparent)}.panel-head-copy{display:grid;gap:.22rem;min-width:0}.panel-head-copy p{max-width:62ch;color:var(--color-text-light);font-size:.84rem;line-height:1.45}.panel-head-action{flex:0 0 auto}.portal-empty{display:grid;justify-items:center;gap:.3rem;padding:2rem 1.25rem;border:1px dashed var(--color-border);border-radius:var(--radius-md);background:color-mix(in srgb,var(--color-bg-muted) 35%,transparent);color:var(--color-text-light);font-size:.86rem;text-align:center}.portal-empty strong{color:var(--color-text);font-size:.95rem}.portal-empty span{max-width:44ch;line-height:1.5}.portal-overview-columns{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:1rem;align-items:start}.portal-welcome-panel,.portal-quick-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem}.portal-quick-actions{background:radial-gradient(circle at 88% 20%,color-mix(in srgb,var(--color-accent-light) 20%,transparent),transparent 46%),linear-gradient(135deg,color-mix(in srgb,var(--color-primary-soft) 52%,var(--color-bg-card)),var(--color-bg-card))}.portal-quick-actions h2{margin-bottom:0}.portal-welcome-panel h2{margin-bottom:.45rem}.portal-welcome-panel p:last-child{margin:0;color:var(--color-text-light);line-height:1.55}.portal-welcome-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.6rem;flex:0 0 auto}.portal-form h2{font-size:1.2rem}.portal-grid{display:grid;grid-template-columns:minmax(320px,420px) minmax(0,1fr);gap:1rem;align-items:start}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.admin-metric-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-private-trees{grid-template-columns:repeat(auto-fill,minmax(19rem,1fr))}.admin-tree-link{align-items:center}.admin-tree-visibility{flex:0 0 auto;padding:.15rem .45rem;border-radius:999px;background:var(--color-bg-muted);color:var(--color-text-light);font-size:.66rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.admin-tree-visibility.is-public{background:color-mix(in srgb,#16a34a 16%,var(--color-bg-card));color:#15803d}.settings-grid{grid-template-columns:minmax(320px,1.15fr) minmax(280px,.85fr)}.settings-avatar-row{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.settings-avatar{width:5.5rem;height:5.5rem;font-size:1.35rem}.settings-contact-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-bottom:1rem}.settings-contact-card div{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-muted);padding:.75rem .85rem}.settings-contact-card span{display:block;color:var(--color-text-light);font-size:.78rem;margin-bottom:.25rem}.settings-contact-card strong{display:block;color:var(--color-text);font-size:.95rem;overflow-wrap:anywhere}.settings-form textarea{min-height:7rem;resize:vertical}.email-verification-card{display:grid;gap:.45rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.85rem;background:var(--color-bg-muted)}.email-verification-card strong{color:var(--color-primary)}.email-verification-card span{color:var(--color-text-light);font-size:.88rem;line-height:1.45}.email-verification-card.unverified{border-color:color-mix(in srgb,#b45309 48%,var(--color-border));background:color-mix(in srgb,#fef3c7 48%,var(--color-bg-card))}.email-verification-card.unverified strong{color:#92400e}.email-verification-card .btn{justify-self:start}.metric,.activity-item,.member-tile,.media-tile,.stat-list{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-card);padding:.85rem}.metric{position:relative;overflow:hidden;padding:1rem 1rem .9rem;background:linear-gradient(150deg,color-mix(in srgb,var(--color-primary-soft) 40%,var(--color-bg-card)),var(--color-bg-card) 62%);transition:border-color var(--transition),transform var(--transition),box-shadow var(--transition)}.metric:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:linear-gradient(180deg,var(--color-primary),var(--color-accent))}.metric:hover{border-color:color-mix(in srgb,var(--color-primary) 40%,var(--color-border));transform:translateY(-2px);box-shadow:var(--shadow-md)}.metric span{font-size:.76rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.activity-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.65rem;align-items:center;transition:border-color var(--transition),background var(--transition)}.activity-list .activity-item:hover,.portal-list .activity-item:hover{border-color:color-mix(in srgb,var(--color-primary) 34%,var(--color-border));background:color-mix(in srgb,var(--color-primary-soft) 22%,var(--color-bg-card))}.admin-tree-link{color:inherit;text-decoration:none;transition:border-color .18s ease,transform .18s ease}.admin-tree-link:hover{border-color:color-mix(in srgb,var(--color-primary) 44%,var(--color-border));transform:translateY(-1px)}.activity-avatar{width:2.35rem;height:2.35rem;border-radius:50%;object-fit:cover;background:var(--color-bg-muted)}.anniversary-activity{border-color:color-mix(in srgb,#be123c 32%,var(--color-border));background:linear-gradient(135deg,color-mix(in srgb,#fff1f2 68%,var(--color-bg-card)),var(--color-bg-card))}:root[data-theme=dark] .anniversary-activity{background:linear-gradient(135deg,color-mix(in srgb,#4c0519 46%,var(--color-bg-card)),var(--color-bg-card))}.activity-couple-avatar{display:grid;grid-template-columns:2.25rem 1.1rem 2.25rem;gap:.2rem;align-items:center;width:5.8rem;min-height:2.25rem}.activity-couple-avatar img{width:2.25rem;height:2.25rem;border:2px solid var(--color-bg-card);border-radius:50%;object-fit:cover;background:var(--color-bg-muted);box-shadow:0 .18rem .65rem #0f172a1f}.activity-heart{display:grid;place-items:center;width:1.1rem;height:1.1rem;border-radius:50%;background:#be123c;color:#fff;font-size:.68rem;line-height:1;box-shadow:0 .1rem .35rem #be123c57}.activity-thumbnail{width:3.35rem;height:3.35rem;border-radius:var(--radius-sm);object-fit:cover;background:var(--color-bg-muted)}.activity-placeholder{display:grid;place-items:center;width:2.35rem;height:2.35rem;border-radius:50%;background:color-mix(in srgb,var(--color-primary) 14%,var(--color-bg-muted));color:var(--color-primary);font-weight:900}.activity-related-avatar{width:2rem;height:2rem;border:2px solid var(--color-bg-card);border-radius:50%;object-fit:cover;margin-left:auto}.activity-copy{display:grid;gap:.15rem;min-width:0}.metric strong{display:block;margin-bottom:.15rem;font-family:var(--font-heading);font-size:1.95rem;line-height:1.05;color:var(--color-primary-dark)}:root[data-theme=dark] .metric strong{color:var(--color-primary-light)}.portal-form{gap:.9rem}.portal-form label{display:grid;gap:.32rem;color:var(--color-text);font-size:.82rem;font-weight:700}.portal-form input,.portal-form select,.portal-form textarea{width:100%;padding:.58rem .7rem;border:1px solid var(--color-input-border);border-radius:var(--radius-sm);background:var(--color-input-bg);color:var(--color-text);font:inherit;font-size:.9rem;font-weight:500;transition:border-color var(--transition),box-shadow var(--transition)}.portal-form label.checkbox-row{display:flex;align-items:center;gap:.55rem;font-weight:600}.portal-form label.checkbox-row input{width:auto;flex:0 0 auto;margin:0;accent-color:var(--color-primary)}.portal-form input:focus-visible,.portal-form select:focus-visible,.portal-form textarea:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 18%,transparent)}.portal-form input::placeholder,.portal-form textarea::placeholder{color:color-mix(in srgb,var(--color-text-light) 78%,transparent);font-weight:400}.portal-form textarea{min-height:5rem;resize:vertical}.portal-form>.btn{justify-self:start;margin-top:.2rem}.portal-form input:disabled{color:var(--color-text-light);background:var(--color-bg-muted);cursor:not-allowed}.member-grid,.media-grid,.stats-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem}.member-tile{display:flex;align-items:center;gap:.65rem;color:var(--color-text)}.member-tile-copy{min-width:0;flex:1 1 auto}.member-role-control{display:grid;gap:.18rem;margin-left:auto;color:var(--color-text-light);font-size:.68rem;font-weight:800;text-transform:uppercase}.member-role-control select{border:1px solid var(--color-border);border-radius:999px;background:var(--color-input-bg);color:var(--color-text);font:inherit;font-size:.78rem;font-weight:800;padding:.34rem 1.9rem .34rem .65rem;text-transform:none}.member-profile-tile{position:relative}.member-profile-link{display:flex;align-items:center;gap:.65rem;min-width:0;color:var(--color-text)}.family-profile-heading{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.8rem}.family-profile-heading h2{margin-bottom:0}.family-profile-heading span{color:var(--color-text-light);font-size:.82rem;font-weight:700;white-space:nowrap}.family-profile-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,240px);gap:.75rem;margin-bottom:1rem}.family-profile-controls label{display:grid;gap:.3rem;color:var(--color-text-light);font-size:.78rem;font-weight:800}.family-profile-controls input,.family-profile-controls select{width:100%;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-input-bg);color:var(--color-text);font:inherit;font-size:.92rem;padding:.72rem .8rem}.family-profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:.9rem}.family-profile-card{min-height:10.65rem;padding:1rem 4.7rem 1rem 1.05rem}.family-profile-link{width:100%;gap:1rem}.portal-avatar.small.family-profile-avatar{width:9.1rem;height:9.1rem;flex:0 0 auto}.family-profile-link span{display:grid;gap:.2rem;min-width:0}.family-profile-link strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.family-profile-link small{line-height:1.35}.family-profile-card .member-image-change{top:.78rem;left:.78rem}.family-profile-empty{margin:0;color:var(--color-text-light)}.invite-workspace{align-items:start}.invite-form{gap:1rem}.invite-search input{margin-top:.3rem}.invite-person-list{display:grid;gap:.65rem;max-height:28rem;overflow:auto;padding-right:.25rem}.invite-person-option{display:flex;align-items:center;gap:.75rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.7rem;background:var(--color-bg);cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.invite-person-option:hover,.invite-person-option.selected{border-color:color-mix(in srgb,var(--color-primary) 54%,var(--color-border));box-shadow:0 10px 24px color-mix(in srgb,var(--color-primary) 12%,transparent);transform:translateY(-1px)}.invite-person-option input{width:auto;flex:0 0 auto}.invite-person-avatar{width:3.5rem;height:3.5rem;flex:0 0 auto}.invite-person-copy{display:grid;gap:.18rem;min-width:0}.invite-person-copy strong,.invite-person-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.image-avatar{overflow:hidden}.image-avatar img{width:100%;height:100%;object-fit:cover}.member-image-change{position:absolute;top:.35rem;left:2.35rem}.member-tile small{display:block;margin-top:.15rem;color:var(--color-text-light)}.media-tile{display:grid;gap:.5rem;color:var(--color-text)}.media-tile img{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:var(--radius-sm)}.photo-gallery-panel{overflow:visible}.photo-gallery-sections{display:grid;gap:1rem}.photo-gallery-tabs{display:flex;flex-wrap:wrap;gap:.45rem;padding:.35rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-muted)}.photo-gallery-tabs button{display:inline-flex;align-items:center;gap:.45rem;min-height:2.2rem;padding:.46rem .78rem;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-light);font-weight:800}.photo-gallery-tabs button.active,.photo-gallery-tabs button:hover,.photo-gallery-tabs button:focus-visible{background:var(--color-bg-card);color:var(--color-primary-dark);box-shadow:var(--shadow-sm)}.photo-gallery-tabs span{color:inherit;font-size:.78rem;opacity:.72}.regular-photo-upload{display:grid;grid-template-columns:minmax(12rem,1.1fr) minmax(10rem,.8fr) minmax(12rem,1fr) auto;gap:.65rem;align-items:end;padding:.85rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-card);box-shadow:var(--shadow-sm)}.regular-photo-upload label{display:grid;gap:.25rem;color:var(--color-text-light);font-size:.78rem;font-weight:800}.regular-photo-upload input,.regular-photo-upload textarea{width:100%;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.45rem .55rem;background:var(--color-input-bg);color:var(--color-text);font:inherit}.regular-photo-upload .btn{min-height:2.25rem}.photo-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.photo-gallery-card{position:relative;display:block}.photo-gallery-tile{position:relative;display:block;height:16rem;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-panel-muted);color:#fff;box-shadow:var(--shadow-sm);transition:transform .18s ease,box-shadow .18s ease}.photo-gallery-tile:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.photo-gallery-tile img{width:100%;height:100%;object-fit:contain;background:#0f172a;display:block}.photo-gallery-tile span{position:absolute;left:0;right:0;bottom:0;display:grid;gap:.15rem;padding:1.2rem;background:linear-gradient(0deg,#0f172ac7,#0f172a00)}.photo-gallery-tile strong,.photo-gallery-tile small{color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.34)}.photo-gallery-tile strong{font-size:1.05rem}.photo-gallery-tile small{font-size:.78rem;text-transform:capitalize}.photo-gallery-actions{position:absolute;top:.55rem;right:.55rem;z-index:2;display:flex;gap:.35rem;align-items:start}.photo-caption-form{position:absolute;top:2.6rem;right:0;z-index:3;width:min(18rem,calc(100vw - 3rem));display:grid;gap:.45rem;padding:.75rem;border:1px solid rgba(255,255,255,.22);border-radius:var(--radius-md);background:#0f172af0;box-shadow:var(--shadow-md)}.photo-caption-form label{display:grid;gap:.22rem;color:#fff;font-size:.78rem;font-weight:800}.photo-caption-form input,.photo-caption-form textarea{width:100%;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.45rem .55rem;background:var(--color-input-bg);color:var(--color-text);font:inherit}.photo-caption-form .btn{padding:.42rem .7rem;font-size:.8rem}.photo-caption-actions{display:flex;justify-content:end;gap:.4rem}.photo-edit-button,.photo-delete-button{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;height:2rem;border:1px solid rgba(255,255,255,.32);border-radius:999px;background:#0f172ad6;color:#fff;font-size:.8rem;font-weight:800;box-shadow:0 .5rem 1rem #0f172a38;cursor:pointer}.photo-delete-button{padding:0 .7rem}.photo-edit-button:hover,.photo-edit-button:focus-visible,.photo-delete-button:hover,.photo-delete-button:focus-visible{background:#0f172af5;border-color:#ffffff94}.profile-tag-page{max-width:960px}.profile-tag-form{margin-bottom:1rem}.profile-cropper{display:grid;gap:1rem}.profile-cropper-stage{position:relative;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-panel-muted)}.profile-cropper-stage img{display:block;width:100%;max-height:520px;object-fit:contain}.profile-crop-box{position:absolute;border:2px solid var(--color-accent);box-shadow:0 0 0 999px #00000061;cursor:move;pointer-events:auto}.profile-crop-handle{position:absolute;width:.78rem;height:.78rem;border:2px solid var(--color-bg-card);border-radius:50%;background:var(--color-accent);box-shadow:0 2px 10px #00000042;pointer-events:auto}.profile-crop-handle-n{top:-.45rem;left:50%;transform:translate(-50%);cursor:ns-resize}.profile-crop-handle-ne{top:-.45rem;right:-.45rem;cursor:nesw-resize}.profile-crop-handle-e{top:50%;right:-.45rem;transform:translateY(-50%);cursor:ew-resize}.profile-crop-handle-se{right:-.45rem;bottom:-.45rem;cursor:nwse-resize}.profile-crop-handle-s{bottom:-.45rem;left:50%;transform:translate(-50%);cursor:ns-resize}.profile-crop-handle-sw{bottom:-.45rem;left:-.45rem;cursor:nesw-resize}.profile-crop-handle-w{top:50%;left:-.45rem;transform:translateY(-50%);cursor:ew-resize}.profile-crop-handle-nw{top:-.45rem;left:-.45rem;cursor:nwse-resize}.profile-crop-controls{display:grid;gap:.65rem}.profile-crop-controls label{display:grid;gap:.25rem;font-size:.78rem;font-weight:700}.visually-hidden-file-input{position:fixed;width:1px;height:1px;opacity:0;pointer-events:none}.image-crop-modal{position:relative;width:min(760px,100%);max-height:min(90vh,780px);display:grid;gap:1rem;padding:1.2rem;overflow:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-modal-bg);box-shadow:0 24px 70px #00000057}.image-crop-modal h2{margin:0;padding-right:2rem;font-size:1.2rem}.image-crop-stage,.image-crop-stage img{max-height:58vh}.image-crop-stage{cursor:crosshair;touch-action:none;user-select:none}.image-crop-stage.is-move,.image-crop-stage.is-move .profile-crop-box{cursor:grabbing}.image-crop-stage.is-resize{cursor:default}.image-crop-controls{grid-template-columns:repeat(3,minmax(0,1fr))}.image-crop-footer{display:flex;justify-content:flex-end;gap:.6rem}.image-change-button{border:1px solid var(--color-border);border-radius:999px;background:color-mix(in srgb,var(--color-bg-card) 90%,transparent);color:var(--color-text);font-size:.72rem;font-weight:800;padding:.38rem .58rem;box-shadow:var(--shadow-sm)}.image-change-button:hover,.image-change-button:focus-visible{border-color:var(--color-primary-light);color:var(--color-primary-dark)}.member-delete-button{position:absolute;right:.55rem;bottom:.55rem;border-color:color-mix(in srgb,#dc2626 42%,var(--color-border));color:#991b1b}.member-delete-button:hover,.member-delete-button:focus-visible{background:#fee2e2;border-color:#dc2626;color:#991b1b}.camera-image-button{width:1.55rem;height:1.55rem;display:inline-grid;place-items:center;padding:0;border-color:color-mix(in srgb,var(--color-bg-card) 70%,transparent);background:color-mix(in srgb,var(--color-bg-card) 68%,transparent);color:color-mix(in srgb,var(--color-primary-dark) 78%,transparent);opacity:.66;box-shadow:0 2px 8px #0f172a1f;backdrop-filter:blur(8px)}.camera-image-button svg{width:.82rem;height:.82rem}.editable-image:hover .camera-image-button,.editable-image:focus-within .camera-image-button,.member-profile-tile:hover .camera-image-button,.member-profile-tile:focus-within .camera-image-button,.family-member-card:hover .camera-image-button,.family-member-card:focus-within .camera-image-button,.edit-profile-photo-frame:hover .camera-image-button,.edit-profile-photo-frame:focus-within .camera-image-button,.sidebar-avatar:hover .camera-image-button,.sidebar-avatar:focus-within .camera-image-button,.camera-image-button:hover,.camera-image-button:focus-visible{opacity:1;border-color:color-mix(in srgb,var(--color-primary-light) 48%,transparent);background:color-mix(in srgb,var(--color-bg-card) 86%,transparent);color:var(--color-primary-dark)}.camera-image-button span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.stat-list p{display:flex;justify-content:space-between;border-top:1px solid var(--color-border);padding-top:.5rem;margin-top:.5rem}.profile{display:grid;gap:1rem}.profile-hero{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1.2rem;padding:1.35rem;background:linear-gradient(180deg,var(--color-bg-card),var(--color-bg-soft))}.profile-avatar-large{position:relative;width:8.5rem;height:8.5rem;border-radius:50%;overflow:hidden;border:4px solid var(--color-bg-card);background:var(--color-bg-muted);box-shadow:var(--shadow-md)}.profile-avatar-large img{width:100%;height:100%;object-fit:cover}.profile-avatar-change{position:absolute;top:.35rem;right:.35rem}.profile-image-status{margin-top:.55rem;color:var(--color-primary-dark);font-size:.82rem;font-weight:700}.profile-kicker{margin-bottom:.2rem;color:var(--color-text-light);font-size:.78rem;font-weight:800;letter-spacing:0;text-transform:uppercase}.profile-header-info h1{margin:0;font-size:clamp(2rem,4vw,3.1rem);color:var(--color-text)}.profile-maiden,.profile-bio{color:var(--color-text-light)}.profile-bio{max-width:62ch;margin-top:.65rem}.profile-dates-row{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.55rem}.profile-date,.profile-pill{display:inline-flex;align-items:center;min-height:1.9rem;padding:.32rem .62rem;border:1px solid var(--color-border);border-radius:999px;background:var(--color-bg-card);color:var(--color-text);font-size:.86rem}.profile-date strong{margin-right:.25rem}.profile-hero-actions,.profile-tool-list{display:grid;gap:.55rem;align-content:center}.profile-research-panel{display:grid;gap:.65rem;margin-top:.9rem;padding-top:.9rem;border-top:1px solid var(--color-border)}.profile-research-summary{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.profile-research-summary strong{font-size:.92rem}.profile-research-summary span,.profile-research-panel p,.profile-research-notes{color:var(--color-text-light);font-size:.78rem}.profile-research-panel p{margin:0}.profile-research-panel p span{color:var(--color-text);font-weight:700}.profile-research-source-list{display:grid;gap:.45rem}.profile-research-source{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:.68rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);text-decoration:none}.profile-research-source:hover{border-color:var(--color-primary);text-decoration:none}.profile-research-source span{display:grid;gap:.18rem}.profile-research-source strong{font-size:.86rem}.profile-research-source small{color:var(--color-text-light);font-size:.74rem;line-height:1.35}.profile-research-source em{flex:0 0 auto;min-width:4.1rem;padding:.18rem .42rem;border-radius:999px;background:var(--color-primary-soft);color:var(--color-primary-dark);font-size:.68rem;font-style:normal;font-weight:800;text-align:center}.profile-research-notes{margin:0;padding-left:1rem}.profile-research-status{margin:.75rem 0 0;color:var(--color-text-light);font-size:.84rem}.profile-tabs{display:flex;gap:.35rem;overflow-x:auto;padding:.45rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-card);box-shadow:var(--shadow-sm)}.profile-tabs a{min-width:5.5rem;padding:.55rem .8rem;border-radius:var(--radius-sm);color:var(--color-text-light);font-weight:800;text-align:center}.profile-tabs a:hover,.profile-tabs a.active{background:var(--color-primary-soft);color:var(--color-primary-dark);text-decoration:none}.profile-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,340px);gap:1rem;align-items:start}.profile-main-column,.profile-sidebar{display:grid;gap:1rem}.profile-section{padding:1rem}.profile-section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.8rem}.profile-section-heading h2{margin:0;font-family:var(--font-body);font-size:1.05rem}.profile-section-heading span{color:var(--color-text-light);font-size:.78rem;font-weight:700}.timeline{position:relative;display:grid;gap:.9rem;padding-left:1.2rem}.timeline:before{content:"";position:absolute;top:.35rem;bottom:.35rem;left:.34rem;width:2px;background:var(--color-border)}.timeline-item{position:relative;display:grid;grid-template-columns:2.2rem minmax(0,1fr);gap:.75rem;align-items:start}.timeline-icon{position:relative;z-index:1;display:grid;place-items:center;width:2.2rem;height:2.2rem;border:1px solid var(--color-border);border-radius:50%;background:var(--color-bg-card);box-shadow:var(--shadow-sm);overflow:hidden;font-size:1rem}.timeline-avatar{width:100%;height:100%;object-fit:cover}.timeline-content{padding:.72rem .8rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-soft)}.timeline-content h4{margin:0 0 .25rem;font-family:var(--font-body);font-size:.95rem}.timeline-date,.timeline-place{display:block;color:var(--color-text-light);font-size:.82rem}.timeline-content p{margin-top:.45rem;color:var(--color-text-light);font-size:.9rem}.profile-details-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.profile-details-list div{padding:.72rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-soft)}.profile-details-list dt{color:var(--color-text-light);font-size:.74rem;font-weight:800;text-transform:uppercase}.profile-details-list dd{margin-top:.2rem;color:var(--color-text);font-weight:700}.profile-family-group{display:grid;gap:.5rem;padding:.75rem 0;border-top:1px solid var(--color-border)}.profile-family-group:first-of-type{border-top:0;padding-top:0}.profile-family-group h3{font-family:var(--font-body);font-size:.82rem;color:var(--color-text-light);text-transform:uppercase}.family-connections{display:grid;gap:.55rem}.family-member{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.65rem;align-items:center;padding:.55rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-soft);color:var(--color-text)}.family-member:hover,.family-member-link:hover{border-color:var(--color-primary-light);color:var(--color-text);text-decoration:none}.family-member-link{display:grid;grid-template-columns:2.6rem minmax(0,1fr);gap:.65rem;align-items:center;min-width:0;color:var(--color-text)}.fm-image-change{position:absolute;top:.38rem;left:2.35rem}.fm-avatar{width:2.6rem;height:2.6rem;border-radius:50%;overflow:hidden;background:var(--color-bg-muted)}.fm-avatar img{width:100%;height:100%;object-fit:cover}.fm-info{display:grid;gap:.05rem}.fm-label,.fm-dates,.profile-empty{color:var(--color-text-light);font-size:.78rem}.fm-name{font-weight:800}.profile-empty.compact{margin:0}.profile-not-found{padding:2rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-card);text-align:center}.form-page:has(.profile-not-found) .form-page-header p{display:none}.profile-not-found-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;margin-top:1rem}.edit-profile-modal-backdrop{position:fixed;inset:0;z-index:140;display:grid;place-items:center;padding:1.5rem;background:#1118278f}.edit-profile-modal{width:min(780px,100%);max-height:min(88vh,720px);display:grid;grid-template-columns:190px minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;background:var(--color-modal-bg);color:var(--color-text);border-radius:6px;box-shadow:0 24px 70px #00000057;overflow:hidden;border:1px solid var(--color-border)}.edit-profile-rail{grid-row:1 / span 2;display:flex;flex-direction:column;align-items:center;gap:.45rem;padding:2rem 1rem;background:var(--color-modal-rail);border-right:1px solid var(--color-border);text-align:center}.edit-profile-rail img{width:6.4rem;height:6.4rem;border-radius:50%;object-fit:cover;background:var(--color-bg-muted);box-shadow:0 3px 10px #1118272e}.edit-profile-photo-frame{position:relative}.edit-profile-photo-change{position:absolute;top:.15rem;right:.15rem}.edit-profile-rail strong{margin-top:.45rem;font-size:.95rem;line-height:1.2}.edit-profile-rail span{color:var(--color-text-light);font-size:.78rem}.edit-profile-body{position:relative;overflow:auto;padding:1.3rem 1.45rem 1rem;background:var(--color-modal-body)}.edit-profile-close{position:absolute;top:.8rem;right:.9rem;width:1.85rem;height:1.85rem;border:0;border-radius:50%;background:transparent;color:var(--color-text-light);font-size:1.35rem;line-height:1}.edit-profile-close:hover,.edit-profile-close:focus-visible{background:var(--color-bg-muted);color:var(--color-text);outline:none}.edit-profile-body h2{margin:0 2rem .9rem 0;font-family:var(--font-body);font-size:1.18rem;font-weight:700;color:var(--color-text)}.edit-profile-gender-row,.edit-profile-status-row{display:flex;flex-wrap:wrap;gap:1.2rem;margin-bottom:.95rem;color:var(--color-text);font-size:.86rem}.edit-profile-gender-row label,.edit-profile-status-row label,.edit-profile-checkbox-field{display:inline-flex;align-items:center;gap:.4rem}.edit-profile-grid{display:grid;gap:.72rem .85rem}.edit-profile-grid.two-columns,.edit-profile-grid.three-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.edit-profile-grid label{display:grid;gap:.24rem;color:var(--color-text-light);font-size:.78rem;font-weight:600}.edit-profile-grid input,.edit-profile-grid select,.edit-profile-grid textarea{width:100%;min-height:2.25rem;border:1px solid var(--color-input-border);border-radius:3px;background:var(--color-input-bg);color:var(--color-text);padding:.42rem .52rem;font-size:.86rem;box-shadow:inset 0 1px 2px #0000000a}.edit-profile-grid select[multiple]{min-height:5.4rem}.edit-profile-grid textarea{resize:vertical}.edit-profile-grid input:focus,.edit-profile-grid select:focus,.edit-profile-grid textarea:focus{outline:2px solid color-mix(in srgb,var(--color-primary) 28%,transparent);border-color:var(--color-primary)}.edit-profile-status-row{margin:1rem 0 .7rem}.edit-profile-grid.compact-row{margin-bottom:.9rem}.edit-profile-relationship-block{margin-top:.9rem;padding-top:.9rem;border-top:1px solid var(--color-border)}.edit-profile-relation-title{margin-bottom:.58rem;color:var(--color-text);font-weight:700;font-size:.86rem}.edit-profile-anomalies{display:grid;gap:.4rem;margin:.85rem 0 0;padding:0;list-style:none}.edit-profile-anomalies li{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:.5rem;padding:.5rem .6rem;border:1px solid color-mix(in srgb,#d97706 34%,var(--color-border));border-radius:var(--radius-sm);background:color-mix(in srgb,#f59e0b 10%,var(--color-bg-card));color:var(--color-text);font-size:.8rem;line-height:1.35}.edit-profile-anomalies li.is-error{border-color:color-mix(in srgb,#dc2626 38%,var(--color-border));background:color-mix(in srgb,#dc2626 10%,var(--color-bg-card))}.edit-profile-anomalies li span{display:grid;place-items:center;width:1.05rem;height:1.05rem;border-radius:50%;background:#d97706;color:#fff;font-size:.68rem;font-weight:800;line-height:1}.edit-profile-anomalies li.is-error span{background:#dc2626}.edit-profile-marriage-block{margin-top:.85rem}.edit-profile-marriage-grid{display:grid;gap:.65rem}.edit-profile-marriage-row{display:grid;grid-template-columns:minmax(8rem,1fr) minmax(8rem,.9fr) minmax(10rem,1fr);gap:.6rem;align-items:end}.edit-profile-marriage-row strong{color:var(--color-text);font-size:.84rem;padding-bottom:.52rem}.edit-profile-marriage-row label{display:grid;gap:.24rem;color:var(--color-text-light);font-size:.78rem;font-weight:600}.edit-profile-marriage-row input{width:100%;min-height:2.25rem;border:1px solid var(--color-input-border);border-radius:3px;background:var(--color-input-bg);color:var(--color-text);padding:.42rem .52rem;font-size:.86rem;box-shadow:inset 0 1px 2px #0000000a}.edit-profile-more{margin-top:1rem;border-top:1px solid var(--color-border);padding-top:.75rem}.edit-profile-more summary{width:fit-content;cursor:pointer;list-style:none;color:var(--color-primary-dark);font-size:.84rem;font-weight:700}.edit-profile-more summary::-webkit-details-marker{display:none}.edit-profile-more summary:after{content:"⌄";margin-left:.4rem}.edit-profile-more[open] summary{margin-bottom:.75rem}.edit-profile-more[open] summary:after{content:"⌃"}.edit-profile-wide-field,.edit-profile-checkbox-field{grid-column:1 / -1}.edit-profile-checkbox-field{min-height:2rem}.edit-profile-checkbox-field input{width:auto;min-height:auto}.edit-profile-message{margin-top:.75rem;color:var(--color-primary-dark);font-weight:700;font-size:.82rem}.edit-profile-footer{grid-column:2;display:flex;justify-content:flex-end;gap:.6rem;padding:.85rem 1.45rem;background:var(--color-modal-rail);border-top:1px solid var(--color-border)}.edit-profile-footer button{min-width:5.4rem;min-height:2.1rem;border-radius:4px;border:1px solid var(--color-input-border);font-size:.86rem;font-weight:700}.edit-profile-delete{margin-right:auto;border-color:color-mix(in srgb,#dc2626 45%,var(--color-input-border))!important;background:#fee2e2;color:#991b1b}.edit-profile-delete:hover,.edit-profile-delete:focus-visible{background:#dc2626;color:#fff}.edit-profile-ok{background:var(--color-primary);color:#fff;border-color:var(--color-primary)!important}.edit-profile-ok:hover,.edit-profile-ok:focus-visible{background:var(--color-primary-dark)}.edit-profile-ok:disabled{opacity:.65;cursor:not-allowed}.edit-profile-cancel{background:var(--color-bg-card);color:var(--color-text)}.janampatri-modal{position:relative;width:min(620px,100%);max-height:min(88vh,680px);overflow:auto;padding:1.35rem 1.45rem 1rem;background:var(--color-modal-body);color:var(--color-text);border:1px solid var(--color-border);border-radius:6px;box-shadow:0 24px 70px #00000057}.janampatri-modal h2{margin:0 2rem 1rem 0;font-family:var(--font-body);font-size:1.18rem}.janampatri-footer{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1rem;padding-top:.85rem;border-top:1px solid var(--color-border)}.janampatri-footer button{min-width:6.4rem;min-height:2.1rem;border-radius:4px;border:1px solid var(--color-input-border);font-size:.86rem;font-weight:700}@media(max-width:900px){.portal-signup,.portal-grid,.portal-shell{grid-template-columns:1fr}.portal-nav-toggle{display:flex}.portal-sidebar{position:fixed;top:0;left:0;z-index:60;width:min(84vw,310px);height:100%;max-height:none;border-radius:0;margin:0;padding:1.25rem 1rem;background:var(--color-bg-card);border-right:1px solid var(--color-border);box-shadow:var(--shadow-lg);overflow-y:auto;transform:translate(-100%);transition:transform .25s ease}.portal-shell.nav-open .portal-sidebar{transform:translate(0)}.portal-shell.nav-open .portal-sidebar-backdrop{display:block;position:fixed;inset:0;z-index:55;background:#0f172a80}.metric-grid,.portal-overview-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-overview-columns{grid-template-columns:1fr}.signup-auth-card{position:static}.signup-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.regular-photo-upload{grid-template-columns:1fr}.portal-topbar{align-items:stretch;flex-direction:column}.portal-topbar-graphic{justify-content:flex-end;padding:0 1rem;opacity:.32}.portal-topbar-graphic svg{width:min(58%,280px);min-width:10rem}.portal-welcome-panel,.portal-quick-actions{align-items:stretch;flex-direction:column}.portal-welcome-actions{justify-content:stretch}.portal-welcome-actions .btn{flex:1 1 12rem}.portal-actions{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr))}.portal-tree-select{grid-column:1 / -1;min-width:0}.edit-profile-modal-backdrop{padding:.75rem;align-items:end}.edit-profile-modal{max-height:94vh;grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr) auto;width:100%}.edit-profile-rail{grid-row:auto;display:grid;grid-template-columns:3.8rem minmax(0,1fr);align-items:center;justify-items:start;padding:.9rem 1rem;border-right:0;border-bottom:1px solid var(--color-border);text-align:left}.edit-profile-rail img{grid-row:span 2;width:3.3rem;height:3.3rem}.edit-profile-rail strong,.edit-profile-rail span{margin:0}.edit-profile-body{padding:1rem}.edit-profile-grid.two-columns,.edit-profile-grid.three-columns{grid-template-columns:1fr}.edit-profile-marriage-row{grid-template-columns:1fr;align-items:stretch}.edit-profile-marriage-row strong{padding-bottom:0}.edit-profile-footer{grid-column:auto;padding:.8rem 1rem}.profile-hero,.profile-layout{grid-template-columns:1fr}.profile-avatar-large{width:6.5rem;height:6.5rem}.profile-hero-actions,.profile-tool-list,.profile-details-list{grid-template-columns:1fr}.family-profile-heading{align-items:flex-start;flex-direction:column;gap:.25rem}.family-profile-controls,.family-profile-grid{grid-template-columns:1fr}.family-profile-card{padding-right:4.2rem}.portal-avatar.small.family-profile-avatar{width:9.1rem;height:9.1rem}.family-profile-card .member-image-change{left:.68rem}.image-crop-controls,.family-member{grid-template-columns:1fr}}@media(max-width:600px){.container{padding-left:1rem;padding-right:1rem}.portal-shell{padding:.75rem}.admin-metric-grid,.settings-grid,.admin-grid,.portal-overview-columns{grid-template-columns:1fr}.metric-grid,.signup-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.signup-stats{row-gap:.9rem}.signup-stat:nth-child(odd){padding-left:0;border-left:0}.portal-actions{grid-template-columns:1fr}.portal-actions .btn{width:100%}.portal-topbar h1{font-size:1.3rem}.portal-panel{padding:1rem}.metric{padding:.85rem .8rem .75rem}.metric strong{font-size:1.6rem}.signup-copy{padding:1.5rem 1.25rem}.signup-auth-card{padding:1.15rem}}.site-panel{display:grid;gap:1rem}.site-list{display:grid;gap:.6rem;margin:0;padding:0;list-style:none}.site-row{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem;padding:.85rem 1rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-card)}.site-row-main{display:grid;gap:.12rem;flex:1 1 16rem;min-width:0}.site-row-main small{color:var(--color-text-light);font-size:.76rem}.site-address{color:var(--color-primary);font-size:.82rem;font-weight:700;overflow-wrap:anywhere}.site-none{font-style:italic}.site-row-tags{display:flex;gap:.35rem}.site-tag{padding:.12rem .5rem;border-radius:999px;background:var(--color-bg-muted);color:var(--color-text-light);font-size:.68rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.site-tag.is-live{background:color-mix(in srgb,#16a34a 16%,var(--color-bg-card));color:#15803d}.site-tag.is-warn{background:color-mix(in srgb,#f59e0b 16%,var(--color-bg-card));color:#b45309}.site-row-actions{display:flex;align-items:center;gap:.6rem}.site-hint{color:var(--color-text-light);font-size:.76rem}.site-remove{border:0;background:none;color:var(--color-text-light);font-size:.78rem;text-decoration:underline;cursor:pointer}.site-remove:hover{color:#dc2626}.site-editor{padding:1.1rem 1.25rem 1.4rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-card);box-shadow:var(--shadow-sm)}.site-editor-close{width:2rem;height:2rem;border:0;border-radius:50%;background:none;color:var(--color-text-light);font-size:1.4rem;line-height:1;cursor:pointer}.site-editor-section{margin-top:1.1rem;padding-top:.9rem;border-top:1px solid var(--color-border)}.site-editor-section h4{margin:0 0 .15rem;font-family:var(--font-body);font-size:.9rem}.site-editor-section p{margin:0;color:var(--color-text-light);font-size:.8rem}.site-handle-field{display:flex;align-items:center;gap:.15rem}.site-handle-field input{flex:1 1 auto;min-width:0;text-align:right}.site-handle-field em{flex:0 0 auto;color:var(--color-text-light);font-style:normal;font-weight:700}.site-availability{margin:-.35rem 0 .2rem;color:var(--color-text-light);font-size:.78rem}.site-availability.is-free{color:#15803d;font-weight:700}.site-availability.is-taken{color:#dc2626}.site-theme-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr));gap:.5rem}.site-theme-card{display:grid;gap:.25rem;padding:.6rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);text-align:left;cursor:pointer}.site-theme-card.is-active{border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 22%,transparent)}.site-theme-card strong{font-size:.86rem}.site-theme-card small{color:var(--color-text-light);font-size:.72rem;line-height:1.3}.site-theme-swatch{position:relative;display:block;height:2.6rem;border:1px solid;border-radius:6px;overflow:hidden}.site-theme-swatch i{position:absolute;inset:.9rem .45rem .35rem;border:1px solid;border-radius:3px}.site-theme-swatch em{position:absolute;top:.35rem;left:.45rem;width:2.2rem;height:.35rem;border-radius:999px}.site-accent-row .site-accent-field{display:flex;align-items:center;gap:.5rem}.site-accent-field input[type=color]{width:2.4rem;height:2.2rem;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:none;cursor:pointer}.site-accent-field input:not([type=color]){flex:1 1 8rem;min-width:0}.site-sections{display:grid;gap:.7rem;margin:0;padding:0;list-style:none}.site-sections li{display:grid;gap:.4rem;padding:.7rem;border:1px dashed var(--color-border);border-radius:var(--radius-sm)}.site-section-head{display:flex;gap:.35rem}.site-section-head input{flex:1 1 auto;min-width:0}.site-section-head button{flex:0 0 auto;width:2rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text-light);cursor:pointer}.site-section-head button:disabled{opacity:.4;cursor:default}.site-add-section{justify-self:start}.site-editor-actions{display:flex;gap:.6rem;margin-top:1.1rem}.site-share{display:inline-flex;align-items:center;gap:.35rem;padding:.32rem .7rem;border:1px solid var(--color-border);border-radius:999px;background:var(--color-bg-card);color:var(--color-text-light);font-size:.78rem;font-weight:700;cursor:pointer;transition:border-color var(--transition),color var(--transition)}.site-share svg{width:14px;height:14px}.site-share:hover{border-color:var(--color-primary);color:var(--color-primary)}.home-sample-site{margin:.85rem 0 0;font-size:.88rem}.home-sample-site a{color:var(--color-primary-dark);font-weight:700;text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--color-primary) 35%,transparent)}.home-sample-site a:hover{border-bottom-color:var(--color-primary)}.site-image-field,.site-portrait{display:grid;gap:.4rem}.site-image-label{color:var(--color-text-light);font-size:.78rem;font-weight:700}.site-image-row{display:flex;align-items:center;gap:.8rem}.site-image-preview{width:5.5rem;height:6.5rem;object-fit:cover;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-muted)}.site-image-preview.is-wide{width:12rem;height:5rem}.site-image-preview.is-empty{display:block;border-style:dashed}.site-image-actions{display:flex;align-items:center;gap:.6rem}.site-image-actions label{cursor:pointer}.site-portrait-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1rem}main[data-astro-cid-37fxchfa]{flex:1}
