/* Functional family areas use the approved visual language, with stable readable editing surfaces. */
.family-app{--family-accent:#f585c0;color:var(--ref-text,#eaf3ff)}
.family-section-heading{display:flex;justify-content:space-between;align-items:center;gap:22px;margin:30px 0 22px}.family-section-heading h1,.family-section-heading h2{font-weight:800;letter-spacing:-1px;margin:4px 0 10px}.family-section-heading h2{font-size:clamp(25px,2.8vw,36px)}.family-section-heading p{color:var(--ref-muted);margin:5px 0;max-width:760px;line-height:1.7}.family-section-heading .eyebrow{font-size:11px;letter-spacing:2px;color:var(--family-accent)}
.family-selected{outline:2px solid var(--tile-light);outline-offset:4px}.family-dashboard-link{display:block;color:inherit;text-decoration:none}.family-dashboard-link p{color:var(--ref-muted)}
.family-notice{padding:16px 20px;border:1px solid #64b9be66;border-radius:12px;background:#4cafab12;line-height:1.7;color:inherit;margin:20px 0}.family-notice.error{border-color:#ed8ca666;background:#e65f8c13}.family-notice a{color:var(--family-accent);font-weight:700}
.family-editor{border:1px solid #91afd44d;border-radius:14px;background:linear-gradient(145deg,#153047,#0b1c2c);box-shadow:inset 0 1px #fff2,0 10px 25px #0002;margin:18px 0;overflow:hidden}.family-editor>summary{padding:20px;display:flex;align-items:center;gap:12px;font-size:17px;font-weight:750;cursor:pointer;list-style:none}.family-editor>summary::-webkit-details-marker{display:none}.family-editor>summary>.ui-icon{width:24px;color:var(--family-accent)}.family-editor>summary>span{margin-left:auto;font-size:24px}.family-editor[open]>summary{border-bottom:1px solid #91afd42b}
.family-form{padding:24px;display:grid;gap:18px;max-width:1100px}.family-form label,.family-filterbar label{display:flex;flex-direction:column;gap:9px;font-weight:650;font-size:14px;color:inherit}.family-form input,.family-form textarea,.family-form select,.family-filterbar input,.family-filterbar select{font:inherit;color:#eaf3ff;background:#061725;border:1px solid #6c9abb75;border-radius:9px;min-height:47px;padding:11px 13px;width:100%;box-sizing:border-box}.family-form textarea{resize:vertical;min-height:100px;line-height:1.7}.family-form input[type=file]{padding:10px}.family-form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:17px}.family-form-actions,.family-card-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.family-form-actions a,.family-card-actions>a:not(.family-primary){font-size:13px;color:#a5c8ed;font-weight:650;text-decoration:none}.family-help{font-size:12px!important;line-height:1.8!important;color:var(--ref-muted)!important;margin:0;max-width:900px}
.family-primary,.family-small{font:inherit;display:inline-flex;justify-content:center;align-items:center;gap:10px;border-radius:9px;text-decoration:none;cursor:pointer;font-weight:750;min-height:44px;padding:11px 18px;line-height:1.4;white-space:normal}.family-primary{color:#fff;background:linear-gradient(135deg,#bd397b,#783d99);border:1px solid #ef96cc88;box-shadow:inset 0 1px #ffd5ee88,0 3px 0 #431e51,0 7px 15px #0003}.family-primary:hover{filter:brightness(1.16);color:#fff}.family-small{font-size:12px;background:#6f9fc319;color:#b9d5ef;border:1px solid #83a6c14d;min-height:38px;padding:8px 12px}.family-small:hover{border-color:#b2d2f0;background:#6f9fc32b}.family-danger{color:#f1a4bc;background:#c7587910}.family-inline-form{display:inline-flex;margin:0}.family-card-actions>span{font-size:12px;color:var(--ref-muted)}
.family-filterbar{display:flex;flex-wrap:wrap;gap:18px;padding:20px 0;margin-bottom:10px}.family-filterbar>label{flex:1;min-width:160px}.family-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:21px}.family-content-card{position:relative;padding:25px;border:1px solid #82a8cd55;border-top-color:#a5c8e477;border-radius:14px;background:radial-gradient(ellipse at 0 0,#b369c514,transparent 70%),linear-gradient(145deg,#122c40,#071a29);box-shadow:inset 0 1px #fff2,0 4px 0 #031422,0 12px 25px #0003;color:inherit;text-decoration:none;min-width:0;overflow-wrap:anywhere}.family-content-card h3{font-size:22px;font-weight:750;margin:16px 0 12px;letter-spacing:-.5px}.family-content-card p{color:var(--ref-muted);font-size:14px;line-height:1.8}.family-content-card .family-card-actions{margin-top:20px}.family-card-top{display:flex;gap:12px;justify-content:space-between;align-items:center;font-size:11px;color:var(--ref-muted)}.family-tag{display:inline-flex;align-items:center;border:1px solid #c59bea40;background:#aa7ab618;color:#dbc0eb;padding:6px 9px;border-radius:6px;font-size:11px;line-height:1.3}.family-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:var(--ref-muted)}.family-meta>span{background:#779fc218;padding:5px 8px;border-radius:5px}.family-card-icon{display:grid;place-items:center;width:58px;height:58px;margin-top:20px;border:1px solid #b592db88;border-radius:14px;color:#d2a3ff;background:linear-gradient(135deg,#8a68b344,#16233d);box-shadow:inset 0 2px #fff4,3px 5px 0 #071323,0 10px 18px #0004,0 0 22px #ae72ff24;transform:perspective(500px) rotateY(-13deg) rotateX(10deg)}.family-card-icon .ui-icon{width:31px;height:31px;filter:drop-shadow(0 0 6px currentColor)}
.family-date{display:inline-flex;font-size:13px;font-weight:750;letter-spacing:.3px;color:#ffb4d5}.family-rsvp{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:18px 0 12px}.family-rsvp>strong{font-size:13px;margin-right:5px}.family-body{white-space:pre-wrap;overflow-wrap:anywhere}.family-empty{text-align:center;padding:45px 24px;border:1px dashed #759bb74d;border-radius:14px;color:var(--ref-muted);margin:20px 0;line-height:1.8}.family-empty>.ui-icon{width:36px;height:36px;color:#b4a7de;margin-bottom:15px}.family-empty h3{font-size:21px}.family-section{margin:35px 0}.family-section>h2{font-size:24px;margin-bottom:20px}
.family-album{margin:35px 0}.family-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:20px}.family-photo{margin:0;background:#102b40;border:1px solid #7ca4c75e;border-radius:12px;overflow:hidden}.family-photo img{width:100%;height:220px;object-fit:cover;display:block}.family-photo figcaption{padding:17px;display:flex;flex-direction:column;align-items:flex-start;gap:10px}.family-photo figcaption>span{font-size:11px;color:var(--ref-muted)}
.family-generation{padding:20px;border-radius:14px;border:1px solid #64cbb83b;background:#39a3ad08;margin:22px 0;position:relative}.family-generation+.family-generation::before{content:"";position:absolute;width:2px;height:23px;top:-24px;left:50%;background:linear-gradient(#6da8bb33,#6da8bb99)}.family-generation-label{text-transform:uppercase;letter-spacing:1.5px;font-size:11px;color:#86c9cc}.family-tree-row{display:flex;flex-wrap:wrap;gap:20px;justify-content:center}.family-person{flex:1 1 180px;max-width:320px;min-width:0;text-align:center;padding:23px 18px;background:linear-gradient(145deg,#173549,#0b2032);border:1px solid #74babc66;border-radius:13px;box-shadow:inset 0 1px #fff2,0 9px 20px #0003}.family-avatar{display:grid;place-items:center;width:59px;height:59px;border-radius:17px;background:linear-gradient(145deg,#5a889a,#254c67);color:#e5faff;border:1px solid #b0dddf88;font-size:22px;font-weight:800;margin:0 auto 16px;box-shadow:0 5px 0 #092436,0 10px 18px #0004}.family-person h3{font-size:20px}.family-person p{font-size:12px;line-height:1.7;color:var(--ref-muted)}.family-tree-relation{border-top:1px solid #7cbbc12b;padding-top:10px;margin-bottom:0}.family-relation-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:15px;border-bottom:1px solid #80a5bc2b;padding:17px 0;font-size:14px}.family-price{display:block;font-size:25px;margin:14px 0}.wish-card>a{display:inline-block;color:#b2c9f0;font-size:13px}.family-message{margin:20px 0}.family-reply{margin:20px 0 0 12px;padding:15px 20px;border-left:2px solid #a379b7;background:#b8a4d308}.family-reply strong{font-size:13px}.family-reply p{margin:8px 0}.family-reply-box{margin-top:20px;border-top:1px solid #92aaca33;padding-top:16px}.family-reply-box summary{font-size:14px;cursor:pointer;color:#c2a8e2}
.family-person-editor{margin-top:12px;text-align:left}.family-person-editor summary{font-size:12px;color:#a6cbdc;cursor:pointer}.family-person-editor .family-form{padding:15px 0}.family-person-editor .family-form label{font-size:12px}
.family-back{display:inline-block;color:#c4b3df;font-size:14px;margin-top:20px}.family-play{max-width:1100px;margin:auto}.family-play-surface{padding:30px;border:1px solid #8d9dc36b;border-radius:19px;background:radial-gradient(ellipse at 50% 0,#9267cc26,transparent 65%),linear-gradient(145deg,#162d45,#081a2c);box-shadow:inset 0 2px #ffffff25,0 5px 0 #051225,0 25px 50px #0004}.family-play-emblem{color:#c99af4}.family-play-emblem .ui-icon{width:65px;height:65px;filter:drop-shadow(0 0 15px #ad77e9)}.family-play-top{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:25px}.family-play-top h2{font-size:21px;margin:0}.family-play-top>span{font-size:13px;color:var(--ref-muted)}.family-memory{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:20px 0}.memory-card{border:1px solid #a7a8ec88;border-radius:14px;aspect-ratio:1.2;font-size:clamp(25px,5vw,47px);color:#c8a0f4;background:linear-gradient(145deg,#4e477f,#1c2d50);box-shadow:inset 0 2px #fff4,0 4px 0 #101a34;cursor:pointer}.memory-card:not(.revealed):hover{background:linear-gradient(145deg,#625590,#293859);color:#e1baff}.memory-card.revealed{background:linear-gradient(#f6edff,#d3e4f8);color:#243b59}.memory-card.matched{background:linear-gradient(#c8f1e5,#a7d9d9);opacity:.8}.family-question{font-size:clamp(24px,3vw,34px);line-height:1.4;margin:25px 0}.family-answers{display:grid;gap:12px;margin:25px 0}.family-answer{padding:19px;border:1px solid #8b9fc488;border-radius:10px;font:inherit;text-align:left;font-size:17px;background:#17344d;color:#e3f0ff;cursor:pointer}.family-answer.correct{background:#1d5d52;border-color:#71d3ab}.family-answer.incorrect{background:#622e46;border-color:#e98da5}.family-answer:disabled{opacity:1}.family-feedback{font-size:17px;line-height:1.7}.family-win{font-size:22px;font-weight:750;color:#a4e2cd;padding:25px 0}.family-rules{font-size:18px;line-height:1.9;color:#cbdaea}.family-challenge{background:#ad86cf10;border:1px solid #b894d345;border-radius:13px;padding:25px;margin:25px 0}.family-challenge h2{font-size:27px;line-height:1.5;margin:20px 0}.family-challenge .family-help{margin-top:20px}.family-scoreboard{display:flex;gap:20px;margin:25px 0}.family-scoreboard>div{flex:1;display:grid;justify-items:center;gap:15px;padding:20px;border:1px solid #8b9fc444;border-radius:12px}.family-scoreboard strong{font-size:45px}.family-timer{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:25px 0;margin-top:20px}.family-timer h2{font-size:45px;font-variant-numeric:tabular-nums}.family-timer p{font-size:13px;color:var(--ref-muted)}
.family-app :is(input,select,textarea,button,a,summary):focus-visible{outline:3px solid #d1a9ef;outline-offset:3px}
html[data-theme="light"] .family-app{--family-accent:#a52b72;color:#24435d}html[data-theme="light"] .family-editor,html[data-theme="light"] .family-content-card,html[data-theme="light"] .family-play-surface{background:radial-gradient(ellipse at 0 0,#ecd9f525,transparent 70%),linear-gradient(#fff,#f2f7fd);border-color:#a8bfd5;box-shadow:inset 0 2px #fff,0 4px 0 #d4dfeb,0 12px 25px #355b7b18}html[data-theme="light"] .family-form input,html[data-theme="light"] .family-form textarea,html[data-theme="light"] .family-form select,html[data-theme="light"] .family-filterbar input,html[data-theme="light"] .family-filterbar select{background:#fff;color:#24435d;border-color:#aac0d5}html[data-theme="light"] .family-small{color:#355977;border-color:#9db8ce;background:#dae8f34d}html[data-theme="light"] .family-danger{color:#9b3354}html[data-theme="light"] .family-tag{color:#785097;border-color:#ba9ac955;background:#cba4dd18}html[data-theme="light"] .family-date{color:#aa326f}html[data-theme="light"] .family-form-actions a,html[data-theme="light"] .family-card-actions>a:not(.family-primary),html[data-theme="light"] .wish-card>a{color:#466f95}html[data-theme="light"] .family-person,html[data-theme="light"] .family-photo{background:linear-gradient(#fff,#edf7fb);border-color:#a5c8d3;box-shadow:inset 0 1px #fff,0 9px 20px #355b7b18}html[data-theme="light"] .family-generation-label{color:#407f87}html[data-theme="light"] .family-notice a{color:#8b3373}html[data-theme="light"] .family-answer{background:#fff;color:#29455f}html[data-theme="light"] .family-answer.correct{background:#d5f2e5;border-color:#499f7b}html[data-theme="light"] .family-answer.incorrect{background:#f6dfe7;border-color:#bc6180}html[data-theme="light"] .family-rules{color:#3a5973}html[data-theme="light"] .family-back{color:#795291}html[data-theme="light"] .family-win{color:#246952}
@media(max-width:680px){.family-section-heading{align-items:flex-start;flex-direction:column;margin-top:25px}.family-card-grid{grid-template-columns:1fr}.family-form{padding:18px}.family-content-card{padding:21px}.family-play-surface{padding:20px}.family-play-top{flex-direction:column;align-items:flex-start}.family-memory{gap:9px}.family-timer{align-items:flex-start;flex-direction:column}.family-card-top{align-items:flex-start;flex-direction:column}.family-generation{padding:16px 10px}.family-person{flex-basis:135px}.family-play-emblem{display:none}}
