*{box-sizing:border-box} :root{--pink:#ef3f87;--pink2:#ff6b9f;--ink:#25365c;--muted:#7b86a0;--bg:#f6f8ff;--card:#fff;--line:#e6eaf5;--blue:#3867d6;--green:#19a276;--shadow:0 10px 30px rgba(43,60,105,.06)}body{margin:0;background:var(--bg);color:var(--ink);font:14px Inter,Segoe UI,Arial,sans-serif}.app-shell{display:flex;min-height:100vh}.sidebar{position:fixed;left:0;top:0;bottom:0;width:250px;background:#fff;border-right:1px solid var(--line);padding:24px 16px;z-index:5}.brand{display:flex;align-items:center;gap:10px;margin:0 7px 30px;font-size:17px}.brand strong{display:block}.brand small{display:block;color:var(--pink);font-size:10px;margin-top:4px}.brand-mark{display:grid;place-items:center;width:43px;height:43px;border-radius:15px;background:linear-gradient(135deg,#ff4e9a,#647cff);color:#fff;font-size:25px}.nav-link{display:flex;align-items:center;gap:13px;width:100%;padding:13px 15px;margin:5px 0;border:0;background:transparent;border-radius:12px;color:#52617e;text-align:left;font-size:14px}.nav-link.active,.nav-link:hover{background:linear-gradient(90deg,var(--pink),#f55ca5);color:#fff}.sidebar-card{position:absolute;left:20px;right:20px;bottom:24px;background:#fff0f6;border-radius:16px;padding:16px;text-align:center;color:#91456a;font-size:12px;line-height:1.6}.main{margin-left:250px;width:calc(100% - 250px);padding:26px;max-width:1800px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.eyebrow{font-size:10px;letter-spacing:1.4px;color:var(--pink);font-weight:800;margin:0 0 6px}.topbar h1{font-size:25px;margin:0;font-family:Georgia,serif}.top-actions{display:flex;gap:10px;align-items:center}.search,.input{border:1px solid var(--line);border-radius:11px;background:#fff;padding:12px 13px;outline:none;width:100%}.search{min-width:240px}.profile-chip{border:1px solid var(--line);background:#fff;border-radius:12px;padding:12px 15px;color:var(--ink);font-weight:700}.hero{display:flex;justify-content:space-between;align-items:center;gap:30px;padding:36px;border-radius:24px;background:linear-gradient(105deg,#fff0f6,#edf4ff);border:1px solid #f0dce8;overflow:hidden}.hero h2{font:42px/1.08 Georgia,serif;margin:13px 0;color:#213762}.hero p{max-width:580px;line-height:1.8;color:#66728e}.hero-badge,.tag{display:inline-block;background:#fff0f6;color:#d33e79;border-radius:30px;padding:6px 10px;font-size:11px;font-weight:800}.hero-art{font-size:110px;position:relative;filter:drop-shadow(0 12px 20px #b7c0db55)}.hero-art span{color:var(--pink);font-size:40px;position:absolute;right:-4px;top:-12px}.primary-btn,.secondary-btn,.danger-btn{border:0;border-radius:11px;padding:12px 17px;font-weight:800;cursor:pointer}.primary-btn{background:var(--pink);color:#fff;box-shadow:0 8px 18px #ef3f8725}.secondary-btn{background:#edf2ff;color:var(--blue)}.danger-btn{background:#fff0f1;color:#d24d5a}.text-btn{border:0;background:transparent;color:var(--blue);font-weight:800;cursor:pointer}.stats-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin:20px 0}.stat-card,.panel{background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.stat-card{padding:17px;display:grid;grid-template-columns:43px 1fr;gap:4px 12px;align-items:center}.stat-card .stat-icon{grid-row:span 2;width:43px;height:43px;display:grid;place-items:center;border-radius:14px;font-size:20px}.stat-icon.pink{background:#fff0f7}.stat-icon.red{background:#fff0f0}.stat-icon.gold{background:#fff7df}.stat-icon.blue{background:#edf3ff}.stat-icon.green{background:#eaf9f3}.stat-card strong{font-size:23px}.stat-card small{font-size:11px;color:var(--muted)}.two-column{display:grid;grid-template-columns:1.35fr 1fr;gap:18px}.panel{padding:20px}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.panel-heading h3{margin:0;font-size:17px}.event-row{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.event-row:last-child{border-bottom:0}.date-box{width:58px;min-width:58px;padding:8px;border-radius:12px;background:#f0f4ff;color:var(--blue);text-align:center;font-weight:800}.date-box small{display:block;font-size:10px}.event-image{width:46px;height:46px;object-fit:cover;border-radius:12px;background:#eaf0ff}.event-main{flex:1}.event-main strong{display:block;font-size:13px}.event-main small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.tag{background:#edf3ff;color:var(--blue)}.special{background:linear-gradient(145deg,#fff2f8,#f0f5ff);border-radius:16px;padding:18px;text-align:center}.special img{width:100%;max-height:230px;object-fit:cover;border-radius:14px}.special h3{font:25px Georgia,serif;margin:13px 0 5px}.special p{color:var(--muted);line-height:1.6}.section-space{margin-top:18px}.mini-gallery,.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.mini-gallery img,.gallery-grid img{width:100%;height:125px;object-fit:cover;border-radius:12px;background:#eaf0ff}.mini-gallery small,.gallery-caption{display:block;color:var(--muted);font-size:11px;margin-top:5px}.quick-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.quick-actions button{padding:15px 10px;background:#fff;border:1px solid var(--line);border-radius:12px;color:var(--ink);font-weight:700;cursor:pointer}.page{display:none}.page.active{display:block}.page-title-row{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px}.page-title-row h2{font:30px Georgia,serif;margin:0 0 6px}.page-title-row p{margin:0;color:var(--muted)}.filter-row{display:grid;grid-template-columns:1fr 230px;gap:12px;margin-bottom:15px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.field{display:grid;gap:7px}.field span{font-size:12px;font-weight:800;color:#586580}.stack-form{display:grid;gap:15px}.button-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.members-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.member-card{text-align:center;border:1px solid var(--line);border-radius:15px;padding:16px}.member-card img{width:90px;height:90px;border-radius:50%;object-fit:cover;margin-bottom:10px}.member-card strong{display:block}.member-card small{color:var(--muted)}.gallery-grid{grid-template-columns:repeat(4,1fr)}.gallery-card{border:1px solid var(--line);border-radius:14px;padding:8px}.gallery-card img{height:150px}.post-preview{border-radius:20px;padding:30px;text-align:center;border:8px solid #fff;box-shadow:0 12px 35px #273a6812;min-height:390px;display:flex;flex-direction:column;align-items:center;justify-content:center}.post-preview.soft{background:linear-gradient(145deg,#fff0f7,#edf3ff)}.post-preview.royal{background:linear-gradient(145deg,#203e78,#527bd1);color:#fff}.post-preview.festive{background:linear-gradient(145deg,#fff1c4,#ffd6b8)}.post-preview.family{background:linear-gradient(145deg,#e6f6ff,#f5e4ff)}.post-preview img{width:150px;height:150px;border-radius:50%;object-fit:cover;border:6px solid #fff;box-shadow:0 8px 20px #0001}.post-preview h2{font:32px Georgia,serif;margin:17px 0 7px}.post-preview p{line-height:1.7;max-width:390px}.saved-post{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.saved-post strong{display:block}.saved-post small{color:var(--muted)}.notice{padding:14px;border-radius:12px;background:#edf8f3;color:#187d5e;margin-bottom:15px;font-size:13px}.notification{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.notification strong{display:block}.notification small{color:var(--muted)}footer{text-align:center;color:var(--muted);font-size:12px;margin:26px 0}.modal-backdrop{position:fixed;inset:0;background:#1c294a99;display:flex;align-items:center;justify-content:center;padding:20px;z-index:20}.hidden{display:none!important}.modal{background:#fff;border-radius:20px;padding:24px;width:min(620px,100%);max-height:90vh;overflow:auto}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.close-btn{border:0;background:#f0f3fb;border-radius:50%;width:32px;height:32px;font-size:20px;cursor:pointer}.toast{position:fixed;right:25px;bottom:25px;background:#25365c;color:#fff;padding:14px 18px;border-radius:12px;display:none;z-index:30}.muted{color:var(--muted)}@media(max-width:1100px){.stats-grid{grid-template-columns:repeat(3,1fr)}.two-column{grid-template-columns:1fr}.members-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:750px){.sidebar{width:70px;padding:15px 8px}.brand{justify-content:center}.brand>div:last-child,.nav-link span,.sidebar-card{display:none}.nav-link{justify-content:center;padding:13px 5px}.main{margin-left:70px;width:calc(100% - 70px);padding:13px}.topbar{display:block}.top-actions{margin-top:12px;display:block}.search{min-width:0;margin-bottom:8px}.hero{padding:25px;display:block}.hero h2{font-size:34px}.hero-art{display:none}.stats-grid{grid-template-columns:repeat(2,1fr);gap:9px}.stat-card{padding:12px}.stat-card strong{font-size:20px}.form-grid,.filter-row{grid-template-columns:1fr}.members-grid{grid-template-columns:repeat(2,1fr)}.gallery-grid,.mini-gallery{grid-template-columns:repeat(2,1fr)}.page-title-row{align-items:flex-start;flex-direction:column}}

/* Family-first visual enhancements */
.feature-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.feature-tile{border:1px solid #e8eafa;background:linear-gradient(145deg,#fff,#f7f8ff);border-radius:18px;padding:18px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:6px;box-shadow:0 8px 22px rgba(54,72,132,.06);transition:.2s}
.feature-tile:hover{transform:translateY(-3px);border-color:#a9baf7;box-shadow:0 12px 28px rgba(54,72,132,.12)}
.feature-tile span{font-size:30px}.feature-tile strong{color:#23366f;font-size:14px}.feature-tile small{color:#77809d;font-size:12px}
.ai-panel{background:linear-gradient(145deg,#ffffff,#f5f7ff)}
.voice-status{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:#eef3ff;color:#445ca0;font-size:12px;margin:5px 0 12px}
.voice-controls{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.voice-btn{border:1px solid #d9def3;background:#fff;border-radius:12px;padding:10px 12px;color:#354477;cursor:pointer;font-weight:600}.voice-btn:hover{background:#f0f3ff}.voice-hint{font-size:12px;color:#7a829b;margin-top:10px;line-height:1.5}
@media(max-width:900px){.feature-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.feature-strip{grid-template-columns:1fr}}


/* =========================================================
   FAMILY FESTIVAL COLOR THEME - V4 VISUAL ENHANCEMENTS
   ========================================================= */
:root{--festival-pink:#ff3f91;--festival-purple:#7857f5;--festival-blue:#2f8cff;--festival-green:#16b981;--festival-orange:#ff9e2c;--festival-red:#f04461;--festival-yellow:#ffd33d}
body{background:radial-gradient(circle at 12% 8%,rgba(255,91,163,.13),transparent 22%),radial-gradient(circle at 90% 18%,rgba(81,151,255,.14),transparent 24%),linear-gradient(135deg,#fffaff 0%,#f5f8ff 52%,#fff9f0 100%)}
.sidebar{background:linear-gradient(180deg,#fff 0%,#fff3fa 48%,#eef5ff 100%);border-right:1px solid #f0d8ea;box-shadow:8px 0 28px rgba(91,71,145,.08)}
.brand-mark{background:linear-gradient(135deg,#ff3f91,#ff9c39 45%,#665cf5);box-shadow:0 8px 18px rgba(255,63,145,.24)}
.brand strong{color:#263b82}
.nav-link{position:relative;overflow:hidden;border:1px solid transparent;transition:transform .2s,box-shadow .2s,background .2s;font-weight:800}
.nav-link:hover{transform:translateX(3px);box-shadow:0 6px 15px rgba(100,90,180,.12)}
.nav-link.active{background:linear-gradient(90deg,#ff3f91,#ff795e)!important;color:#fff;box-shadow:0 8px 18px rgba(255,63,145,.22)}
.nav-link:nth-child(2){color:#e76c22;background:#fff7e9}.nav-link:nth-child(3){color:#4771e8;background:#edf2ff}.nav-link:nth-child(4){color:#e73875;background:#fff0f5}.nav-link:nth-child(5){color:#d48a00;background:#fff8df}.nav-link:nth-child(6){color:#18a875;background:#ebfbf3}.nav-link:nth-child(7){color:#8359e8;background:#f3efff}.nav-link:nth-child(8){color:#2489db;background:#edf7ff}.nav-link:nth-child(9){color:#d849a5;background:#fff0fb}
.topbar{background:rgba(255,255,255,.72);border:1px solid rgba(224,216,244,.9);border-radius:22px;padding:14px 18px;box-shadow:0 8px 25px rgba(75,75,130,.05)}
.hero{position:relative;background:linear-gradient(110deg,rgba(255,241,250,.98),rgba(232,243,255,.94) 58%,rgba(255,247,220,.94));border:2px solid #f7d8e9;box-shadow:0 14px 36px rgba(108,77,156,.09)}
.hero::after{content:"🎈  🎂  🎁  🪔  🎉  💖";position:absolute;right:24px;top:15px;font-size:22px;letter-spacing:5px;opacity:.78;animation:floatDecor 6s ease-in-out infinite}
.primary-btn{background:linear-gradient(90deg,#ff3f91,#ff6b6b);box-shadow:0 9px 20px rgba(255,63,145,.22)}
.secondary-btn{background:linear-gradient(90deg,#edf1ff,#f8edff);border:1px solid #dfe2ff}
.stat-card{position:relative;overflow:hidden;border:1px solid #e8e4fb;box-shadow:0 9px 24px rgba(75,75,140,.07)}
.stat-card::after{content:"";position:absolute;right:-25px;bottom:-35px;width:85px;height:85px;border-radius:50%;background:rgba(255,255,255,.55)}
.stat-card:nth-child(1){background:linear-gradient(135deg,#fff0f7,#fff)}.stat-card:nth-child(2){background:linear-gradient(135deg,#fff0f1,#fff)}.stat-card:nth-child(3){background:linear-gradient(135deg,#fff7dc,#fff)}.stat-card:nth-child(4){background:linear-gradient(135deg,#eaf7ff,#fff)}.stat-card:nth-child(5){background:linear-gradient(135deg,#eafff4,#fff)}
.panel{border:1px solid #e5e4f5;box-shadow:0 10px 26px rgba(72,72,140,.06)}
.panel-heading h3{color:#263b82}
.event-row{border-bottom:1px dashed #e2e5f4;border-radius:13px;padding:13px 10px;margin:4px 0;transition:background .2s,transform .2s}
.event-row:hover{background:linear-gradient(90deg,#fff1f7,#f2f6ff);transform:translateX(3px)}
.event-image{border:3px solid #fff;box-shadow:0 5px 12px rgba(58,74,135,.12)}
.date-box{background:linear-gradient(145deg,#edf0ff,#fff0fa);border:1px solid #e1e4ff}
.event-main strong{color:#2b3b78}.tag{border:1px solid #dfe5ff;background:#f2f5ff;color:#5269c5}
.quick-actions button{position:relative;overflow:hidden;border:1px solid #e4e3f7;box-shadow:0 5px 13px rgba(70,70,140,.05);transition:transform .2s,box-shadow .2s}
.quick-actions button:hover{transform:translateY(-3px);box-shadow:0 9px 20px rgba(70,70,140,.12)}
.feature-tile:nth-child(1){background:linear-gradient(135deg,#eafff5,#fff)}.feature-tile:nth-child(2){background:linear-gradient(135deg,#fff1f7,#fff)}.feature-tile:nth-child(3){background:linear-gradient(135deg,#edf4ff,#fff)}.feature-tile:nth-child(4){background:linear-gradient(135deg,#fff7df,#fff)}
.memory-showcase{padding:20px;border:1px solid #e7dff8;border-radius:22px;background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(255,245,252,.92),rgba(240,247,255,.96));box-shadow:0 12px 28px rgba(88,70,145,.07)}
.showcase-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}
.showcase-kicker{display:inline-block;color:#f04b91;font-size:11px;font-weight:900;letter-spacing:.7px;text-transform:uppercase}
.showcase-heading h3{margin:5px 0;color:#283b7d;font:24px Georgia,serif}.showcase-heading p{margin:0;color:#7b829d;font-size:12px;line-height:1.6}
.showcase-arrows{display:flex;gap:8px}.showcase-arrow{width:38px;height:38px;border:1px solid #dddafa;border-radius:50%;background:#fff;color:#5b5ae3;font-size:25px;cursor:pointer;box-shadow:0 4px 10px rgba(70,70,140,.08)}
.memory-rail{display:flex;gap:14px;overflow:hidden;scroll-behavior:smooth;padding:3px 2px 8px}
.memory-card{position:relative;flex:0 0 190px;height:165px;border-radius:18px;overflow:hidden;border:4px solid #fff;box-shadow:0 9px 20px rgba(56,63,130,.13);background:#f1f4ff}
.memory-card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}.memory-card:hover img{transform:scale(1.08)}
.memory-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(22,24,64,.78))}
.memory-card-caption{position:absolute;left:12px;right:10px;bottom:10px;color:#fff;z-index:1}.memory-card-caption strong{display:block;font-size:13px}.memory-card-caption small{display:block;font-size:10px;margin-top:4px;opacity:.92}
.memory-card-badge{position:absolute;top:9px;left:9px;z-index:1;background:#fff;color:#e23f85;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:900}
.memory-card:nth-child(4n+1){border-color:#ffc8e1}.memory-card:nth-child(4n+2){border-color:#c9d8ff}.memory-card:nth-child(4n+3){border-color:#ffe2a4}.memory-card:nth-child(4n+4){border-color:#bdeedc}
.empty-memory{min-width:100%;padding:28px;text-align:center;color:#7b829d;background:#fff;border:1px dashed #d8dff6;border-radius:15px}
.event-type-badge{width:38px;height:38px;min-width:38px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(135deg,#fff0f7,#eef2ff);font-size:20px;border:1px solid #e5e4fa;box-shadow:0 4px 10px rgba(70,70,140,.06)}
@keyframes floatDecor{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@media(max-width:750px){.hero::after{display:none}.showcase-heading{align-items:flex-start}.memory-card{flex-basis:155px;height:145px}}


/* Family Tree, Stories and Time Capsule */
.family-tree-panel{background:linear-gradient(135deg,#fff8fc,#f4f7ff)}
.tree-intro{display:flex;align-items:center;gap:16px;padding:18px;border-radius:18px;background:linear-gradient(90deg,#ffe8f3,#eaf2ff);margin-bottom:18px}
.tree-emoji{font-size:48px;filter:drop-shadow(0 7px 8px rgba(80,70,140,.15))}
.family-tree-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:16px}
.tree-member-card{position:relative;text-align:center;padding:22px 12px 18px;border:2px solid #e5e4fb;border-radius:20px;background:#fff;box-shadow:0 8px 18px rgba(80,75,140,.08);transition:transform .2s}
.tree-member-card:hover{transform:translateY(-5px);border-color:#ffb6d7}
.tree-member-card img{width:92px;height:92px;object-fit:cover;border-radius:50%;border:5px solid #ffe0ef;display:block;margin:0 auto 10px}
.tree-member-card strong{display:block;color:#2d3e80;font-size:15px}.tree-member-card small{display:block;color:#7a819e;margin-top:5px}.tree-branch{font-size:22px;color:#55b889;margin-bottom:5px}.tree-heart{position:absolute;right:12px;top:10px}
.story-card,.capsule-card{display:flex;gap:14px;padding:15px;margin-bottom:12px;border-radius:16px;border:1px solid #e4e4f5;background:linear-gradient(135deg,#fff,#fff5fb);box-shadow:0 5px 14px rgba(80,75,140,.05)}
.story-icon,.capsule-icon{width:44px;height:44px;min-width:44px;display:grid;place-items:center;border-radius:14px;background:linear-gradient(135deg,#ffe2f0,#e8edff);font-size:23px}
.story-card h4,.capsule-card h4{margin:4px 0;color:#2e3d7e}.story-card p,.capsule-card p{margin:7px 0;color:#68718d;line-height:1.6;font-size:13px;white-space:pre-wrap}.story-card small,.capsule-card small{color:#9298ad}.story-category{font-size:10px;text-transform:uppercase;letter-spacing:.6px;font-weight:900;color:#ec4f91}
.capsule-card.capsule-locked{background:linear-gradient(135deg,#f4f2ff,#fff)}.capsule-card.capsule-open{background:linear-gradient(135deg,#effff6,#fff)}
@media(max-width:650px){.tree-intro{align-items:flex-start}.tree-emoji{font-size:36px}.family-tree-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

.family-calendar-panel{background:linear-gradient(135deg,#fff9fd,#f5f8ff)}
.calendar-toolbar{display:flex;align-items:center;justify-content:center;gap:22px;margin:12px 0 18px}.calendar-toolbar h3{min-width:190px;text-align:center;color:#2d3e80}
.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.calendar-weekdays>div{text-align:center;font-size:11px;font-weight:900;color:#8a78b5;padding:8px}.calendar-cell{min-height:105px;background:#fff;border:1px solid #e9e6f7;border-radius:12px;padding:7px;overflow:hidden}.calendar-cell.blank{background:transparent;border:none}.calendar-cell.has-events{background:linear-gradient(145deg,#fff0f7,#f2f5ff);border-color:#f4bdd9}.calendar-day{font-weight:900;color:#34437f;font-size:13px;margin-bottom:4px}.calendar-avatar{width:25px;height:25px;border-radius:50%;object-fit:cover;border:2px solid #fff;margin-right:2px;box-shadow:0 2px 6px #c7c8e5}.calendar-events{margin-top:5px}.calendar-event{font-size:9px;line-height:1.35;color:#59648b;background:#fff;border-radius:6px;padding:3px 4px;margin-top:3px;white-space:normal}.calendar-legend{display:flex;gap:10px;flex-wrap:wrap;margin-top:15px}.calendar-legend span{display:flex;align-items:center;gap:5px;font-size:11px;color:#6d7594}.calendar-legend img{width:24px;height:24px;border-radius:50%;object-fit:cover;border:2px solid #fff}@media(max-width:700px){.calendar-cell{min-height:75px;padding:4px}.calendar-event{font-size:8px}.calendar-avatar{width:20px;height:20px}.calendar-weekdays>div{font-size:9px}}
.member-event-summary{margin:8px 0;padding:8px 10px;border-radius:12px;background:#fff4d8;color:#8a4b08;font-weight:700;font-size:12px}.member-report-head{display:flex;gap:14px;align-items:center;padding:12px;background:#f4f7ff;border-radius:16px}.member-report-head img{width:76px;height:76px;object-fit:cover;border-radius:18px}.report-event{display:flex;flex-direction:column;gap:5px;padding:12px;border:1px solid #e6eaf7;border-radius:14px;background:#fff}.report-event small{color:#6b7280}
.family-command-center{display:grid;grid-template-columns:1.5fr 1fr;gap:18px;padding:22px;border-radius:24px;border:1px solid #eadcf7;background:linear-gradient(120deg,#fff0f8,#f1f3ff 58%,#fff7df);box-shadow:0 12px 30px rgba(87,72,145,.08)}
.command-copy h3{margin:6px 0;color:#293b82;font-size:25px}.command-copy p{margin:0;color:#7b829d;line-height:1.6;font-size:13px}.level-line{display:flex;justify-content:space-between;gap:10px;margin-top:16px;color:#4c5594;font-size:12px}.progress-track{height:12px;background:#fff;border-radius:999px;margin-top:8px;overflow:hidden;border:1px solid #e3e3f5}.progress-track span{display:block;height:100%;width:0;background:linear-gradient(90deg,#ff3f91,#7c5cff,#26c6a5);border-radius:999px;transition:width .4s}.badge-row{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.badge-row span{font-size:11px;font-weight:800;padding:7px 10px;border-radius:999px;background:#fff;border:1px solid #e4ddf7;color:#5b5a91}.command-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-content:center}.game-action{border:0;border-radius:16px;padding:16px 10px;font-weight:900;cursor:pointer;box-shadow:0 8px 16px rgba(70,70,140,.08);transition:transform .2s}.game-action:hover{transform:translateY(-3px)}.game-action.pink{background:#ffe0ef;color:#c52b78}.game-action.blue{background:#e2edff;color:#3d61c8}.game-action.gold{background:#fff0c9;color:#a26a00}.game-action.green{background:#ddf9ed;color:#16855e}.top-date{display:flex;align-items:center;padding:0 10px;font-size:12px;font-weight:800;color:#5b6594;white-space:nowrap}.report-line{display:grid;grid-template-columns:48px 1.1fr .8fr 1.5fr auto auto;gap:10px;align-items:center;padding:12px 8px;border-bottom:1px dashed #e3e5f3}.report-line img{width:44px;height:44px;border-radius:14px;object-fit:cover;border:3px solid #fff0f7}.report-person strong,.report-person small{display:block}.report-person small,.report-next{font-size:11px;color:#7b829d}.report-count{font-weight:900;color:#d64e8c;font-size:12px}.report-line button{padding:8px 10px;font-size:11px}.report-next{line-height:1.5}.report-stats{margin-bottom:18px}@media(max-width:850px){.family-command-center{grid-template-columns:1fr}.report-line{grid-template-columns:42px 1fr 1fr}.report-line .report-next{grid-column:2/-1}.report-line button{font-size:10px}.top-date{display:none}}@media(max-width:550px){.command-actions{grid-template-columns:1fr 1fr}.family-command-center{padding:16px}.command-copy h3{font-size:21px}}

/* V7 visual preview alignment: colorful family dashboard */
.hero{position:relative;min-height:300px;background:linear-gradient(110deg,#fff0f8 0%,#eef4ff 57%,#fff7d9 100%);border:1px solid #f4c9df}
.hero-photo-art{width:355px;height:245px;flex:0 0 355px;border-radius:28px;overflow:visible;position:relative;filter:none}
.hero-photo-art img{width:100%;height:100%;object-fit:cover;border-radius:28px 28px 70px 28px;border:8px solid #fff;box-shadow:0 18px 32px rgba(74,72,145,.18)}
.hero-photo-art>span{position:absolute;right:-10px;top:-18px;color:#ef3f87;font-size:54px;animation:floatDecor 3s ease-in-out infinite}
.hero-photo-badge{position:absolute;bottom:-13px;left:24px;background:#fff;border:1px solid #f4d6e5;border-radius:999px;padding:10px 14px;color:#d73d80;font-size:11px;font-weight:900;box-shadow:0 8px 20px rgba(85,66,120,.12);white-space:nowrap}
.dashboard-main-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.85fr);gap:18px;align-items:start}
.dashboard-side-stack{display:grid;gap:18px}
.mini-ai-card{background:linear-gradient(145deg,#f2edff 0%,#fff1fa 52%,#effbff 100%);border-color:#e5d9fa;position:relative;overflow:hidden}
.mini-ai-card:after{content:"";position:absolute;width:140px;height:140px;border-radius:50%;right:-65px;bottom:-70px;background:#ffb9df55}
.mini-ai-head{display:flex;align-items:center;gap:10px;margin-bottom:12px;position:relative;z-index:1}
.mini-ai-head h3{margin:3px 0 0;color:#303a83;font-size:17px}.mini-ai-head .showcase-kicker{font-size:9px}.ai-bot{width:52px;height:52px;border-radius:18px;display:grid;place-items:center;font-size:30px;background:linear-gradient(135deg,#fff,#dfe8ff);box-shadow:0 8px 18px #9a91dd35}.online-dot{margin-left:auto;color:#21b78b;font-size:18px}
.ai-wave{height:45px;display:flex;align-items:center;justify-content:center;gap:4px;margin:15px 0;background:#ffffff99;border-radius:16px}.ai-wave span{width:5px;height:13px;border-radius:99px;background:linear-gradient(#ff4c9a,#7c5cff);animation:aiWave 1.1s ease-in-out infinite}.ai-wave span:nth-child(2n){height:26px;animation-delay:.12s}.ai-wave span:nth-child(3n){height:35px;animation-delay:.22s}.ai-wave span:nth-child(4n){height:19px;animation-delay:.34s}@keyframes aiWave{0%,100%{transform:scaleY(.65);opacity:.55}50%{transform:scaleY(1.15);opacity:1}}
.ai-suggestion{position:relative;z-index:1;background:#fff;border:1px solid #e8def7;border-radius:12px;padding:10px 11px;margin:8px 0;font-size:11px;color:#5a4d8c;cursor:pointer;transition:.2s}.ai-suggestion:hover{transform:translateX(3px);border-color:#f39bc6;background:#fff8fc}.full-btn{width:100%;margin-top:12px;position:relative;z-index:1}.compact-actions button{padding:13px 8px;font-size:12px}
@media(max-width:1050px){.dashboard-main-grid{grid-template-columns:1fr}.dashboard-side-stack{grid-template-columns:1fr 1fr}.hero-photo-art{width:290px;flex-basis:290px}}
@media(max-width:750px){.hero-photo-art{width:100%;max-width:330px;height:210px;margin:20px auto 0}.hero{padding:24px}.dashboard-side-stack{grid-template-columns:1fr}.hero-photo-badge{font-size:10px;left:12px}.dashboard-main-grid{gap:14px}}
/* V9: private member/admin login + family engagement */
.login-screen{position:fixed;inset:0;z-index:100;background:radial-gradient(circle at 15% 20%,#ffe4f2 0,#f5efff 35%,#eaf5ff 100%);display:grid;place-items:center;padding:20px}
.login-card{width:min(470px,100%);background:rgba(255,255,255,.94);border:1px solid #eadff4;border-radius:28px;padding:30px;box-shadow:0 25px 70px rgba(68,53,110,.16);backdrop-filter:blur(12px)}
.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:24px}.login-brand strong{font-size:20px;display:block}.login-brand small{color:var(--pink)}
.login-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;background:#f7f5fc;padding:5px;border-radius:14px;margin-bottom:22px}.login-tab{border:0;background:transparent;border-radius:10px;padding:11px;font-weight:800;color:#6e7895;cursor:pointer}.login-tab.active{background:#fff;color:var(--pink);box-shadow:0 5px 14px #7d6caa14}.login-card h2{font:28px Georgia,serif;margin:0 0 7px;color:#243865}.login-card p{color:var(--muted);line-height:1.6}.login-card .field{margin-top:13px}.full-btn{width:100%;margin-top:12px}.login-note{font-size:11px;line-height:1.6;background:#f4f8ff;color:#697693;padding:11px 12px;border-radius:11px;margin-top:14px}.login-error{min-height:20px;margin-top:12px;color:#c63e67;font-weight:700;font-size:12px}
.logout-btn{white-space:nowrap}.dashboard-enhancements{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.today-moment{display:flex;align-items:center;gap:15px;padding:12px;background:linear-gradient(135deg,#fff1f7,#f1f5ff);border-radius:16px}.today-moment img{width:72px;height:72px;object-fit:cover;border-radius:18px;border:4px solid #fff}.today-moment h3{margin:3px 0;font-size:18px}.today-moment p{margin:0;color:var(--muted)}.today-moment .primary-btn{margin-left:auto}.on-day{display:flex;gap:15px;align-items:center}.on-day-art{width:95px;height:95px;border-radius:18px;overflow:hidden;display:grid;place-items:center;background:linear-gradient(135deg,#ffe0ef,#e6efff);font-size:40px}.on-day-art img{width:100%;height:100%;object-fit:cover}.on-day h3{margin:4px 0}.on-day p{margin:0;color:var(--muted)}.countdown-list{display:grid;gap:9px}.countdown-item{display:flex;align-items:center;gap:12px;padding:9px;border-radius:13px;background:#faf9ff}.countdown-number{width:54px;height:54px;border-radius:15px;background:linear-gradient(135deg,#ff4d98,#7b65f5);color:#fff;display:grid;place-items:center;font-weight:900;font-size:18px;line-height:1}.countdown-number small{font-size:8px}.countdown-item strong,.countdown-item small{display:block}.countdown-item small{color:var(--muted);margin-top:3px}.challenge-content{display:flex;gap:15px;align-items:center;background:linear-gradient(135deg,#fff7df,#effbf7);border-radius:16px;padding:15px}.challenge-icon{font-size:42px}.challenge-content h3{margin:0 0 4px}.challenge-content p{margin:0 0 10px;color:var(--muted);line-height:1.5}.achievement-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.achievement-badge{padding:16px;border:1px solid #ebe5f7;border-radius:16px;background:linear-gradient(145deg,#fff,#faf6ff);text-align:center}.achievement-badge span{font-size:30px;display:block}.achievement-badge strong,.achievement-badge small{display:block}.achievement-badge small{color:var(--muted);margin-top:4px}.challenge-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.challenge-grid>div{padding:16px;border-radius:15px;background:#f7f8ff;border:1px solid #e6e9f5;font-weight:800}.challenge-grid b{display:block;color:var(--pink);margin-top:7px}.year-review-hero{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:28px;border-radius:24px;background:linear-gradient(120deg,#ffe6f2,#e8edff,#e7fbf4);border:1px solid #eadff4}.year-review-hero h2{font:34px Georgia,serif;margin:7px 0}.year-review-hero p{color:var(--muted)}.year-hero-icon{font-size:85px}.profile-timeline{display:grid;gap:9px;margin:5px 0}.timeline-item{display:flex;align-items:center;gap:12px;padding:12px;border-radius:13px;background:#faf9ff;border:1px solid #eeeaf7}.timeline-item>span{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:#fff0f7;font-size:19px}.timeline-item strong,.timeline-item small{display:block}.timeline-item small{color:var(--muted);margin-top:3px}
@media(max-width:900px){.dashboard-enhancements{grid-template-columns:1fr}.achievement-grid{grid-template-columns:repeat(2,1fr)}.challenge-grid{grid-template-columns:1fr 1fr}.today-moment{align-items:flex-start;flex-wrap:wrap}.today-moment .primary-btn{margin-left:0}}
@media(max-width:600px){.login-card{padding:22px}.achievement-grid,.challenge-grid{grid-template-columns:1fr}.year-review-hero{padding:20px}.year-hero-icon{font-size:55px}.today-moment img{width:60px;height:60px}}


/* Multi-language selector */
.language-select{border:1px solid #dfe3f0;background:#fff;border-radius:12px;padding:10px 30px 10px 12px;font-weight:700;color:#25345f;cursor:pointer;box-shadow:0 5px 16px rgba(60,50,120,.06);outline:none}
.language-select:focus{border-color:#ff4f91;box-shadow:0 0 0 3px rgba(255,79,145,.12)}
.login-brand{position:relative}
.login-brand .language-select{margin-left:auto;max-width:130px}
@media(max-width:900px){.top-actions{flex-wrap:wrap}.language-select{padding:8px 24px 8px 9px;font-size:12px}.login-brand{gap:8px}.login-brand .language-select{max-width:105px}}


/* V11 Family Safety */
.safety-nav{background:linear-gradient(90deg,#f1f5ff,#fff5fa)}
.dashboard-safety-card{display:grid;grid-template-columns:1fr auto auto;gap:18px;align-items:center;padding:20px 22px;border-radius:22px;background:linear-gradient(105deg,#eef5ff,#f8efff,#fff5f8);border:1px solid #e2ddf4;box-shadow:0 10px 26px rgba(65,55,120,.06)}
.dashboard-safety-card h3{margin:5px 0 4px;font-size:21px}.dashboard-safety-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}.safety-mini-status{font-weight:900;color:#d05a85;white-space:nowrap}.safety-hero{display:flex;align-items:center;justify-content:space-between;gap:25px;background:linear-gradient(120deg,#eef7ff,#f5efff 55%,#fff3f8);overflow:hidden}.safety-hero-copy{max-width:760px}.safety-hero h2{font:32px Georgia,serif;margin:6px 0}.safety-hero p{color:var(--muted);line-height:1.65}.safety-orb{width:150px;height:150px;flex:0 0 150px;border-radius:50%;display:grid;place-items:center;align-content:center;background:radial-gradient(circle,#fff 0,#e9efff 45%,#f9dff0 100%);box-shadow:inset 0 0 0 12px #ffffff88,0 15px 35px #6e63a51f}.safety-orb span{font-size:54px}.safety-orb small{font-weight:900;color:#56618a}.safety-status{margin-top:12px;padding:10px 13px;border-radius:12px;background:#fff;border:1px solid #e6e5f2;font-size:12px;font-weight:800;color:#596480}.safety-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.location-result{display:flex;gap:14px;align-items:center;padding:15px;border-radius:17px;background:linear-gradient(135deg,#effbf7,#f1f5ff);border:1px solid #dcece7}.location-pin{width:50px;height:50px;border-radius:16px;background:#fff;display:grid;place-items:center;font-size:25px;box-shadow:0 8px 16px #4f7d6520}.location-result strong,.location-result small,.location-result span{display:block}.location-result small{color:#5f6b8d;margin:4px 0;font-size:11px}.location-result span{font-size:10px;color:#7e87a0}.active-trip{display:flex;align-items:center;gap:12px;margin-top:12px;padding:12px;border-radius:14px;background:#fff8e8;border:1px solid #f4e3b7}.active-trip>span{font-size:28px}.active-trip strong,.active-trip small{display:block}.active-trip small{color:var(--muted);margin-top:3px}.active-trip .secondary-btn{margin-left:auto;padding:8px 10px}.check-line{display:flex;align-items:center;gap:9px;padding:11px 12px;border-radius:12px;background:#faf9ff;border:1px solid #eceaf5;margin:7px 0;font-size:13px;font-weight:700}.check-line input{accent-color:#ed4d93;width:16px;height:16px}.location-timeline-item{display:flex;align-items:center;gap:12px;padding:11px;border-bottom:1px dashed #e6e6f0}.location-timeline-item>span{font-size:20px}.location-timeline-item strong,.location-timeline-item small{display:block}.location-timeline-item small{color:var(--muted);margin-top:3px}.sos-panel{background:linear-gradient(135deg,#fff7f7,#fff)}.night-memory-modal{max-width:520px}.night-memory-body{text-align:center;padding:10px 10px 20px}.night-emoji{font-size:54px}.night-memory-body h2{font:28px Georgia,serif;color:#273661}.night-memory-body p{color:var(--muted);line-height:1.6}.night-memory-body .button-row{justify-content:center;flex-wrap:wrap}.night-memory-body .secondary-btn,.night-memory-body .primary-btn{margin:0}
@media(max-width:850px){.dashboard-safety-card{grid-template-columns:1fr}.safety-grid{grid-template-columns:1fr}.safety-hero{align-items:flex-start}.safety-orb{width:105px;height:105px;flex-basis:105px}.safety-orb span{font-size:38px}}
@media(max-width:600px){.dashboard-safety-card{padding:16px}.dashboard-safety-card .secondary-btn{width:100%}.safety-hero{display:block;padding:18px}.safety-hero h2{font-size:25px}.safety-orb{margin:16px auto 0}.location-result{align-items:flex-start}.active-trip{flex-wrap:wrap}.active-trip .secondary-btn{margin-left:0}.page-title-row{gap:10px}.page-title-row h2{font-size:23px}.panel{padding:14px}.stack-form .input{min-width:0}.topbar{position:sticky;top:0;z-index:20}.top-actions{width:100%;gap:7px}.top-actions .search{width:100%;order:10}.top-actions .profile-chip{max-width:130px;overflow:hidden;text-overflow:ellipsis}.sidebar{position:sticky;top:0;z-index:30}.main{min-width:0}.calendar-grid{overflow-x:auto}.calendar-cell{min-width:105px}.calendar-grid{grid-template-columns:repeat(7,minmax(105px,1fr))}.calendar-weekdays{grid-template-columns:repeat(7,minmax(105px,1fr));overflow:hidden}.hero{min-height:0}.hero-photo-art{height:190px}.memory-rail{overflow-x:auto}.member-card{min-width:0}.button-row{gap:7px}.button-row button{max-width:100%}}

/* V11.1 dashboard safety quick controls */
.dashboard-safety-card{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.dashboard-safety-copy{flex:1 1 330px}
.dashboard-safety-controls{display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:flex-end}
.safety-quick-btn{border:1px solid #e2d8ff;border-radius:14px;padding:11px 14px;background:#fff;cursor:pointer;font-weight:800;box-shadow:0 7px 18px rgba(60,30,100,.07);transition:.2s}
.safety-quick-btn:hover{transform:translateY(-2px)}
.safety-quick-btn.location{color:#2364d8}.safety-quick-btn.voice{color:#7a43d8}.safety-quick-btn.sos{color:#d9295d;border-color:#ffd1df;background:#fff6f9}
.admin-safety-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.admin-safety-member{border:1px solid #eadff7;border-radius:16px;padding:14px;background:linear-gradient(135deg,#fff,#f7f5ff);display:flex;gap:12px;align-items:center}
.admin-safety-avatar{width:48px;height:48px;border-radius:14px;object-fit:cover;background:#edf2ff}.admin-safety-info{min-width:0;flex:1}.admin-safety-info strong{display:block}.admin-safety-info small{display:block;color:#6d6a7d;margin-top:3px}.admin-safety-badge{font-size:12px;font-weight:800;border-radius:999px;padding:6px 9px;background:#edf9f2;color:#15804d}.admin-safety-badge.off{background:#f4f2f7;color:#777}
.admin-safety-actions{display:flex;gap:7px;margin-top:8px;flex-wrap:wrap}.admin-safety-actions a{font-size:12px;text-decoration:none;font-weight:800}
@media(max-width:760px){.dashboard-safety-controls{width:100%;justify-content:flex-start}.dashboard-safety-controls .secondary-btn{width:100%}.safety-quick-btn{flex:1;min-width:92px}.admin-safety-list{grid-template-columns:1fr}}

/* V11.2 hierarchical family tree + admin safety alerts */
.hierarchy-tree{padding:18px 8px 10px;overflow-x:auto;background:linear-gradient(180deg,#fff,#fbf9ff);border-radius:20px}.tree-caption{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:#39457e;margin:0 auto 22px;justify-content:center}.tree-caption span{font-size:11px;color:#858aa5;font-weight:600}.hier-branch{position:relative;text-align:center;margin:0 auto 18px;min-width:max-content}.hier-couple{display:flex;align-items:center;justify-content:center;gap:10px;position:relative}.hier-person{display:flex;align-items:center;gap:9px;padding:10px 13px;border:2px solid #e7e2f6;border-radius:17px;background:#fff;box-shadow:0 8px 20px rgba(70,55,120,.08);min-width:150px;text-align:left}.hier-person.main-person{border-color:#ffbddb}.hier-person.spouse-person{border-color:#c7ddff}.hier-person img{width:48px;height:48px;border-radius:50%;object-fit:cover;border:3px solid #ffe6f1}.hier-person strong,.hier-person small{display:block}.hier-person strong{color:#283a78;font-size:13px}.hier-person small{color:#7b829c;font-size:10px;margin-top:3px}.spouse-link{font-size:18px;color:#ed4d93}.generation-line{width:2px;height:22px;background:#d9d4ea;margin:0 auto;position:relative}.generation-line:after{content:'';position:absolute;left:50%;bottom:0;width:70%;height:2px;background:#d9d4ea;transform:translateX(-50%)}.hier-children{display:flex;justify-content:center;gap:22px;position:relative;padding-top:4px}.hier-children:before{content:'';position:absolute;top:0;left:10%;right:10%;height:2px;background:#d9d4ea}.hier-children>.hier-branch:before{content:'';position:absolute;top:-4px;left:50%;width:2px;height:8px;background:#d9d4ea}.tree-unlinked{margin-top:18px;padding:15px;border-radius:17px;background:#fff8ec;border:1px dashed #efd69b;display:flex;gap:10px;flex-wrap:wrap;align-items:center}.tree-unlinked>strong{width:100%;color:#856116}.tree-unlinked .hier-person{min-width:145px}.admin-safety-section-title{margin:16px 0 9px;font-size:12px;font-weight:900;color:#6c6682;text-transform:uppercase;letter-spacing:.08em}.admin-safety-alerts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.admin-alert-card{display:flex;align-items:center;gap:11px;padding:12px 14px;border-radius:15px;border:1px solid #ffd2df;background:linear-gradient(135deg,#fff5f8,#fff);box-shadow:0 7px 18px rgba(180,50,90,.06)}.admin-alert-icon{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:#ffe4ec;font-size:21px}.admin-alert-card strong,.admin-alert-card small{display:block}.admin-alert-card strong{color:#8e2448;font-size:12px}.admin-alert-card small{color:#7c7f92;font-size:10px;margin-top:3px}.admin-alert-badge{margin-left:auto;font-size:9px;font-weight:900;color:#c72d58;background:#ffe1eb;padding:5px 7px;border-radius:999px}.admin-safe-empty{padding:11px 13px;border-radius:13px;background:#faf9fd;color:#83869b;font-size:11px}.admin-trip-tag{display:inline-block;font-size:10px;font-weight:800;color:#996313;background:#fff0c9;padding:4px 7px;border-radius:999px}
@media(max-width:760px){.hierarchy-tree{overflow-x:auto}.hier-children{gap:12px}.hier-person{min-width:135px;padding:8px}.hier-person img{width:40px;height:40px}.admin-safety-alerts{grid-template-columns:1fr}.admin-alert-card{align-items:flex-start}.admin-alert-badge{display:none}}


/* =========================================================
   V12 PREMIUM FAMILY HOME
   ========================================================= */
.v12-spotlight{display:grid;grid-template-columns:1.25fr .95fr;gap:18px}.v12-daily-brief,.v12-studio,.v12-member-spotlight{position:relative;overflow:hidden}.v12-live-pill{font-size:10px;font-weight:900;color:#1a9b71;background:#e8faf3;padding:7px 11px;border-radius:999px;white-space:nowrap}.v12-brief-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.v12-brief-stat{padding:15px;border-radius:16px;background:linear-gradient(145deg,#fff,#f5f7ff);border:1px solid #e9ecf7;display:grid;grid-template-columns:35px 1fr;align-items:center;gap:2px 9px}.v12-brief-stat span{grid-row:span 2;font-size:24px}.v12-brief-stat strong{font-size:22px;color:#263b82}.v12-brief-stat small{font-size:10px;color:#7a829b}.v12-story-preview{min-height:118px;border-radius:17px;background:linear-gradient(135deg,#fff2f8,#edf5ff);padding:13px}.v12-story-collage{display:flex;gap:8px;align-items:center}.v12-story-collage img{width:58px;height:58px;object-fit:cover;border-radius:12px;box-shadow:0 7px 16px #263b8215}.v12-story-event{min-width:95px;min-height:58px;padding:8px;border-radius:12px;background:#fff;display:grid;grid-template-columns:25px 1fr;align-items:center;border:1px solid #e9ecf7}.v12-story-event strong{font-size:10px}.v12-story-event small{grid-column:2;color:#7a829b;font-size:9px}.v12-story-preview>p{font-size:11px;color:#65708d;margin:9px 2px 0}.v12-empty-story{height:118px;display:grid;place-content:center;text-align:center;gap:4px;color:#7a829b}.v12-empty-story:first-letter{font-size:28px}.v12-empty-story strong{color:#314274}.v12-empty-story span{font-size:11px}.v12-member-rail{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.v12-member-card{border:1px solid #e7eaf5;background:linear-gradient(145deg,#fff,#f8f9ff);border-radius:18px;padding:15px;text-align:left;cursor:pointer;display:grid;grid-template-columns:52px 1fr;gap:2px 10px;align-items:center;transition:.2s}.v12-member-card:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(54,72,132,.11);border-color:#c4cef4}.v12-member-card img{width:52px;height:52px;border-radius:50%;object-fit:cover;grid-row:span 4}.v12-member-card strong{font-size:13px;color:#25386f}.v12-member-card small{font-size:10px;color:#7a829b}.v12-member-card span{font-size:10px;color:#4d63aa}.v12-member-card em{font-style:normal;font-size:9px;color:#e45b8a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hierarchy-tree{background:linear-gradient(145deg,#fff,#f7f8ff);border:1px solid #e6eaf5;border-radius:20px;padding:20px}.tree-caption{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.tree-caption span{font-size:11px;color:#7a829b}.hier-person{min-width:130px}.hier-person img{width:58px;height:58px;border-radius:50%;object-fit:cover;border:3px solid #fff;box-shadow:0 7px 16px #243a7d18}.hier-person strong{font-size:12px}.hier-person small{font-size:9px}.hier-branch{position:relative}.hier-children{display:flex;justify-content:center;gap:28px;position:relative;padding-top:22px}.hier-children:before{content:"";position:absolute;top:0;left:15%;right:15%;height:1px;background:#d8def1}.hier-children>.hier-branch:before{content:"";position:absolute;top:0;left:50%;width:1px;height:22px;background:#d8def1}.hier-couple{display:flex;align-items:center;justify-content:center;gap:9px}.spouse-link{font-size:14px}.v12-member-spotlight .panel-heading{margin-bottom:12px}
@media(max-width:950px){.v12-spotlight{grid-template-columns:1fr}.v12-member-rail{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.v12-brief-grid{grid-template-columns:repeat(2,1fr)}.v12-member-rail{grid-template-columns:1fr}.v12-story-collage{flex-wrap:wrap}.v12-story-event{flex:1}.hier-children{gap:10px;overflow-x:auto;justify-content:flex-start;padding-left:10px;padding-right:10px}.hierarchy-tree{overflow:hidden}}

/* ================= V13 AI FAMILY BRAIN ================= */
.v13-brain-card{background:linear-gradient(135deg,#fff8fd,#f3f7ff);border:1px solid #eadcf7}.v13-brain-pill{font-size:10px;font-weight:900;padding:6px 10px;border-radius:999px;background:#efe8ff;color:#7652d6}.v13-query-row{display:flex;gap:8px;align-items:stretch}.v13-query-row .input{flex:1;min-width:0}.v13-suggestions{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}.v13-suggestions button{border:1px solid #e4e7f3;background:#fff;border-radius:999px;padding:7px 10px;font-size:10px;color:#4b5f9d;cursor:pointer}.v13-suggestions button:hover{transform:translateY(-1px);box-shadow:0 5px 12px #334d9912}.v13-brain-answer{margin-top:10px;border-radius:14px;background:#fff;border:1px solid #e7eaf5;padding:11px;font-size:11px;color:#405078;min-height:38px}.v13-brain-answer.large{min-height:62px;font-size:13px;line-height:1.55}.v13-thinking{animation:v13pulse 1s infinite}@keyframes v13pulse{50%{opacity:.35}}.v13-brain-hero{display:grid;grid-template-columns:72px 1fr;gap:14px;align-items:center;background:linear-gradient(135deg,#fff7fc,#eef5ff)}.v13-brain-orb{width:64px;height:64px;border-radius:20px;display:grid;place-items:center;font-size:34px;background:linear-gradient(145deg,#ffd8ec,#dbe5ff);box-shadow:0 10px 24px #7652d61c}.v13-brain-hero .v13-query-row{grid-column:1/-1}.v13-brain-hero .v13-brain-answer{grid-column:1/-1}.v13-brain-hero .v13-suggestions{grid-column:1/-1}.v13-knowledge-list{display:grid;gap:8px;margin-top:12px}.v13-knowledge-item{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px;border:1px solid #e8eaf4;border-radius:13px;background:#fff}.v13-knowledge-item strong{display:block;font-size:11px;color:#334475}.v13-knowledge-item small{display:block;color:#8a91a6;font-size:9px;margin-top:3px}.v13-plan-item{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #edf0f6}.v13-plan-item:last-child{border-bottom:0}.v13-plan-item>span{font-size:22px}.v13-plan-item>div{flex:1}.v13-plan-item strong,.v13-plan-item small{display:block}.v13-plan-item strong{font-size:11px}.v13-plan-item small{font-size:9px;color:#8a91a6}.v13-search-results{margin-top:12px;display:grid;gap:7px}.v13-search-item{padding:10px 12px;background:#fff;border:1px solid #e8eaf4;border-radius:12px;font-size:11px;color:#465579}.v13-privacy-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.v13-privacy-grid>div{padding:13px;border-radius:14px;background:#fafbff;border:1px solid #e9ebf5;font-size:18px}.v13-privacy-grid strong,.v13-privacy-grid small{display:block}.v13-privacy-grid strong{font-size:11px;color:#334475}.v13-privacy-grid small{font-size:9px;color:#7f879d;margin-top:3px}
@media(max-width:700px){.v13-brain-hero{grid-template-columns:52px 1fr}.v13-brain-orb{width:50px;height:50px;font-size:26px}.v13-query-row{flex-direction:column}.v13-query-row .primary-btn{width:100%}.v13-privacy-grid{grid-template-columns:repeat(2,1fr)}.v13-knowledge-item{align-items:flex-start;flex-direction:column}.v13-knowledge-item button{width:100%}}

/* =========================================================
   V13.1 RESPONSIVE + HERO MEMORY GALLERY
   ========================================================= */
.sidebar{overflow-y:auto;overflow-x:hidden;height:100vh;scrollbar-width:thin;scrollbar-color:#e4b8cf transparent}.sidebar::-webkit-scrollbar{width:7px}.sidebar::-webkit-scrollbar-thumb{background:#e6b9d0;border-radius:20px}.sidebar::-webkit-scrollbar-track{background:transparent}
.main{min-width:0}.topbar{min-width:0}.top-actions{min-width:0}.hero-gallery-wrap{width:min(520px,45%);min-width:380px;flex:0 0 auto}.hero-gallery{position:relative;height:300px;border-radius:25px}.hero-gallery-main{position:absolute;inset:0;border-radius:25px;overflow:hidden;border:9px solid #fff;box-shadow:0 18px 35px rgba(54,67,120,.16);cursor:pointer;background:#eaf0ff}.hero-gallery-main img{width:100%;height:100%;object-fit:cover;display:block}.hero-gallery-main:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 52%,rgba(20,32,70,.7));pointer-events:none}.hero-gallery-caption{position:absolute;z-index:2;left:22px;right:22px;bottom:18px;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.3)}.hero-gallery-caption strong{display:block;font-size:17px}.hero-gallery-caption small{display:block;margin-top:4px;font-size:11px;opacity:.92}.hero-gallery-heart{position:absolute;right:12px;top:10px;z-index:3;font-size:34px;color:#ef3f87;filter:drop-shadow(0 4px 6px #fff)}.hero-gallery-thumbs{position:absolute;z-index:4;left:18px;bottom:-18px;display:flex;gap:8px}.hero-gallery-thumb{width:62px;height:52px;border:3px solid #fff;border-radius:12px;overflow:hidden;box-shadow:0 7px 16px rgba(30,45,90,.18);cursor:pointer;padding:0;background:#fff}.hero-gallery-thumb img{width:100%;height:100%;object-fit:cover}.hero-gallery-thumb.active{border-color:#ff4b96;transform:translateY(-3px)}.hero-gallery-empty{height:100%;display:grid;place-items:center;text-align:center;padding:30px;border:2px dashed #e4dced;border-radius:25px;background:linear-gradient(145deg,#fff,#f2f5ff);color:#707b96}.hero-gallery-empty strong{display:block;color:#2b3e72;font-size:17px;margin-bottom:5px}.hero-gallery-dots{position:absolute;right:20px;bottom:19px;z-index:5;display:flex;gap:5px}.hero-gallery-dot{width:7px;height:7px;border-radius:50%;background:#ffffff99;border:0;padding:0;cursor:pointer}.hero-gallery-dot.active{width:20px;border-radius:8px;background:#fff}.hero-gallery-member{display:inline-block;margin-top:6px;padding:4px 8px;border-radius:999px;background:#ffffff2b;font-size:10px}.mobile-menu-btn,.mobile-sidebar-backdrop{display:none}
@media(max-width:1180px) and (min-width:761px){.sidebar{width:230px}.main{margin-left:230px;width:calc(100% - 230px);padding:20px}.hero-gallery-wrap{min-width:320px}.hero{padding:28px}.hero h2{font-size:38px}.top-actions{flex-wrap:wrap}.search{min-width:190px}.members-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){
  body{overflow-x:hidden}.sidebar{width:285px;max-width:86vw;transform:translateX(-105%);transition:transform .25s ease;box-shadow:12px 0 35px rgba(50,60,100,.18);z-index:50}.sidebar.mobile-open{transform:translateX(0)}.sidebar-card{display:block;position:static;margin:18px 4px}.brand{justify-content:flex-start;margin-bottom:20px}.brand>div:last-child{display:block}.nav-link{justify-content:flex-start;padding:12px 13px}.nav-link span{display:inline}.main{margin-left:0;width:100%;padding:12px 12px 80px}.mobile-menu-btn{display:grid;place-items:center;position:fixed;left:12px;top:12px;width:43px;height:43px;border:1px solid #e5e8f2;border-radius:13px;background:#fff;color:#25365c;font-size:22px;z-index:45;box-shadow:0 7px 18px rgba(40,55,100,.12)}.mobile-sidebar-backdrop{position:fixed;inset:0;background:rgba(25,35,60,.35);z-index:40}.mobile-sidebar-backdrop.open{display:block}.topbar{display:block;padding:58px 4px 0;margin-bottom:14px}.topbar>div:first-child{padding-left:0}.topbar h1{font-size:24px;line-height:1.12}.top-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.top-actions .search{grid-column:1/-1;width:100%;min-width:0}.top-actions .language-select,.top-actions .profile-chip,.top-actions .logout-btn{width:100%;min-width:0}.hero{display:flex;flex-direction:column;align-items:stretch;padding:22px;gap:22px;border-radius:21px}.hero h2{font-size:35px}.hero p{line-height:1.65}.hero-gallery-wrap{width:100%;min-width:0}.hero-gallery{height:250px}.hero-gallery-thumbs{bottom:-15px;left:12px}.hero-gallery-thumb{width:55px;height:46px}.dashboard-safety-card{display:flex!important;flex-direction:column;align-items:stretch!important;gap:14px}.dashboard-safety-controls{display:grid!important;grid-template-columns:1fr 1fr;gap:8px!important}.dashboard-safety-controls .secondary-btn{grid-column:1/-1}.dashboard-admin-safety .panel-heading{align-items:flex-start}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}.stat-card{min-width:0}.two-column{grid-template-columns:1fr}.mini-gallery,.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.members-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.v12-spotlight{grid-template-columns:1fr}.v12-brief-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.v12-member-rail{grid-template-columns:1fr}.v12-story-collage{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}.v12-story-event{min-width:130px}.page-title-row{flex-direction:column;align-items:stretch}.page-title-row .primary-btn{width:100%}.filter-row,.form-grid{grid-template-columns:1fr}.panel{padding:15px;border-radius:16px}.panel-heading{align-items:flex-start}.panel-heading h3{line-height:1.25}.calendar-wrap,.family-calendar{overflow-x:auto}.hierarchy-tree{overflow-x:auto}.hierarchy-tree>*{min-width:640px}.admin-safety-alerts{grid-template-columns:1fr}.v13-privacy-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.v13-brain-hero{grid-template-columns:52px 1fr}.v13-query-row{flex-direction:column}.v13-query-row .primary-btn{width:100%}.v13-knowledge-item{align-items:flex-start;flex-direction:column}.v13-knowledge-item button{width:100%}
}
@media(max-width:430px){.main{padding-left:9px;padding-right:9px}.topbar h1{font-size:22px}.hero h2{font-size:31px}.hero-gallery{height:220px}.hero-gallery-caption{left:16px;right:16px;bottom:14px}.hero-gallery-caption strong{font-size:15px}.hero-gallery-thumbs{left:8px}.hero-gallery-thumb{width:50px;height:42px}.dashboard-safety-controls{grid-template-columns:1fr!important}.dashboard-safety-controls .secondary-btn{grid-column:auto}.stats-grid{grid-template-columns:1fr 1fr}.members-grid{grid-template-columns:1fr 1fr}.feature-strip{grid-template-columns:1fr}.top-actions{grid-template-columns:1fr}.top-actions .search,.top-actions .language-select,.top-actions .profile-chip,.top-actions .logout-btn{grid-column:1}.v13-privacy-grid{grid-template-columns:1fr 1fr}}

/* ================= V14 AI SAFETY + DEVICE RADAR ================= */
.safety-agent-panel,.device-center-panel{min-height:100%;background:linear-gradient(145deg,#fff,#fbf8ff)}
.safety-agent-status{padding:13px 15px;border-radius:14px;background:#f6f3ff;color:#5c4f87;font-weight:700;font-size:12px}
.safety-agent-last{margin-top:12px;padding:12px 14px;border:1px dashed #ddd3ef;border-radius:13px;background:#fff;font-size:12px;color:#59627d}.safety-agent-last strong,.safety-agent-last small{display:block}.safety-agent-last small{margin-top:5px;color:#858ba0}
.device-radar-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.device-card{display:flex;align-items:center;gap:11px;padding:12px 14px;border:1px solid #e9e2f5;border-radius:15px;background:linear-gradient(135deg,#fff,#f8f7ff)}.device-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#edf3ff;font-size:22px}.device-info{min-width:0;flex:1}.device-info strong,.device-info small{display:block}.device-info strong{font-size:12px}.device-info small{font-size:10px;color:#7c8195;margin-top:3px}.device-state{font-size:10px;font-weight:900;padding:5px 8px;border-radius:999px}.device-state.online{background:#eaf9f2;color:#15804d}.device-state.offline{background:#f2f0f5;color:#7d7889}.nearby-row{margin-top:8px;padding:8px 10px;border-radius:10px;background:#f6f9ff;color:#58627d;font-size:11px}.nearby-row span{float:right;color:#9a92aa}.nearby-chip{display:inline-block;margin-top:6px;margin-right:5px;padding:4px 7px;border-radius:999px;background:#edf3ff;color:#4560a1;font-size:9px;font-weight:800}
@media(max-width:760px){.device-radar-grid{grid-template-columns:1fr}.device-card{align-items:flex-start}.device-state{margin-left:auto}.nearby-row span{float:none;display:block;margin-top:3px}}

.v14-test-row{display:grid;grid-template-columns:1fr auto;gap:8px}.v14-example-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:7px}.v14-example-row .text-btn{font-size:10px;padding:4px 0}
@media(max-width:520px){.v14-test-row{grid-template-columns:1fr}.v14-test-row .secondary-btn{width:100%}}

/* V14.1 shared Family Safety alert feed */
.dashboard-family-alerts{border:1px solid rgba(239,93,143,.18);background:linear-gradient(135deg,#fff 0%,#fff7fb 55%,#f4f7ff 100%)}
.family-safety-alert-feed{display:grid;gap:10px}
.family-alert-item{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;padding:13px 15px;border:1px solid #eadff2;border-radius:16px;background:#fff}
.family-alert-item.emergency{border-color:#ffc4ce;box-shadow:0 6px 18px rgba(240,75,105,.08)}
.family-alert-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#fff0f3;font-size:20px}
.family-alert-item strong{display:block;color:#24356b;font-size:14px}
.family-alert-item small{display:block;color:#69728d;margin-top:3px;font-size:12px}
.family-alert-badge{font-size:10px;font-weight:800;letter-spacing:.06em;color:#c12c65;background:#ffe8f1;border-radius:999px;padding:6px 9px}
@media(max-width:760px){.family-alert-item{grid-template-columns:38px 1fr}.family-alert-badge{grid-column:2;justify-self:start}.family-alert-item{padding:11px}}

/* ================= V15 FAMILY TIMELINE + MEMORY STUDIO ================= */
.v15-timeline-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}.v15-summary-card{display:grid;grid-template-columns:44px 1fr;align-items:center;column-gap:10px;padding:15px;border-radius:17px;border:1px solid #f0deeb;background:linear-gradient(135deg,#fff,#fff7fb);box-shadow:0 8px 22px rgba(70,48,90,.04)}.v15-summary-card>span{grid-row:span 2;display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:#ffe7f1;font-size:22px}.v15-summary-card strong{font-size:23px;color:#29365d}.v15-summary-card small{font-size:11px;color:#85849d}.v15-filter-row{display:grid;grid-template-columns:1fr 220px;gap:10px;margin-bottom:18px}.v15-timeline-list{position:relative;display:grid;gap:14px;padding:4px 0}.v15-timeline-item{display:grid;grid-template-columns:46px minmax(0,1fr);gap:12px;position:relative}.v15-timeline-item:not(:last-child):before{content:"";position:absolute;left:22px;top:43px;bottom:-18px;width:2px;background:linear-gradient(#f2bdd8,#d8d9fb)}.v15-timeline-marker{width:44px;height:44px;display:grid;place-items:center;background:#fff0f7;border:1px solid #f2d6e6;border-radius:15px;font-size:21px;z-index:1}.v15-timeline-content{min-width:0;padding:15px 17px;border:1px solid #eee3ef;border-radius:17px;background:#fff;box-shadow:0 7px 20px rgba(48,49,86,.035)}.v15-timeline-meta{display:flex;justify-content:space-between;gap:10px;align-items:center}.v15-timeline-meta time{font-size:11px;color:#85849b}.v15-kind-pill{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;padding:5px 8px;border-radius:999px;background:#f2efff;color:#6b5ba7}.v15-kind-pill.event{background:#fff0f5;color:#c3447c}.v15-kind-pill.photo{background:#eaf7ff;color:#2875a7}.v15-kind-pill.story{background:#edf9f1;color:#2d8558}.v15-kind-pill.capsule{background:#fff5df;color:#946c16}.v15-timeline-content h3{font-size:16px;margin:10px 0 5px;color:#29365d}.v15-timeline-content p{font-size:12px;line-height:1.65;color:#69728d;margin:5px 0}.v15-timeline-photo{display:block;max-width:100%;max-height:300px;object-fit:cover;border-radius:13px;margin-top:10px}.v15-timeline-text{padding:10px 12px;background:#fbf8ff;border-radius:11px;white-space:pre-wrap}.v15-studio-layout{align-items:stretch}.v15-preview-panel{background:linear-gradient(145deg,#fff,#fbf8ff)}.v15-memory-card{position:relative;overflow:hidden;min-height:350px;padding:30px 25px;border-radius:24px;color:#fff;background:linear-gradient(140deg,#f16fa7 0%,#a38ae9 53%,#71b9e8 100%);display:flex;flex-direction:column;justify-content:center;box-shadow:0 18px 40px rgba(123,93,173,.2)}.v15-memory-card:before,.v15-memory-card:after{content:"";position:absolute;border-radius:50%;background:#ffffff16;pointer-events:none}.v15-memory-card:before{width:240px;height:240px;right:-75px;top:-70px}.v15-memory-card:after{width:180px;height:180px;left:-80px;bottom:-70px}.v15-memory-card>span,.v15-memory-card h2,.v15-memory-card p,.v15-memory-card small,.v15-memory-heart{position:relative;z-index:1}.v15-memory-card>span{font-size:10px;font-weight:900;letter-spacing:.16em}.v15-memory-card h2{font-size:clamp(27px,3vw,42px);line-height:1.1;margin:22px 0 14px;overflow-wrap:anywhere}.v15-memory-card p{font-size:14px;line-height:1.75;white-space:pre-wrap;overflow-wrap:anywhere}.v15-memory-card small{margin-top:22px;font-size:11px;opacity:.9}.v15-memory-heart{font-size:35px;align-self:flex-end;color:#fff3f9;text-shadow:0 5px 15px #5a326455}.v15-preview-meta{font-size:11px;color:#85849b;margin-top:12px}.v15-demo-note{font-size:11px;line-height:1.6;margin-top:12px}
@media(max-width:760px){.v15-timeline-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.v15-summary-card{padding:12px;grid-template-columns:36px 1fr}.v15-summary-card>span{width:34px;height:34px;font-size:18px}.v15-summary-card strong{font-size:20px}.v15-filter-row{grid-template-columns:1fr}.v15-timeline-item{grid-template-columns:38px minmax(0,1fr);gap:8px}.v15-timeline-marker{width:36px;height:36px;border-radius:12px;font-size:18px}.v15-timeline-item:not(:last-child):before{left:17px;top:38px}.v15-timeline-content{padding:12px}.v15-memory-card{min-height:300px;padding:24px 20px}}

/* V16 Multi-Family UI */
.family-login-banner{display:flex;justify-content:space-between;align-items:center;gap:12px;background:linear-gradient(135deg,#fff0f7,#edf3ff);border:1px solid #f0dce8;border-radius:16px;padding:13px 15px;margin:0 0 14px}.family-login-banner strong{display:block;font-size:13px}.family-login-banner small{display:block;color:var(--muted);margin-top:3px}.family-demo-badge{background:#fff;color:var(--blue);border-radius:20px;padding:6px 9px;font-size:10px;font-weight:800;white-space:nowrap}.login-helper{display:flex;justify-content:space-between;gap:10px;align-items:center;color:var(--muted);font-size:11px;margin-top:-4px;margin-bottom:15px}.family-space-hero{display:flex;align-items:center;gap:20px;background:linear-gradient(105deg,#fff0f6,#edf4ff);border-color:#f0dce8}.family-space-avatar{width:86px;height:86px;border-radius:26px;display:grid;place-items:center;background:linear-gradient(135deg,#ff4e9a,#647cff);font-size:42px;box-shadow:0 12px 28px #647cff24}.family-space-main h2{font:34px Georgia,serif;margin:7px 0}.family-space-main p{margin:0;color:var(--muted)}.family-space-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.family-space-chips span{background:#fff;border:1px solid var(--line);border-radius:20px;padding:7px 10px;font-size:11px;font-weight:800}.privacy-check-list{display:grid;gap:10px}.privacy-check-list div{background:#f7fbff;border:1px solid #e4edf9;border-radius:12px;padding:11px;color:#405274;font-weight:700}.invite-code-box{display:flex;align-items:center;gap:10px;background:#f7f8ff;border:1px dashed #b7c2e8;border-radius:15px;padding:15px}.invite-code-box strong{font:24px/1 Segoe UI,Arial,sans-serif;letter-spacing:2px;color:var(--pink);flex:1}.security-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.security-summary-item{padding:15px;border-radius:15px;background:linear-gradient(145deg,#fff,#f7f8ff);border:1px solid var(--line)}.security-summary-item span{display:block;font-size:22px}.security-summary-item strong{display:block;font-size:22px;margin-top:7px}.security-summary-item small{color:var(--muted)}
@media(max-width:750px){.family-login-banner{align-items:flex-start;flex-direction:column}.login-helper{align-items:flex-start;flex-direction:column}.family-space-hero{align-items:flex-start;flex-direction:column}.family-space-main h2{font-size:28px}.security-summary-grid{grid-template-columns:repeat(2,1fr)}}


/* V17 FINAL MOBILE + IMAGE RENDER FIXES */
html,body{width:100%;min-width:0;overflow-x:hidden}
img{max-width:100%}
@media(max-width:760px){
  html,body{width:100%;min-width:0;overflow-x:hidden}
  .app-shell{display:block;width:100%;min-height:100vh}
  .main{display:block;width:100%!important;max-width:none!important;min-width:0!important;margin:0!important;padding:12px 12px 80px!important}
  .page,.page.active{width:100%;max-width:none;min-width:0}
  .topbar{width:100%;max-width:none;display:block;padding:58px 0 0!important}
  .topbar>div:first-child{width:100%;max-width:none}
  .topbar h1{font-size:clamp(21px,7vw,28px);max-width:100%;overflow-wrap:anywhere}
  .top-actions{width:100%;display:grid!important;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
  .top-actions .search{grid-column:1/-1;width:100%!important;min-width:0!important}
  .top-actions .language-select,.top-actions .profile-chip,.top-actions .logout-btn{width:100%!important;min-width:0!important}
  .hero{width:100%;max-width:none;min-width:0;padding:20px!important}
  .hero>div:first-child{min-width:0;width:100%}
  .hero h2{font-size:clamp(30px,9vw,38px);overflow-wrap:anywhere}
  .hero p{max-width:100%;font-size:13px}
  .hero-gallery-wrap,.hero-gallery{width:100%!important;min-width:0!important}
  .hero-gallery{height:235px!important}
  .stats-grid,.two-column,.feature-strip,.dashboard-family-alerts,.dashboard-admin-safety,.memory-showcase,.family-command-center,.dashboard-safety-card,.panel{width:100%;max-width:none;min-width:0}
  .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .gallery-grid,.mini-gallery{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .gallery-card,.member-card,.panel,.stat-card{min-width:0;overflow:hidden}
  .gallery-card img,.mini-gallery img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover}
  .member-card img{width:76px;height:76px;max-width:76px}
  .memory-rail{width:100%;max-width:none;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .memory-card{flex-basis:175px;min-width:175px}
  .dashboard-safety-controls{width:100%!important;grid-template-columns:1fr 1fr!important}
  .dashboard-safety-controls .secondary-btn{grid-column:1/-1;width:100%}
  .form-grid,.filter-row{grid-template-columns:1fr!important}
  .members-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:430px){
  .main{padding:10px 9px 70px!important}
  .topbar{padding-top:55px!important}
  .top-actions{grid-template-columns:1fr 1fr!important}
  .hero{padding:17px!important;border-radius:18px}
  .hero-gallery{height:205px!important}
  .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px}
  .stat-card{padding:10px;grid-template-columns:34px 1fr;gap:3px 8px}
  .stat-card .stat-icon{width:34px;height:34px;font-size:17px}
  .stat-card strong{font-size:18px}
  .stat-card small{font-size:9px}
  .members-grid,.gallery-grid,.mini-gallery{grid-template-columns:1fr 1fr!important;gap:8px}
  .panel{padding:12px!important;border-radius:15px}
  .memory-card{flex-basis:155px;min-width:155px;height:145px}
}


/* V17.5 FINAL MOBILE LAYOUT FIX
   Same V17 design. No redesign. */
@media (max-width:760px){
  html,body{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow-x:hidden!important;
  }

  .app-shell{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
  }

  .sidebar{
    position:fixed!important;
    left:0!important;
    top:0!important;
    bottom:0!important;
    width:min(285px,86vw)!important;
    max-width:86vw!important;
    margin:0!important;
    transform:translateX(-110%)!important;
    transition:transform .25s ease!important;
    z-index:100!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
  }

  .sidebar.mobile-open{
    transform:translateX(0)!important;
  }

  .main,
  .app-shell>.main{
    display:block!important;
    position:relative!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin:0!important;
    margin-left:0!important;
    padding:12px 10px 70px!important;
  }

  .mobile-menu-btn{
    display:grid!important;
    position:fixed!important;
    left:12px!important;
    top:12px!important;
    width:44px!important;
    height:44px!important;
    z-index:110!important;
  }

  .mobile-sidebar-backdrop{
    display:none!important;
    position:fixed!important;
    inset:0!important;
    z-index:90!important;
  }

  .mobile-sidebar-backdrop.open{
    display:block!important;
  }

  .topbar{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin:0 0 14px!important;
    padding:58px 2px 0!important;
  }

  .topbar h1{
    max-width:100%!important;
    font-size:clamp(22px,7.5vw,30px)!important;
    line-height:1.12!important;
    overflow-wrap:anywhere!important;
  }

  .top-actions{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:8px!important;
  }

  .top-actions .search{
    grid-column:1/-1!important;
    width:100%!important;
    min-width:0!important;
  }

  .top-actions .language-select,
  .top-actions .profile-chip,
  .top-actions .logout-btn{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }

  .hero,
  .dashboard-safety-card,
  .dashboard-family-alerts,
  .stats-grid,
  .two-column,
  .memory-showcase,
  .family-command-center,
  .feature-strip,
  .panel{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }

  .hero{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    padding:18px!important;
    gap:18px!important;
  }

  .hero h2{
    font-size:clamp(31px,10vw,39px)!important;
    line-height:1.06!important;
  }

  .hero-gallery-wrap,
  .hero-gallery{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }

  .hero-gallery{
    height:210px!important;
  }

  .dashboard-safety-card{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:12px!important;
  }

  .dashboard-safety-controls{
    width:100%!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:8px!important;
  }

  .dashboard-safety-controls .secondary-btn{
    grid-column:1/-1!important;
    width:100%!important;
  }

  .dashboard-family-alerts{
    display:block!important;
  }

  .stats-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }

  .gallery-grid,
  .mini-gallery,
  .members-grid{
    width:100%!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }

  .gallery-card,
  .member-card,
  .stat-card,
  .panel{
    min-width:0!important;
    overflow:hidden!important;
  }

  .gallery-card img,
  .mini-gallery img{
    width:100%!important;
    height:auto!important;
    aspect-ratio:1/1!important;
    object-fit:cover!important;
  }
}

@media (max-width:430px){
  .main,
  .app-shell>.main{
    padding-left:8px!important;
    padding-right:8px!important;
  }

  .top-actions{
    grid-template-columns:1fr!important;
  }

  .top-actions .search,
  .top-actions .language-select,
  .top-actions .profile-chip,
  .top-actions .logout-btn{
    grid-column:1!important;
  }

  .hero{
    padding:16px!important;
  }

  .hero h2{
    font-size:31px!important;
  }

  .hero-gallery{
    height:195px!important;
  }

  .stats-grid,
  .members-grid,
  .gallery-grid,
  .mini-gallery{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

/* V17.6 requested UX additions — same V17 theme/layout */
.dashboard-active-trip{justify-content:flex-start!important}.event-row{position:relative}.event-actions{margin-left:auto!important;flex-wrap:wrap}.profile-event-actions{margin-left:auto!important}.calendar-avatar-btn,.calendar-legend-member{border:0;background:transparent;cursor:pointer;padding:0}.calendar-avatar-btn:hover .calendar-avatar{transform:scale(1.12);box-shadow:0 0 0 3px rgba(255,77,152,.22)}.calendar-avatar{transition:transform .18s ease,box-shadow .18s ease}.calendar-event-click{border:0;background:transparent;cursor:pointer;text-align:left;font:inherit;color:inherit;width:100%;padding:2px 0}.calendar-event-click:hover{transform:translateX(2px);text-decoration:underline}.calendar-legend-member{display:inline-flex;align-items:center;gap:6px;margin:3px 8px 3px 0}.calendar-legend-member img{transition:transform .18s ease}.calendar-legend-member:hover img{transform:scale(1.12)}.gallery-card img,.member-card img,.event-image,.today-moment img,.on-day-art img,.post-preview img,.hero-gallery img,.v12-member-card img,.birthday-template img{transition:transform .2s ease,box-shadow .2s ease}.gallery-card:hover img,.member-card:hover>img,.event-row:hover .event-image,.today-moment:hover img,.on-day:hover .on-day-art img,.post-preview:hover img,.hero-gallery-main:hover img,.v12-member-card:hover img,.birthday-template:hover img{transform:scale(1.04);box-shadow:0 8px 24px rgba(50,60,100,.18)}.alert-delete-btn{margin-left:8px;white-space:nowrap}.birthday-popup-backdrop{z-index:100}.birthday-popup{width:min(850px,96vw);background:linear-gradient(145deg,#fff8fc,#f2f5ff);border:1px solid #f0d8eb}.birthday-template-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.birthday-template{text-align:center;padding:18px;border-radius:22px;background:linear-gradient(145deg,#fff,#fff0f7,#eef3ff);border:1px solid #eadcf3;box-shadow:0 10px 30px rgba(80,70,120,.08)}.birthday-template img{width:105px;height:105px;object-fit:cover;border-radius:50%;border:5px solid #fff;margin:auto;display:block}.birthday-sparkles{font-size:24px;margin:8px 0}.birthday-template h2{font:28px Georgia,serif;color:#25365c;margin:8px 0}.birthday-template p{color:var(--muted);line-height:1.55}.birthday-template strong{display:block;margin:10px 0;color:#e83c83}@media(max-width:600px){.event-row{display:grid;grid-template-columns:48px 42px 58px 1fr;gap:8px}.event-row .event-actions{grid-column:1/-1;margin-left:0!important}.birthday-popup{padding:16px}.birthday-template-grid{grid-template-columns:1fr}.birthday-template h2{font-size:24px}}

/* V17.7 AI + Member Gallery enhancements — same visual theme */
.gallery-filter-bar{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0 4px}.gallery-filter{display:inline-flex;align-items:center;gap:7px;border:1px solid #e4dced;background:#fff;border-radius:999px;padding:7px 11px;color:#344b7c;font-weight:700;cursor:pointer}.gallery-filter.active{box-shadow:0 6px 16px rgba(50,65,110,.12);border-color:#ff5a98}.gallery-filter span{font-size:11px;opacity:.7}.gallery-filter-avatar{width:24px!important;height:24px!important;border-radius:50%!important;object-fit:cover!important;display:inline-block!important}.gallery-ai-hint{margin-top:12px;padding:11px 14px;border-radius:13px;background:linear-gradient(90deg,#fff5fb,#f3f7ff);color:#536487;font-size:13px}.gallery-card-enhanced{cursor:pointer;transition:transform .18s ease,box-shadow .18s ease}.gallery-card-enhanced:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(55,70,115,.14)}.gallery-card-enhanced img{transition:transform .22s ease}.gallery-card-enhanced:hover img{transform:scale(1.025)}.gallery-caption small{display:block;margin-top:4px;color:#7b86a2}.ai-brain-voice-controls{margin-top:10px}.ai-brain-voice-controls .voice-btn{flex:1;min-width:140px}
@media(max-width:760px){.gallery-filter-bar{overflow-x:auto;flex-wrap:nowrap;padding-bottom:5px}.gallery-filter{flex:0 0 auto}.gallery-ai-hint{font-size:12px}.ai-brain-voice-controls{display:grid;grid-template-columns:1fr 1fr}.ai-brain-voice-controls .voice-btn:last-child{grid-column:1/-1}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.gallery-card-enhanced{min-width:0}.gallery-card-enhanced img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover}}
@media(max-width:430px){.gallery-grid{grid-template-columns:1fr 1fr}.gallery-filter{font-size:12px;padding:6px 9px}.ai-brain-voice-controls{grid-template-columns:1fr}}
