/* NHÀ MÌNH - V1
   Tông màu: kem giấy cũ + nâu đỏ ký ức */
:root{
  --bg:#f7f1e8;--paper:#fffaf3;--paper-2:#fbf3e8;--ink:#3b281f;--muted:#806f63;
  --wine:#7b2619;--wine-2:#9e3a28;--gold:#c6a36a;--line:#eadaca;--soft:#f3e5d6;
  --shadow:0 12px 35px rgba(84,48,28,.08);--radius:18px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:"Segoe UI","Noto Sans","Helvetica Neue",Arial,sans-serif}body.modal-open{overflow:hidden}
a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}.muted{color:var(--muted)}
.topbar{height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1500px)/2));background:rgba(255,250,243,.96);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30;backdrop-filter:blur(14px)}
.brand{display:flex;align-items:center;gap:12px;color:var(--wine)}.brand-mark{width:48px;height:48px;border:2px solid var(--wine);border-radius:15px;display:grid;place-items:center;font-size:31px;font-family:"Segoe UI","Noto Sans",Arial,sans-serif}.brand b{display:block;font-family:"Segoe UI","Noto Sans",Arial,sans-serif;font-size:23px;letter-spacing:1px}.brand small{display:block;color:var(--ink);font-size:12px;margin-top:3px}
.top-actions{display:flex;gap:18px;align-items:center}.top-actions>a{font-size:28px}.avatar-link img,.avatar{width:42px;height:42px;border-radius:50%;object-fit:cover;border:2px solid #f1dcc5}
.app-shell{max-width:1500px;margin:0 auto;padding:22px 24px 96px}
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.family-feed-layout{display:grid;grid-template-columns:270px minmax(0,1fr) 300px;gap:22px;align-items:start}.left-rail,.right-rail{display:grid;gap:16px;position:sticky;top:104px}.feed-column{min-width:0}
.family-switch{display:flex;align-items:center;gap:12px;padding:12px}.family-thumb{width:48px;height:48px;border-radius:13px;background:linear-gradient(145deg,#8f3122,#c79662);display:grid;place-items:center;color:white;font-size:28px}.family-switch small{display:block;color:var(--muted);margin-top:3px}
.share-panel,.topic-panel,.suggestion-card,.timeline-mini,.month-memory,.stats-card{padding:18px}.card h3,.card h4{font-family:"Segoe UI","Noto Sans",Arial,sans-serif;color:#5d251c;margin:0 0 12px}.share-panel p,.suggestion-card p{color:var(--muted);font-size:13px}
.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.quick-grid button{border:1px solid var(--line);background:#fff8ef;border-radius:12px;padding:12px 6px;color:var(--wine);cursor:pointer}.quick-grid span{display:block;color:var(--ink);font-size:12px;margin-top:6px}
.topic-panel a{display:flex;padding:12px 4px;border-bottom:1px solid #efe2d5;font-size:14px}.topic-panel a:last-child{border:0}
.suggestion-card{background:linear-gradient(160deg,#fff4e8,#f7dfcd)}.suggestion-card button{width:100%;text-align:left;border:0;border-top:1px solid #ead1bd;background:transparent;padding:11px 0;cursor:pointer;color:#633327}
.feed-title{text-align:center;padding:3px 0 16px}.feed-title h1{font:700 25px/1.25 "Segoe UI","Noto Sans",Arial,sans-serif;color:var(--wine);margin:0}.feed-title p{margin:7px 0;color:var(--muted)}
.filter-tabs{display:flex;gap:8px;overflow:auto;padding:0 0 14px}.filter-tabs a{white-space:nowrap;border:1px solid var(--line);background:#fff9f2;padding:9px 18px;border-radius:999px;font-size:13px}.filter-tabs a.active{background:var(--wine);color:white;border-color:var(--wine)}
.composer-trigger{display:flex;width:100%;align-items:center;gap:12px;padding:14px 16px;margin-bottom:14px;color:var(--muted);cursor:pointer;text-align:left}.composer-trigger span{flex:1}
.memory-card{background:var(--paper);border:1px solid var(--line);border-radius:20px;margin-bottom:16px;overflow:hidden;box-shadow:var(--shadow)}.memory-head{display:flex;align-items:center;gap:11px;padding:14px 16px}.memory-author{min-width:0;flex:1}.memory-author b{display:block}.memory-author small{display:block;color:var(--muted);font-size:12px;margin-top:4px}.memory-badge{font-size:11px;color:var(--wine);background:#f8eadc;border:1px solid #ecd4c0;border-radius:999px;padding:6px 10px}
.memory-body{padding:2px 18px 16px}.memory-body h3{font:700 20px "Segoe UI","Noto Sans",Arial,sans-serif;margin:8px 0;color:#47271e}.post-text{line-height:1.65}.memory-body.bg-sepia,.memory-body.bg-dusk,.memory-body.bg-floral{padding:35px 26px;margin:0 14px 14px;border-radius:16px;text-align:center;font-size:18px}.memory-body.bg-sepia{background:linear-gradient(135deg,#d9c29f,#f2dfbd)}.memory-body.bg-dusk{color:white;background:radial-gradient(circle at 70% 15%,#a16b62 0 5%,transparent 6%),linear-gradient(135deg,#2e2034,#774355)}.memory-body.bg-floral{background:linear-gradient(rgba(255,248,239,.86),rgba(255,248,239,.86)),repeating-linear-gradient(45deg,#f3d9c6 0 3px,#fff6ec 3px 13px)}
.media-grid{display:grid;gap:4px;padding:0 14px 12px;position:relative}.media-grid img{width:100%;height:220px;object-fit:cover;border-radius:12px}.media-count-2,.media-count-3,.media-count-4{grid-template-columns:repeat(2,1fr)}.media-count-3 img:first-child{grid-row:span 2;height:444px}.more-media{position:absolute;right:28px;bottom:28px;background:rgba(40,20,10,.68);color:white;padding:12px 15px;border-radius:12px;font-size:24px}
.memory-meta,.memory-actions{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;border-top:1px solid #efe4d8;color:var(--muted);font-size:13px}.memory-actions{padding:5px 10px}.action-btn{flex:1;border:0;background:transparent;padding:10px 5px;color:#5a453a;cursor:pointer}.action-btn.active{color:#b43528;font-weight:700}
.comment-list{padding:0 16px}.comment-row{display:flex;gap:8px;margin:9px 0}.comment-row img{width:30px;height:30px;border-radius:50%;object-fit:cover}.comment-row div{background:#f5eee5;border-radius:12px;padding:7px 10px}.comment-row b{font-size:12px}.comment-row p{margin:3px 0 0;font-size:13px}
.comment-form{display:flex;gap:8px;padding:10px 16px 14px}.comment-form input{flex:1;border:1px solid var(--line);background:#fffdf9;border-radius:999px;padding:10px 14px}.comment-form button{border:0;background:var(--wine);color:white;border-radius:999px;padding:0 16px}
.timeline-mini a{display:grid;grid-template-columns:50px 1fr;gap:9px;padding:10px 0;border-bottom:1px solid #efe1d4}.timeline-mini a b{color:var(--wine)}.soft-link{display:block!important;text-align:center!important;grid-template-columns:1fr!important;border:0!important;background:#f5e3d3;border-radius:12px;margin-top:8px;color:var(--wine);font-size:13px}
.month-block{display:flex;justify-content:space-between;padding:10px 0;border-bottom:2px solid var(--wine)}.month-memory p{font-size:13px;color:var(--muted);line-height:1.5}
.stats-card{display:grid;grid-template-columns:repeat(3,1fr);text-align:center}.stats-card h3{grid-column:1/-1}.stats-card b{display:block;color:var(--wine);font-size:22px}.stats-card span{font-size:11px;color:var(--muted)}
.page-hero{background:linear-gradient(135deg,#fffaf3,#f2e1ce);border:1px solid var(--line);border-radius:24px;padding:28px;box-shadow:var(--shadow)}.page-hero.compact{margin-bottom:20px}.page-hero h1{font:700 30px "Segoe UI","Noto Sans",Arial,sans-serif;color:var(--wine);margin:6px 0}.page-hero p{color:var(--muted)}.eyebrow{font-size:11px;letter-spacing:2px;color:#a46d4e}
.directory-search{display:flex;max-width:580px;margin-top:18px}.directory-search input{flex:1;padding:12px 15px;border:1px solid var(--line);border-radius:12px 0 0 12px}.directory-search button{background:var(--wine);color:white;border:0;padding:0 24px;border-radius:0 12px 12px 0}.directory-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.person-card{display:flex;gap:12px;align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:14px}.person-card img{width:56px;height:56px;border-radius:50%;object-fit:cover}.person-card h3{margin:0 0 5px;font-size:15px}.person-card p{margin:0;color:var(--muted);font-size:12px}
.timeline-page{max-width:950px;margin:auto}.timeline-shell{position:relative;padding:8px 0 40px}.timeline-shell:before{content:"";position:absolute;left:118px;top:0;bottom:0;width:2px;background:#caa88b}.timeline-item{display:grid;grid-template-columns:92px 30px 1fr;gap:10px;align-items:start;margin-bottom:22px}.timeline-year{font:700 21px "Segoe UI","Noto Sans",Arial,sans-serif;color:var(--wine);padding-top:17px;text-align:right}.timeline-dot{width:14px;height:14px;background:var(--wine);border:4px solid #f7e8d9;border-radius:50%;margin:22px auto;z-index:1}.timeline-content{padding:18px}.timeline-content small{color:var(--muted)}.timeline-content h3{font:700 20px "Segoe UI","Noto Sans",Arial,sans-serif;margin:7px 0}.timeline-content p{color:var(--muted);line-height:1.5}.timeline-content span{color:var(--wine);font-size:13px;font-weight:600}
.single-post-page{max-width:760px;margin:auto}.back-link{display:inline-block;margin:0 0 12px;color:var(--wine)}
.tree-hero{display:flex;align-items:center;justify-content:space-between}.tree-toolbar{display:flex;gap:7px;align-items:center;padding:10px;margin-bottom:12px}.tree-toolbar span{flex:1}.tree-toolbar button{border:1px solid var(--line);background:#fff8ef;padding:9px 13px;border-radius:10px;cursor:pointer}.tree-toolbar button.active{background:var(--wine);color:white}.family-tree-canvas{min-height:640px;overflow:auto;border:1px solid var(--line);border-radius:24px;background:radial-gradient(#e7d8c8 1px,transparent 1px),#fffaf3;background-size:26px 26px;padding:40px}.tree-stage{transform-origin:top center;min-width:900px}.tree-level{display:flex;justify-content:center;gap:20px;margin:0 0 68px;position:relative}.tree-card{width:210px;display:flex;gap:10px;align-items:center;background:#fff;border:1px solid #e3cdb8;border-radius:16px;padding:12px;box-shadow:0 9px 24px rgba(75,39,20,.08)}.tree-card.is-me{border:2px solid var(--wine);background:#fff2e3}.tree-card img{width:58px;height:58px;border-radius:50%;object-fit:cover}.tree-card b{display:block;font-family:"Segoe UI","Noto Sans",Arial,sans-serif}.tree-card small,.tree-dead{display:block;font-size:11px;color:var(--muted);margin-top:3px}.tree-dead{color:#8b5e48}.tree-loading{text-align:center;color:var(--muted);padding:80px}
.modal-backdrop{position:fixed;inset:0;background:rgba(44,25,18,.48);z-index:100;display:grid;place-items:center;padding:16px}.modal-backdrop[hidden]{display:none}.composer-modal,.member-modal{width:min(760px,100%);max-height:92vh;overflow:auto;background:var(--paper);border-radius:24px;padding:22px;box-shadow:0 30px 80px rgba(32,18,12,.28)}.member-modal{width:min(650px,100%)}.composer-top{display:flex;justify-content:space-between;gap:20px;align-items:start}.composer-top h2{font:700 27px "Segoe UI","Noto Sans",Arial,sans-serif;color:var(--wine);margin:0}.composer-top p{color:var(--muted);margin:5px 0 16px}.modal-close{border:0;background:#f2e7dc;border-radius:50%;width:38px;height:38px;font-size:24px;cursor:pointer}
label{display:block;font-size:13px;color:#674d3e;margin:10px 0}input,textarea,select{width:100%;border:1px solid #dfcebd;background:#fffdf9;border-radius:12px;padding:11px 12px;outline:0;margin-top:6px;color:var(--ink)}input:focus,textarea:focus,select:focus{border-color:#b16a50;box-shadow:0 0 0 3px rgba(144,62,39,.08)}.form-grid{display:grid;gap:12px}.form-grid.two{grid-template-columns:repeat(2,1fr)}.composer-memory-time,.composer-background{border:1px solid var(--line);background:#fff8f0;border-radius:16px;padding:13px;margin:14px 0}.time-choice-grid{display:flex;gap:8px;flex-wrap:wrap}.time-choice-grid label{display:flex;align-items:center;gap:5px;background:white;border:1px solid var(--line);border-radius:999px;padding:8px 10px;margin:0}.time-choice-grid input{width:auto;margin:0}.bg-swatch{display:inline-block;margin:0 5px 0 0}.bg-swatch input{display:none}.bg-swatch span{display:block;width:38px;height:38px;border-radius:50%;border:3px solid white;box-shadow:0 0 0 1px var(--line);cursor:pointer}.bg-swatch input:checked+span{box-shadow:0 0 0 2px var(--wine)}.bg-swatch.plain span{background:white}.bg-swatch.sepia span{background:#dfc497}.bg-swatch.dusk span{background:#5b3448}.bg-swatch.floral span{background:#f6d8cf}.composer-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.btn{border:0;border-radius:12px;padding:11px 17px;cursor:pointer}.btn.primary{background:var(--wine);color:white}.btn.ghost{background:#f0e7df;color:#64483a}.btn.wide{width:100%;padding:13px}
.auth-page{min-height:calc(100vh - 130px);display:grid;grid-template-columns:1fr 480px;gap:60px;align-items:center;max-width:1100px;margin:auto}.auth-story{text-align:center;padding:40px}.auth-logo{font-size:95px;color:var(--wine);font-family:"Segoe UI","Noto Sans",Arial,sans-serif}.auth-story h1{font:700 52px "Segoe UI","Noto Sans",Arial,sans-serif;color:var(--wine);margin:0}.auth-story p{font-size:25px;line-height:1.5}.auth-story em{color:#a34b37}.auth-quote{max-width:480px;margin:25px auto;padding:18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted);font-family:"Segoe UI","Noto Sans",Arial,sans-serif;font-style:italic}.auth-card{background:var(--paper);border:1px solid var(--line);border-radius:24px;padding:28px;box-shadow:var(--shadow)}.auth-card h2{font:700 27px "Segoe UI","Noto Sans",Arial,sans-serif;color:var(--wine);margin:0}.auth-card>p{color:var(--muted)}.alert{background:#fce3dc;color:#8d2a1b;border:1px solid #efc6ba;padding:11px;border-radius:10px;margin:12px 0}.auth-switch{text-align:center}.auth-switch a{color:var(--wine);font-weight:700}.empty-state{padding:30px;text-align:center;color:var(--muted)}
.mobile-nav{display:none}
#appToast{position:fixed;left:50%;bottom:30px;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#3b281f;color:#fff;padding:11px 18px;border-radius:999px;z-index:200;transition:.2s}#appToast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:1150px){.family-feed-layout{grid-template-columns:230px minmax(0,1fr)}.right-rail{display:none}.directory-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:820px){
 .topbar{height:64px;padding:0 16px}.brand-mark{width:36px;height:36px;font-size:23px}.brand b{font-size:18px}.brand small{display:none}.top-actions>a:not(.avatar-link){display:none}
 .app-shell{padding:14px 12px 90px}.family-feed-layout{display:block}.left-rail,.right-rail{display:none}.feed-title h1{font-size:20px}.filter-tabs{margin:0 -12px;padding:0 12px 12px}
 .memory-badge{max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-grid img{height:180px}.memory-body.bg-sepia,.memory-body.bg-dusk,.memory-body.bg-floral{margin:0 8px 8px}
 .mobile-nav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:80;background:rgba(255,250,243,.97);border-top:1px solid var(--line);padding:6px max(8px,env(safe-area-inset-left)) calc(6px + env(safe-area-inset-bottom));box-shadow:0 -10px 25px rgba(77,43,25,.08)}
 .mobile-nav a,.mobile-compose{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:0;background:transparent;color:#66483a;font-size:10px}.mobile-nav a span{font-size:22px}.mobile-nav a.active{color:var(--wine);font-weight:700}.mobile-compose{width:52px;height:52px;border-radius:50%;background:var(--wine);color:white;margin:-24px auto 0;font-size:30px;box-shadow:0 7px 18px rgba(105,30,20,.28)}.mobile-compose small{font-size:9px;margin-top:6px;color:var(--wine);white-space:nowrap}
 .directory-grid{grid-template-columns:1fr}.timeline-shell:before{left:77px}.timeline-item{grid-template-columns:57px 20px 1fr}.timeline-year{font-size:16px}.tree-hero{display:block}.tree-hero .btn{margin-top:10px}.tree-toolbar{overflow:auto}.family-tree-canvas{padding:20px 10px}.tree-stage{min-width:780px}
 .auth-page{display:block}.auth-story{padding:25px 15px}.auth-logo{font-size:60px}.auth-story h1{font-size:36px}.auth-story p{font-size:18px}.auth-card{padding:20px}.form-grid.two{grid-template-columns:1fr}
}


/* ===== AUTH V1.1 ===== */
.auth-screen{
  min-height:calc(100vh - 126px);
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(430px,.92fr);
  background:
    radial-gradient(circle at 18% 13%,rgba(190,145,91,.18),transparent 25%),
    linear-gradient(135deg,#f5eadc 0%,#fffaf3 47%,#f7eee4 100%);
  border:1px solid var(--line);
  border-radius:30px;
  overflow:hidden;
  box-shadow:0 25px 70px rgba(72,40,24,.10);
}
.auth-memory-side{
  position:relative;
  min-height:720px;
  padding:52px;
  color:#fff8ee;
  background:
    linear-gradient(110deg,rgba(70,25,17,.96),rgba(112,39,25,.90)),
    radial-gradient(circle at 80% 18%,#bb7952,transparent 36%);
  overflow:hidden;
}
.auth-memory-side:before,
.auth-memory-side:after{
  content:"";
  position:absolute;
  border:1px solid rgba(245,221,192,.18);
  border-radius:50%;
}
.auth-memory-side:before{width:520px;height:520px;right:-250px;top:-220px}
.auth-memory-side:after{width:380px;height:380px;left:-210px;bottom:-180px}
.auth-memory-inner{position:relative;z-index:1;height:100%;display:flex;flex-direction:column}
.auth-house-logo{display:flex;align-items:center;gap:14px}
.auth-house-logo .house-roof{
  width:58px;height:58px;display:grid;place-items:center;border:1px solid rgba(255,241,220,.7);
  border-radius:18px;font:42px "Segoe UI","Noto Sans",Arial,sans-serif;background:rgba(255,255,255,.06)
}
.auth-house-logo strong{display:block;font:700 26px "Segoe UI","Noto Sans",Arial,sans-serif;letter-spacing:1.6px}
.auth-house-logo small{display:block;margin-top:4px;color:#eed9c2;font-size:12px}
.auth-memory-copy{max-width:650px;margin:auto 0}
.auth-memory-copy .eyebrow{color:#e9c7a8}
.auth-memory-copy h1{font:700 clamp(38px,4.2vw,65px)/1.12 "Segoe UI","Noto Sans",Arial,sans-serif;margin:18px 0;color:#fffaf3}
.auth-memory-copy h1 em{display:inline;color:#f0c09b;font-weight:400}
.auth-memory-copy p{max-width:590px;font-size:16px;line-height:1.8;color:#ebd7c6}
.auth-feature-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:auto}
.auth-feature-row>div{border:1px solid rgba(246,222,198,.22);background:rgba(255,255,255,.055);border-radius:16px;padding:14px;text-align:center}
.auth-feature-row b{display:block;font:700 25px/1.25 "Segoe UI","Noto Sans",Arial,sans-serif;color:#efc7a2}
.auth-feature-row span{display:block;font-size:11px;line-height:1.45;color:#f2dfce;margin-top:5px}

.auth-form-side{display:flex;align-items:center;justify-content:center;padding:45px}
.auth-modern-card{width:min(490px,100%);background:#fffaf4;border:1px solid #ead8c8;border-radius:26px;padding:34px;box-shadow:0 20px 55px rgba(78,42,23,.09)}
.auth-modern-card h2{font:700 31px "Segoe UI","Noto Sans",Arial,sans-serif;color:#5f2319;margin:7px 0}
.auth-kicker{display:block;color:#9f6048;font-size:10px;letter-spacing:2px;font-weight:800}
.auth-subtitle{color:#806c60;line-height:1.55;margin:0 0 24px}
.auth-mobile-brand{display:none}
.auth-field{margin:15px 0}
.auth-field>span{display:flex;align-items:center;gap:5px;font-weight:700;color:#4b352a;font-size:12px}
.auth-field>span em{font-style:normal;font-weight:400;color:#a39082}
.auth-field>small{display:block;color:#9b897c;font-size:10px;margin:6px 3px 0}
.auth-input-wrap{display:flex;align-items:center;border:1px solid #ddcbb9;background:#fffdf9;border-radius:14px;overflow:hidden;margin-top:7px;transition:.2s}
.auth-input-wrap:focus-within{border-color:#a95b45;box-shadow:0 0 0 4px rgba(139,61,40,.08)}
.auth-input-wrap>i{width:44px;flex:0 0 44px;text-align:center;color:#93503b;font-style:normal}
.auth-input-wrap input{margin:0;border:0!important;box-shadow:none!important;border-radius:0;background:transparent;padding:13px 8px}
.password-eye{width:43px;align-self:stretch;border:0;background:transparent;color:#a28f83;cursor:pointer;font-size:15px}
.password-eye.active{color:var(--wine)}
.auth-submit{margin-top:20px;border-radius:14px;padding:14px;font-weight:800;box-shadow:0 8px 22px rgba(112,37,24,.20)}
.auth-divider{position:relative;text-align:center;margin:22px 0;color:#aa9789;font-size:11px}
.auth-divider:before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:#ebddd1}
.auth-divider span{position:relative;background:#fffaf4;padding:0 10px}
.auth-privacy-note{margin-top:20px;padding:11px;background:#f6eee5;border-radius:12px;color:#806b5d;font-size:11px;text-align:center}

.register-progress{margin-bottom:25px}
.register-progress-line{height:5px;background:#eee0d3;border-radius:99px;overflow:hidden}
.register-progress-line span{display:block;width:50%;height:100%;background:linear-gradient(90deg,#7b2619,#bd7557);transition:.25s}
.register-progress-labels{display:flex;justify-content:space-between;margin-top:8px}
.register-progress-labels b{font-size:10px;color:#b3a093}
.register-progress-labels b.active{color:#79281c}
.register-step{display:none}.register-step.active{display:block}
.register-inline-error{background:#fbe8e1;color:#952e20;padding:9px 11px;border-radius:10px;font-size:11px;margin:10px 0}
.register-name-note{background:#f7eadc;border-left:3px solid #9f4b34;padding:10px 12px;border-radius:8px;font-size:11px;color:#6d5041;margin:13px 0}
.register-summary{display:flex;gap:11px;align-items:center;background:#f7efe6;border:1px solid #ead9ca;border-radius:14px;padding:13px;margin-top:18px}
.register-summary>span{font-size:27px}.register-summary b,.register-summary small{display:block}.register-summary small{color:#917d70;margin-top:3px}
.register-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:20px}.register-actions .btn{width:100%;font-weight:700}

@media(max-width:900px){
  .auth-screen{grid-template-columns:1fr;min-height:auto;border-radius:22px}
  .auth-memory-side{min-height:250px;padding:27px}
  .auth-memory-copy{margin:35px 0 18px}
  .auth-memory-copy h1{font-size:34px}.auth-memory-copy p{display:none}
  .auth-feature-row{display:none}
  .auth-form-side{padding:18px}
}
@media(max-width:575.98px){
  .app-shell:has(.auth-screen){padding:0 0 75px}
  .topbar:has(+ .mobile-nav){} 
  .auth-screen{border:0;border-radius:0;box-shadow:none;background:#f8f0e6}
  .auth-memory-side{min-height:182px;padding:22px 20px;border-radius:0 0 28px 28px}
  .auth-house-logo .house-roof{width:44px;height:44px;font-size:30px;border-radius:13px}
  .auth-house-logo strong{font-size:20px}.auth-house-logo small{font-size:9px}
  .auth-memory-copy{margin:25px 0 0}.auth-memory-copy .eyebrow{font-size:8px}
  .auth-memory-copy h1{font-size:26px;margin:8px 0 0}.auth-memory-copy h1 br:nth-of-type(2){display:none}
  .auth-form-side{padding:14px 12px 25px}
  .auth-modern-card{border-radius:20px;padding:20px 17px;box-shadow:0 12px 35px rgba(75,39,21,.08)}
  .auth-modern-card h2{font-size:25px}
  .auth-mobile-brand{display:none}
  .register-actions{grid-template-columns:1fr 1fr}
}


/* ===== PHẢ ĐỒ D3 V1.2 - phong cách bản cũ, backend mới ===== */
.legacy-family-page{min-height:calc(100vh - 170px)}
.family-d3-header{display:flex;justify-content:space-between;align-items:end;margin-bottom:12px}
.family-d3-header h1{font:700 30px "Segoe UI","Noto Sans",Arial,sans-serif;color:var(--wine);margin:4px 0}.family-d3-header p{margin:0;color:var(--muted)}
.family-d3-toolbar{display:grid;grid-template-columns:minmax(190px,1fr) auto minmax(190px,1fr);align-items:center;gap:12px;padding:10px 12px;margin-bottom:9px;position:sticky;top:92px;z-index:20}
.family-toolbar-person{display:flex;align-items:center;gap:9px;min-width:0}.family-toolbar-person img{width:42px;height:42px;border-radius:50%;object-fit:cover;border:2px solid #ead0ba}.family-toolbar-person div{min-width:0}.family-toolbar-person small,.family-toolbar-person b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.family-toolbar-person small{font-size:9px;color:var(--muted)}.family-toolbar-person b{font-size:12px}
.family-toolbar-tabs{display:flex;background:#f4e9de;border-radius:13px;padding:3px;gap:2px}.family-toolbar-tabs button,.family-toolbar-tools button{border:0;background:transparent;cursor:pointer;color:#65463a;font-weight:700}.family-toolbar-tabs button{padding:9px 13px;border-radius:10px;font-size:11px;white-space:nowrap}.family-toolbar-tabs button.active{background:var(--wine);color:#fff;box-shadow:0 4px 13px rgba(120,37,24,.18)}
.family-toolbar-tools{display:flex;justify-content:flex-end;gap:5px}.family-toolbar-tools button{width:34px;height:34px;border:1px solid var(--line);background:#fff9f2;border-radius:10px;font-size:16px}.family-toolbar-tools button:hover{background:#f4e3d5;color:var(--wine)}
.family-d3-note{text-align:center;font-size:10px;color:#8c776a;margin:6px 0 9px}
.family-d3-canvas{height:calc(100vh - 255px);min-height:580px;overflow:hidden;border:1px solid #e5d2c0;border-radius:22px;background:radial-gradient(circle,#e7d5c3 1px,transparent 1px),#fffaf3;background-size:26px 26px;box-shadow:var(--shadow);touch-action:none}.family-d3-canvas svg{display:block;width:100%;height:100%}.tree-link{fill:none;stroke:#b98f74;stroke-width:1.6}.spouse-link{fill:none;stroke:#d05757;stroke-width:1.8;stroke-dasharray:4 3}.family-svg-card image{clip-path:circle(25px at 25px 25px)}
.family-modal-card{width:min(920px,96vw);max-height:92vh;overflow:auto;background:#fffaf4;border:1px solid #e3ceba;border-radius:23px;padding:22px;box-shadow:0 30px 90px rgba(45,22,13,.3)}.family-add-card{width:min(900px,96vw)}.family-profile-card{width:min(980px,96vw)}
.family-modal-head{display:flex;justify-content:space-between;align-items:start;gap:20px;border-bottom:1px solid #ecdfd3;padding-bottom:13px;margin-bottom:16px}.family-modal-head h2{font:700 26px "Segoe UI","Noto Sans",Arial,sans-serif;color:#65261b;margin:4px 0}.family-modal-head p{margin:3px 0;color:var(--muted)}
.family-form-grid{display:grid;gap:12px}.family-form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.family-form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.family-co-parent{background:#fff0e2;border:1px solid #ebcdb6;padding:12px;border-radius:13px;margin:10px 0}.family-co-parent b{color:#b22b1d}.family-co-parent small{color:#8e7160}
.family-profile-top{display:flex;align-items:center;gap:13px;background:#f7eadc;border-radius:16px;padding:13px;margin-bottom:14px}.family-profile-top img{width:76px;height:76px;border-radius:50%;object-fit:cover;border:3px solid #fff}.family-profile-top>div{flex:1}.family-profile-top b{display:block;font:700 20px "Segoe UI","Noto Sans",Arial,sans-serif}.family-profile-top small{display:block;color:var(--muted);margin-top:5px}.avatar-upload{background:var(--wine);color:#fff!important;border-radius:10px;padding:9px 11px;cursor:pointer;margin:0!important}.avatar-upload input{display:none}
.family-profile-field>span{font-weight:700;font-size:11px;color:#765346}.family-relation-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:13px 0}.family-relation-summary>div{background:#f9f1e8;border:1px solid #e9d8c9;border-radius:12px;padding:11px}.family-relation-summary b,.family-relation-summary span{display:block}.family-relation-summary b{color:#6d2a1e;font-size:11px}.family-relation-summary span{color:#755f52;font-size:11px;margin-top:5px}
.family-account-box{background:#f4eee7;border:1px dashed #c9ab93;border-radius:14px;padding:13px;margin-top:14px}.family-account-box h4{margin:0;color:#65261b}.family-readonly-note{background:#f3ebe3;padding:12px;border-radius:12px;color:#806e61;text-align:center}.btn.danger{background:#b53327;color:white;margin-right:auto}
.mini-family-card{width:min(760px,95vw)}.mini-family-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(135px,1fr));gap:10px}.mini-person{border:1px solid #e3d1c1;background:#fff9f3;border-radius:15px;padding:13px;cursor:pointer;color:#49352b}.mini-person.main{border:2px solid var(--wine);background:#fff0e2}.mini-person img{width:62px;height:62px;border-radius:50%;object-fit:cover;margin:auto}.mini-person b,.mini-person small{display:block}.mini-person b{margin-top:7px;font-size:12px}.mini-person small{color:var(--muted);font-size:9px;margin-top:3px}
.share-family-card{width:min(580px,94vw)}.share-family-card textarea{font-family:ui-monospace,Consolas,monospace;background:#f9f4ee;line-height:1.7}
.family-help-card{width:min(720px,95vw)}.family-help-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.family-help-grid>div{display:flex;gap:11px;background:#f9f1e8;border:1px solid #e6d5c5;border-radius:13px;padding:13px}.family-help-grid>div>b{width:28px;height:28px;flex:0 0 28px;border-radius:50%;display:grid;place-items:center;background:var(--wine);color:#fff}.family-help-grid span strong,.family-help-grid span{display:block}.family-help-grid span{font-size:11px;color:#806c60}.family-help-grid strong{color:#4e3328;margin-bottom:3px}
@media(max-width:900px){
 .family-d3-toolbar{grid-template-columns:1fr;top:70px;gap:7px}.family-toolbar-person{display:none}.family-toolbar-tabs{width:100%;overflow:auto}.family-toolbar-tabs button{flex:1;min-width:max-content}.family-toolbar-tools{justify-content:center}
 .family-d3-canvas{height:calc(100vh - 300px);min-height:520px}.family-d3-note{display:none}.family-form-grid.three{grid-template-columns:1fr 1fr}.family-profile-card{padding:16px}
}
@media(max-width:575.98px){
 .legacy-family-page{margin:0 -4px}.family-d3-header h1{font-size:22px}.family-d3-header p{font-size:11px}
 .family-d3-toolbar{padding:7px;border-radius:14px}.family-toolbar-tabs button{padding:9px 10px;font-size:10px}.family-toolbar-tools button{width:32px;height:32px}
 .family-d3-canvas{height:calc(100vh - 245px);min-height:500px;border-radius:15px}
 .family-form-grid.two,.family-form-grid.three,.family-relation-summary,.family-help-grid{grid-template-columns:1fr}
 .family-modal-card{padding:15px;border-radius:18px}.family-modal-head h2{font-size:21px}.family-profile-top{align-items:flex-start}.avatar-upload{font-size:10px}
}


/* ===== DESKTOP NAVIGATION V1.3 ===== */
.family-desktop-layout{
  display:grid;
  grid-template-columns:250px minmax(0,1fr);
  gap:22px;
  align-items:start;
}
.family-desktop-content{min-width:0}

.family-desktop-sidebar{
  position:sticky;
  top:104px;
  display:grid;
  gap:14px;
}
.family-sidebar-brand{
  display:flex;
  align-items:center;
  gap:11px;
  padding:14px;
  border:1px solid var(--line);
  background:linear-gradient(145deg,#fffaf3,#f8ecde);
  border-radius:18px;
  box-shadow:var(--shadow);
}
.family-sidebar-logo{
  width:48px;height:48px;flex:0 0 48px;
  display:grid;place-items:center;
  border-radius:14px;
  background:var(--wine);color:#fff6ea;
  font:30px "Segoe UI","Noto Sans",Arial,sans-serif;
}
.family-sidebar-brand strong{
  display:block;
  color:#69261b;
  font:700 18px "Segoe UI","Noto Sans",Arial,sans-serif;
  letter-spacing:.5px;
}
.family-sidebar-brand small{
  display:block;
  margin-top:3px;
  color:#8b7466;
  font-size:9px;
  line-height:1.35;
}
.family-sidebar-title{
  color:#9b735e;
  font-size:9px;
  font-weight:800;
  letter-spacing:1.8px;
  padding:0 7px;
}
.family-sidebar-menu{
  background:#fffaf3;
  border:1px solid var(--line);
  border-radius:18px;
  padding:7px;
  box-shadow:var(--shadow);
}
.family-sidebar-menu>a{
  display:grid;
  grid-template-columns:38px minmax(0,1fr) 14px;
  align-items:center;
  gap:8px;
  padding:10px;
  border-radius:12px;
  margin:2px 0;
  transition:.18s ease;
}
.family-sidebar-menu>a:hover{
  background:#f7eadc;
  transform:translateX(2px);
}
.family-sidebar-menu>a.active{
  background:linear-gradient(135deg,#7b2619,#9d422e);
  color:#fff;
  box-shadow:0 6px 17px rgba(120,37,24,.18);
}
.family-sidebar-icon{
  width:34px;height:34px;
  display:grid;place-items:center;
  border-radius:10px;
  background:#f3e5d6;
  color:#7a2b1f;
  font-size:20px;
}
.family-sidebar-menu>a.active .family-sidebar-icon{
  background:rgba(255,255,255,.15);
  color:white;
}
.family-sidebar-text{min-width:0}
.family-sidebar-text b{
  display:block;
  font-size:12px;
}
.family-sidebar-text small{
  display:block;
  margin-top:2px;
  color:#967e70;
  font-size:9px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.family-sidebar-menu>a.active .family-sidebar-text small{
  color:#f0d8c9;
}
.family-sidebar-arrow{font-size:17px;color:#a88877}
.family-sidebar-menu>a.active .family-sidebar-arrow{color:#fff}
.family-sidebar-memory{
  background:linear-gradient(155deg,#faeadb,#f5dfca);
  border:1px solid #e8cdb5;
  border-radius:18px;
  padding:16px;
  text-align:center;
  box-shadow:var(--shadow);
}
.family-sidebar-memory>span{font-size:25px;color:#9b4d37}
.family-sidebar-memory b{display:block;margin:6px 0;color:#6a2b20;font:700 13px "Segoe UI","Noto Sans",Arial,sans-serif}
.family-sidebar-memory p{margin:0;color:#866f61;font-size:10px;line-height:1.55}

/* Vì index cũ đã có rail riêng, khi nằm trong layout desktop mới:
   giữ feed 2 cột nội dung + right timeline; bỏ rail trái trùng lặp */
.family-desktop-content .family-feed-layout{
  grid-template-columns:minmax(0,1fr) 280px;
}
.family-desktop-content .family-feed-layout>.left-rail{
  display:none;
}
.family-desktop-content .family-feed-layout>.feed-column{grid-column:1}
.family-desktop-content .family-feed-layout>.right-rail{
  grid-column:2;
  display:grid;
}

@media(max-width:1150px){
  .family-desktop-layout{grid-template-columns:215px minmax(0,1fr);gap:15px}
  .family-desktop-content .family-feed-layout{grid-template-columns:minmax(0,1fr)}
  .family-desktop-content .family-feed-layout>.right-rail{display:none}
}
@media(max-width:820px){
  .family-desktop-layout{display:block}
  .family-desktop-sidebar{display:none}
  .family-desktop-content .family-feed-layout{display:block}
  .family-desktop-content .family-feed-layout>.left-rail{display:none}
}


/* ===== V1.4 PHẢ ĐỒ HOÀN CHỈNH ===== */
.brand.brand-image{
  display:flex;
  align-items:center;
  height:68px;
}
.brand.brand-image img{
  display:block;
  width:auto;
  height:62px;
  max-width:230px;
  object-fit:contain;
}
.family-sidebar-brand-image{
  padding:7px 10px!important;
  min-height:88px;
  justify-content:center;
  overflow:hidden;
}
.family-sidebar-brand-image img{
  display:block;
  width:100%;
  height:76px;
  object-fit:contain;
}
.tree-link{
  fill:none;
  stroke:#9e806b;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.spouse-link{
  stroke:#c95555;
  stroke-width:2;
  stroke-linecap:round;
  stroke-dasharray:none;
}
.family-svg-card rect{
  filter:drop-shadow(0 4px 6px rgba(90,55,35,.08));
}
@media(max-width:820px){
  .brand.brand-image{height:56px}
  .brand.brand-image img{height:52px;max-width:190px}
}
@media(max-width:575.98px){
  .brand.brand-image img{height:46px;max-width:170px}
}

/* V1.6.1 - font Nhà Mình mềm, gần gũi, dễ đọc */
html,body,button,input,textarea,select{
  font-family:"Segoe UI","Noto Sans","Helvetica Neue",Arial,sans-serif!important;
}
h1,h2,h3,h4,h5,h6,
.feed-title h1,.card h3,.card h4,
.family-d3-header h1,.family-sidebar-brand strong{
  font-family:"Segoe UI","Noto Sans","Helvetica Neue",Arial,sans-serif!important;
  letter-spacing:-.015em;
}

.family-svg-card image,#family-tree svg image{clip-path:none!important;}

/* ===== V1.7 Account / Messenger / Follow ===== */
.topbar-mobile-brand{visibility:hidden;pointer-events:none}
.account-menu-wrap{position:relative}.account-menu-toggle{border:0;background:transparent;padding:0;cursor:pointer}.account-dropdown{display:none;position:absolute;right:0;top:calc(100% + 12px);width:260px;background:#fffaf4;border:1px solid #ead5c2;border-radius:16px;box-shadow:0 18px 50px rgba(70,35,20,.18);padding:8px;z-index:10050}.account-dropdown.open{display:block}.account-dropdown>a{display:block;padding:12px 13px;border-radius:10px;color:#4b3026;text-decoration:none}.account-dropdown>a:hover{background:#f5e7da}.account-dropdown>a.danger{color:#a42e25}.account-dropdown-user{display:flex;gap:10px;align-items:center;padding:9px;border-bottom:1px solid #ead5c2;margin-bottom:5px}.account-dropdown-user img{width:46px;height:46px;border-radius:10px;object-fit:cover}.account-dropdown-user span{display:grid}.account-dropdown-user small{color:#8c766a}
.settings-card{background:#fffaf5;border:1px solid #ead4c0;border-radius:20px;padding:24px;max-width:900px}.settings-tabs{display:flex;gap:5px;background:#f6e9dc;padding:5px;border-radius:14px;margin:18px 0}.settings-tabs a{padding:10px 14px;border-radius:10px;text-decoration:none;color:#59362a;font-weight:650}.settings-tabs a.active{background:#9f3324;color:#fff}.settings-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.settings-form label{display:grid;gap:7px;font-weight:600}.settings-form input{padding:12px;border:1px solid #dfc7b2;border-radius:10px;background:#fff}.settings-form button{width:max-content;padding:11px 18px;border:0;border-radius:10px;background:#982f21;color:#fff;font-weight:700}.avatar-settings{grid-template-columns:1fr}.avatar-settings img{width:120px;height:120px;object-fit:cover;border-radius:18px}.notice{padding:11px 14px;border-radius:10px;margin:10px 0}.notice.success{background:#e9f6ea;color:#236c2c}.notice.error{background:#fdebea;color:#9b2a22}
.messenger{display:grid;grid-template-columns:320px minmax(0,1fr);height:calc(100vh - 150px);min-height:560px;background:#fffaf5;border:1px solid #ead4c0;border-radius:20px;overflow:hidden}.conversation-list{border-right:1px solid #ead4c0;overflow:auto;padding:14px}.conversation{display:flex;gap:10px;padding:10px;border-radius:12px;text-decoration:none;color:#4b3026}.conversation.active,.conversation:hover{background:#f4e5d8}.conversation img{width:48px;height:48px;border-radius:12px;object-fit:cover}.conversation span{display:grid;min-width:0}.conversation small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#8a756a}.chat-panel{display:flex;flex-direction:column;min-width:0}.chat-messages{flex:1;overflow:auto;padding:20px;display:flex;flex-direction:column;gap:9px}.bubble{align-self:flex-start;max-width:72%;display:grid;gap:4px}.bubble span{background:#f0e5db;padding:10px 13px;border-radius:15px}.bubble.mine{align-self:flex-end}.bubble.mine span{background:#9d3325;color:#fff}.bubble small{font-size:11px;color:#8d786d}.chat-compose{display:flex;gap:8px;padding:14px;border-top:1px solid #ead4c0}.chat-compose input{flex:1;padding:12px;border:1px solid #ddc4af;border-radius:12px}.chat-compose button,.follow-btn{border:0;background:#9d3325;color:#fff;border-radius:10px;padding:9px 13px;font-weight:700}.follow-btn.active{background:#eee2d6;color:#633c2f}.person-actions{display:flex;gap:7px;margin-top:8px}.person-actions a{text-decoration:none;background:#f1e3d6;color:#623c30;border-radius:9px;padding:8px 10px;font-weight:650}
@media(max-width:820px){.topbar-mobile-brand{visibility:visible;pointer-events:auto}.settings-form{grid-template-columns:1fr}.messenger{grid-template-columns:110px minmax(0,1fr);height:calc(100vh - 145px)}.conversation-list h2{font-size:15px}.conversation span{display:none}.conversation{justify-content:center}.account-dropdown{position:fixed;right:12px;top:70px}.top-actions{gap:8px}}


/* ===== V1.7.1 SOCIAL / FEED / DIRECTORY / TIMELINE ===== */

/* HEADER */
.topbar{min-height:72px}
.topbar-mobile-brand{display:none}
.top-actions{margin-left:auto;display:flex;align-items:center;gap:14px}
.header-message-btn{position:relative;width:44px;height:44px;border-radius:14px;display:grid!important;place-items:center;color:#5f372b!important;background:#fffaf4;border:1px solid #ead8c8;text-decoration:none}
.header-message-icon{font-size:22px;line-height:1}
.header-badge{position:absolute;right:-5px;top:-5px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:#c8382c;color:#fff;font-size:11px;display:grid;place-items:center;border:2px solid #fffaf4}
.account-follow-dot{position:absolute;right:-1px;top:-1px;width:11px;height:11px;border-radius:50%;background:#d33b2f;border:2px solid #fffaf4}
.avatar-link{position:relative}
@media(max-width:760px){.topbar-mobile-brand{display:flex}.topbar{min-height:58px}.top-actions{gap:8px}.header-message-btn{width:40px;height:40px}}

/* ACCOUNT SETTINGS */
.settings-form{max-width:620px}
.settings-submit{display:inline-flex!important;width:auto!important;min-width:120px!important;min-height:40px!important;padding:9px 18px!important;border-radius:10px!important;margin-top:6px!important;align-self:flex-start!important}
.avatar-settings .settings-submit{margin-left:0!important}

/* DIRECTORY */
.directory-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 18px}
.directory-tabs a{position:relative;padding:10px 16px;border-radius:12px;background:#f7eadd;color:#6c392b;text-decoration:none;font-weight:700;border:1px solid #ead3c1}
.directory-tabs a.active{background:#96321f;color:#fff}
.directory-tabs a b{position:absolute;right:-7px;top:-8px;background:#d43b2e;color:#fff;border-radius:12px;padding:2px 7px;font-size:10px}
.directory-search-note{margin:-5px 0 14px;color:#82604f}
.person-card{display:flex!important;flex-direction:column;justify-content:space-between;gap:12px;min-height:155px}
.person-main{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}
.person-main img{width:58px;height:58px;object-fit:cover;border-radius:13px}
.person-actions{display:grid!important;grid-template-columns:1fr 1fr;gap:8px}
.follow-btn,.message-person-btn{border:1px solid #e2c8b7!important;background:#f7e8d9!important;color:#6b3326!important;border-radius:11px!important;min-height:42px!important;padding:7px 10px!important;font-weight:700!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:6px;text-decoration:none!important}
.follow-btn.active{background:#96321f!important;color:#fff!important;border-color:#96321f!important}
.follow-symbol{font-size:17px}
.pagination{display:flex;justify-content:center;gap:6px;margin:24px 0}.pagination a{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;background:#fffaf4;border:1px solid #e4cdbb;color:#6b3628;text-decoration:none}.pagination a.active{background:#96321f;color:#fff}

/* MESSENGER */
.zalo-messenger{height:calc(100vh - 120px);min-height:590px;display:grid;grid-template-columns:330px 1fr;background:#fffaf4;border:1px solid #ead7c7;border-radius:20px;overflow:hidden;box-shadow:0 16px 40px rgba(91,56,38,.08)}
.zalo-conversations{border-right:1px solid #ead7c7;display:flex;flex-direction:column;min-width:0;background:#fffdf9}
.messenger-side-head{padding:20px 18px 12px}.messenger-side-head h2{margin:0;color:#692d20}.messenger-side-head small{color:#957464}
.conversation-search{margin:0 14px 12px;height:42px;border-radius:12px;background:#f6ede4;display:flex;align-items:center;padding:0 12px;gap:8px}.conversation-search input{border:0;background:transparent;outline:0;width:100%}
.conversation-scroll{overflow:auto;flex:1}
.zalo-conversation{display:grid;grid-template-columns:48px 1fr auto;gap:10px;align-items:center;padding:11px 14px;text-decoration:none;color:inherit;border-top:1px solid #f2e6dc}.zalo-conversation:hover,.zalo-conversation.active{background:#f5e7da}.zalo-conversation img{width:48px;height:48px;border-radius:14px;object-fit:cover}.zalo-conversation-copy{min-width:0}.zalo-conversation-copy b,.zalo-conversation-copy small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.zalo-conversation-copy small{font-size:12px;color:#8b7063;margin-top:4px}.zalo-conversation-meta{text-align:right}.zalo-conversation-meta time{display:block;font-size:10px;color:#a48678}.zalo-conversation-meta i{display:inline-grid;place-items:center;min-width:19px;height:19px;border-radius:10px;background:#d83d31;color:#fff;font-size:10px;font-style:normal;margin-top:5px}
.zalo-chat{display:flex;flex-direction:column;min-width:0;background:#f6efe8}.zalo-chat-head{height:70px;display:flex;align-items:center;gap:11px;padding:0 18px;background:#fffaf4;border-bottom:1px solid #ead7c7}.zalo-chat-head img{width:45px;height:45px;border-radius:13px;object-fit:cover}.zalo-chat-head div{flex:1}.zalo-chat-head b,.zalo-chat-head small{display:block}.zalo-chat-head small{color:#9a7d6e}.zalo-chat-head a{text-decoration:none;font-size:22px;color:#6b392b}
.zalo-chat-body{flex:1;overflow:auto;padding:18px;display:flex;flex-direction:column;gap:6px;background:linear-gradient(180deg,#f8f1ea,#f3e8dd)}.zalo-bubble-row{display:flex;align-items:flex-end;gap:7px;max-width:78%}.zalo-bubble-row.mine{align-self:flex-end;justify-content:flex-end}.zalo-bubble-row>img{width:30px;height:30px;border-radius:9px;object-fit:cover}.zalo-bubble{background:#fff;border-radius:16px 16px 16px 5px;padding:9px 12px;box-shadow:0 2px 7px rgba(70,44,31,.06)}.zalo-bubble-row.mine .zalo-bubble{background:#dff1d5;border-radius:16px 16px 5px 16px}.zalo-bubble p{margin:0;line-height:1.45}.zalo-bubble small{display:block;text-align:right;color:#9a8275;font-size:9px;margin-top:4px}
.zalo-compose{display:grid;grid-template-columns:38px 1fr 44px;gap:8px;align-items:end;padding:12px;background:#fffaf4;border-top:1px solid #ead7c7}.zalo-compose textarea{resize:none;min-height:42px;max-height:120px;border:1px solid #dfcbbb;border-radius:15px;padding:11px 13px;font:inherit;outline:0}.chat-emoji-toggle,.chat-send{border:0;border-radius:12px;height:42px;cursor:pointer}.chat-emoji-toggle{background:#f5e8dc;font-size:20px}.chat-send{background:#96321f;color:#fff;font-size:20px}.zalo-chat-empty{margin:auto;text-align:center;color:#8a6c5d}.zalo-chat-empty span{font-size:54px}
@media(max-width:780px){.zalo-messenger{grid-template-columns:105px 1fr;height:calc(100vh - 112px)}.messenger-side-head small,.conversation-search,.zalo-conversation-copy,.zalo-conversation-meta{display:none}.messenger-side-head{padding:12px;text-align:center}.messenger-side-head h2{font-size:13px}.zalo-conversation{grid-template-columns:1fr;justify-items:center}.zalo-conversation img{width:52px;height:52px}}

/* COMPOSER */
.memory-composer{overflow:hidden!important;max-height:90vh!important;display:flex;flex-direction:column}
.memory-composer form{overflow:auto;padding-top:0}
.composer-tabs{position:sticky;top:0;z-index:5;display:flex;gap:6px;overflow-x:auto;padding:10px 0 12px;background:#fffaf4;border-bottom:1px solid #ead7c7}.composer-tabs button{border:0;border-radius:12px;padding:10px 14px;background:#f6eade;color:#6c3b2e;font-weight:700;white-space:nowrap}.composer-tabs button.active{background:#96321f;color:#fff}.composer-tab-panel{display:none;padding:18px 0 8px;animation:composerFade .2s ease}.composer-tab-panel.active{display:block}@keyframes composerFade{from{opacity:.4;transform:translateY(5px)}to{opacity:1;transform:none}}
.privacy-card,.composer-upload-box{padding:16px;border:1px solid #ead2bf;border-radius:15px;background:#fff8f0}.privacy-card p{color:#886858}.composer-upload-box{display:flex!important;flex-direction:column;gap:8px}.composer-upload-box span{font-size:11px;color:#927667}

/* POSTS */
.memory-card{overflow:hidden}.memory-head{padding:16px 18px 12px}.memory-title{margin:4px 0 12px!important;font-size:22px!important;line-height:1.25!important;color:#5e2c21}.memory-body{padding:18px 20px 20px!important}.post-text{line-height:1.7}.media-frame{margin:0 16px 14px;padding:7px;background:#f3e7dc;border:1px solid #ead5c3;border-radius:17px}.media-grid{border-radius:12px;overflow:hidden!important}.media-zoom{border:0;padding:0;min-width:0;cursor:zoom-in;background:#eee;overflow:hidden}.media-zoom img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .25s}.media-zoom:hover img{transform:scale(1.025)}
.image-lightbox{position:fixed;inset:0;background:rgba(20,16,14,.92);z-index:999999;display:none;align-items:center;justify-content:center;padding:30px}.image-lightbox.open{display:flex}.image-lightbox img{max-width:95vw;max-height:91vh;object-fit:contain;border-radius:10px}.image-lightbox button{position:absolute;right:22px;top:18px;width:44px;height:44px;border:0;border-radius:50%;background:#fff;color:#4b2c21;font-size:28px;cursor:pointer}
.memory-actions .action-btn.active{color:#a52d22!important;font-weight:800!important;background:#fff1e9!important}
.comment-list{padding:4px 18px}.comment-row{position:relative;display:flex;align-items:flex-start;gap:9px;margin:8px 0}.comment-row>img{width:34px;height:34px;border-radius:10px;object-fit:cover}.comment-bubble{background:#f7eee6;border-radius:14px;padding:8px 11px;max-width:76%}.comment-bubble b{font-size:12px}.comment-bubble p{margin:3px 0 0;line-height:1.45}.comment-hide-btn{border:0;background:transparent;color:#a75a42;font-size:10px;cursor:pointer;align-self:center}.comment-hidden{opacity:.6}.comment-form{position:relative;display:grid!important;grid-template-columns:38px 1fr auto!important;gap:8px!important;align-items:center!important;padding:10px 16px 15px!important}.comment-emoji-toggle{width:38px;height:38px;border:0;border-radius:50%;background:#f5e7db;font-size:19px;cursor:pointer}.comment-form input{min-width:0}.emoji-palette{position:absolute;left:16px;bottom:58px;width:220px;padding:9px;border-radius:14px;background:#fff;box-shadow:0 12px 34px rgba(45,28,20,.18);display:grid;grid-template-columns:repeat(6,1fr);z-index:20}.emoji-palette[hidden]{display:none}.emoji-palette button{border:0;background:transparent;font-size:20px;cursor:pointer;padding:5px}.comment-send{border-radius:20px!important;padding:9px 18px!important}

/* TIMELINE */
.timeline-profile-hero{display:grid;grid-template-columns:76px 1fr auto;align-items:center;gap:16px;padding:20px 22px;border-radius:20px;background:linear-gradient(135deg,#fff3e5,#f5dfc8);border:1px solid #ead1ba;margin-bottom:16px}.timeline-profile-hero>img{width:76px;height:76px;border-radius:18px;object-fit:cover}.timeline-profile-hero h1{margin:2px 0 4px;color:#722b1e}.timeline-profile-hero p{margin:0;color:#866657}
.timeline-family-map{padding:17px}.timeline-family-map-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.timeline-family-map-head h2{margin:2px 0;color:#6c3024}.timeline-family-map-head a{text-decoration:none;color:#96321f;font-weight:700}.timeline-family-row{display:flex;gap:10px;overflow-x:auto;padding-top:13px}.timeline-family-person{flex:0 0 130px;text-align:center;padding:10px;border-radius:13px;background:#fff8f0;border:1px solid #ead7c5}.timeline-family-person.self{border-color:#a74431;background:#fcece1}.timeline-family-person img{width:48px;height:48px;border-radius:12px;object-fit:cover}.timeline-family-person b,.timeline-family-person small{display:block}.timeline-family-person b{font-size:11px;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timeline-family-person small{font-size:9px;color:#927466}
.timeline-filters{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 12px;margin:14px 0}.timeline-type-filter{display:flex;gap:5px;overflow-x:auto}.timeline-type-filter a{padding:8px 11px;border-radius:10px;text-decoration:none;color:#6e4032;white-space:nowrap}.timeline-type-filter a.active{background:#96321f;color:#fff}.timeline-filters select{border:1px solid #dec8b8;border-radius:10px;padding:8px;background:#fff}.timeline-locked{text-align:center;padding:45px}.timeline-locked>span{font-size:40px}
@media(max-width:700px){.timeline-profile-hero{grid-template-columns:58px 1fr}.timeline-profile-hero>img{width:58px;height:58px}.timeline-profile-hero>.follow-btn{grid-column:1/-1}.timeline-filters{align-items:stretch;flex-direction:column}}


/* ===== V1.7.2 FEED / MEMORY GROUP / MOBILE CHAT ===== */

/* Chủ đề ký ức */
.memory-group-block{margin:14px 0 5px}
.memory-group-title{font-size:12px;font-weight:800;color:#6b3327;margin-bottom:8px;text-transform:uppercase;letter-spacing:.35px}
.memory-group-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.memory-group-grid label{position:relative;display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:7px;min-height:42px;padding:7px 10px;border:1px solid #ead6c4;border-radius:10px;background:#fffaf5;cursor:pointer}
.memory-group-grid label::after{content:'›';font-size:18px;color:#9c735f}
.memory-group-grid input{position:absolute;opacity:0;pointer-events:none}
.memory-group-grid label:has(input:checked){border-color:#9c3825;background:#f9e8dd;box-shadow:inset 3px 0 #9c3825}
.memory-group-grid span{font-size:18px}.memory-group-grid b{font-size:12px}

/* Ảnh bài viết nhỏ gọn kiểu mạng xã hội */
.feed-column .memory-card{max-width:100%}
.feed-column .media-frame{max-width:620px;margin:0 auto 14px}
.feed-column .media-grid{max-height:430px}
.feed-column .media-grid.media-count-1{display:flex!important;justify-content:center;background:#f3e8dc}
.feed-column .media-grid.media-count-1 .media-zoom{width:auto!important;max-width:100%;max-height:430px}
.feed-column .media-grid.media-count-1 img{width:auto!important;max-width:100%;height:auto!important;max-height:430px;object-fit:contain!important}
.feed-column .media-grid.media-count-2,
.feed-column .media-grid.media-count-3,
.feed-column .media-grid.media-count-4{height:360px}
@media(min-width:1200px){
  .feed-column .media-frame{max-width:560px}
  .feed-column .media-grid.media-count-1 .media-zoom{max-height:380px}
  .feed-column .media-grid.media-count-1 img{max-height:380px}
  .feed-column .media-grid.media-count-2,
  .feed-column .media-grid.media-count-3,
  .feed-column .media-grid.media-count-4{height:330px}
}

/* Danh bạ - action nhỏ gọn hơn */
.person-actions{grid-template-columns:auto auto!important;justify-content:start!important}
.follow-btn,.message-person-btn{min-height:34px!important;padding:5px 9px!important;border-radius:9px!important;font-size:11px!important;gap:4px!important}
.follow-symbol{font-size:13px!important}

/* Timeline người khác */
.timeline-visitor-note{padding:13px 16px;margin:12px 0;color:#785645;background:#fff6ec}
.timeline-page:not(.owner-view) .timeline-family-map,
.timeline-page:not(.owner-view) .timeline-filters{display:none}

/* Swipe conversation */
.conversation-swipe{position:relative;overflow:hidden;border-top:1px solid #f2e6dc}
.conversation-swipe .zalo-conversation{position:relative;z-index:2;background:#fffdf9;border-top:0;transition:transform .2s ease}
.conversation-swipe .zalo-conversation.active{background:#f5e7da}
.conversation-delete{position:absolute;right:0;top:0;bottom:0;width:64px;border:0;background:#d83a32;color:#fff;font-size:19px;cursor:pointer}

/* Mobile messenger kiểu Facebook: danh sách riêng / chat riêng toàn khung */
@media(max-width:780px){
  .zalo-messenger{display:block!important;height:calc(100vh - 116px)!important;border-radius:0!important;border-left:0!important;border-right:0!important;box-shadow:none!important}
  .zalo-conversations{width:100%!important;height:100%!important;border:0!important}
  .zalo-chat{display:none!important;width:100%!important;height:100%!important}
  .zalo-messenger.mobile-chat-open .zalo-conversations{display:none!important}
  .zalo-messenger.mobile-chat-open .zalo-chat{display:flex!important}
  .messenger-side-head{padding:15px 16px!important;text-align:left!important}
  .messenger-side-head h2{font-size:20px!important}
  .messenger-side-head small{display:block!important}
  .conversation-search{display:flex!important}
  .zalo-conversation{grid-template-columns:52px 1fr auto!important;justify-items:stretch!important;padding:11px 14px!important}
  .zalo-conversation-copy,.zalo-conversation-meta{display:block!important}
  .zalo-conversation img{width:52px!important;height:52px!important}
  .zalo-chat-head{height:62px!important;padding:0 12px!important}
  .zalo-chat-body{padding:12px 10px!important}
  .zalo-bubble-row{max-width:88%!important}
  .zalo-compose{position:sticky;bottom:0;padding:8px 9px calc(8px + env(safe-area-inset-bottom))!important;grid-template-columns:36px 1fr 42px!important}
  .zalo-compose textarea{min-height:38px!important;border-radius:20px!important;padding:9px 13px!important}
}

/* composer mobile group one column */
@media(max-width:620px){
  .memory-group-grid{grid-template-columns:1fr}
  .feed-column .media-frame{margin-left:8px;margin-right:8px}
  .feed-column .media-grid.media-count-1 .media-zoom,
  .feed-column .media-grid.media-count-1 img{max-height:310px}
  .feed-column .media-grid.media-count-2,
  .feed-column .media-grid.media-count-3,
  .feed-column .media-grid.media-count-4{height:280px}
}


/* ===== V1.7.3 ===== */
.compact-memory-group{margin:12px 0}.compact-memory-group label{display:block;font-weight:700;color:#6d382b}.compact-memory-group select,.post-type-select{margin-top:6px;width:100%;min-height:44px;border:1px solid #dfc6b3;border-radius:11px;background:#fffaf4;padding:9px 12px;color:#5f382c;font:inherit}.memory-group-grid,.memory-group-title{display:none!important}
.memory-card{position:relative}.memory-card.post-type-memory{--post-accent:#9b3422}.memory-card.post-type-event{--post-accent:#b17826}.memory-card.post-type-opinion{--post-accent:#6d5aa7}.memory-card.post-type-photo{--post-accent:#3e7b68}.memory-card.post-type-video{--post-accent:#8c526a}.memory-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--post-accent,#9b3422)}.memory-card .memory-badge{color:var(--post-accent,#9b3422);border:1px solid #ead4c3}.memory-card.post-type-event .memory-title::before{content:"▣ ";color:var(--post-accent)}.memory-card.post-type-opinion .memory-title::before{content:"? ";color:var(--post-accent)}.memory-card.post-type-photo .memory-title::before{content:"▧ ";color:var(--post-accent)}.memory-card.post-type-video .memory-title::before{content:"▶ ";color:var(--post-accent)}
.post-is-hidden{opacity:.66}.post-is-hidden::after{content:"Bài viết đang ẩn";position:absolute;top:8px;left:50%;transform:translateX(-50%);padding:5px 10px;background:#5d493f;color:#fff;border-radius:10px;font-size:10px;z-index:3}.post-owner-menu{position:relative;margin-left:auto}.post-owner-toggle{border:0;background:transparent;font-size:18px;cursor:pointer;color:#7f6052}.post-owner-dropdown{display:none;position:absolute;right:0;top:28px;z-index:30;width:155px;padding:6px;background:#fff;border:1px solid #ead4c2;border-radius:11px;box-shadow:0 12px 28px rgba(62,39,27,.16)}.post-owner-dropdown.open{display:block}.post-owner-dropdown button{width:100%;border:0;background:transparent;text-align:left;padding:8px 9px;border-radius:8px;color:#62382d;cursor:pointer}.post-owner-dropdown button:hover{background:#f8ece2}.post-edit-modal{width:min(650px,calc(100vw - 24px));max-height:88vh;overflow:auto;background:#fffaf4;border-radius:20px;padding:20px;box-shadow:0 24px 70px rgba(0,0,0,.24)}
.family-home-heading{display:grid;grid-template-columns:260px 1fr 260px;align-items:end;gap:20px;margin:2px 0 12px}.family-home-brand span{font-family:Georgia,serif;font-weight:800;font-size:22px;color:#672b20}.family-home-brand small{display:block;color:#8f6e60}.family-home-heading>div:nth-child(2){text-align:center}.family-home-heading h1{margin:0;color:#742b20;font-family:Georgia,serif;font-size:26px}.family-home-heading p{margin:4px 0;color:#8e6b5c}.topic-panel button{width:100%;display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:7px;padding:9px 6px;border:0;border-top:1px solid #ecdccc;background:transparent;text-align:left;color:#5c382e;cursor:pointer}.topic-panel button:first-of-type{border-top:0}.topic-panel button b{font-size:18px;font-weight:400}.topic-panel button:hover{background:#fff5ea}.active-members a{display:flex;align-items:center;gap:9px;padding:8px 0;border-bottom:1px solid #f0e2d6;text-decoration:none;color:#5b372d}.active-members img{width:35px;height:35px;border-radius:10px;object-fit:cover}
.avatar-current{display:flex;align-items:center;gap:13px}.avatar-current img{width:82px!important;height:82px!important;border-radius:16px!important;object-fit:cover}.avatar-current small{display:block;color:#8b7062;margin-top:4px}.avatar-history{margin-top:22px;padding-top:18px;border-top:1px solid #ead8c8}.avatar-history h3{margin:0 0 4px;color:#6b3024}.avatar-history-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(125px,1fr));gap:10px}.avatar-history-item{padding:9px;border:1px solid #e7d1c0;border-radius:13px;background:#fff8f0}.avatar-history-item.active{border-color:#9d3927;background:#faeee4}.avatar-history-item>img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px}.avatar-history-actions{display:flex;gap:5px;margin-top:7px}.avatar-history-actions form{flex:1}.avatar-history-actions button{width:100%;border:0;border-radius:8px;padding:6px;background:#96321f;color:#fff;font-size:10px}.avatar-history-actions button.danger{background:#d13b31}.avatar-history-actions span{display:block;text-align:center;color:#953321;font-size:10px;font-weight:800}
.mobile-chat-back{display:none!important}
@media(max-width:1100px){.family-home-heading{grid-template-columns:1fr}.family-home-brand{display:none}.family-home-heading>div:nth-child(2){text-align:left}}
@media(max-width:780px){.mobile-chat-back{display:grid!important;width:36px;height:36px;place-items:center;border-radius:50%;background:#f5e7dc;text-decoration:none!important;color:#5d3428!important;font-size:22px;flex:0 0 36px}.zalo-chat-head>img{width:40px!important;height:40px!important}}


/* ===== V1.7.4 ===== */

/* Mobile message list must appear when no conversation is selected */
@media(max-width:780px){
  .zalo-messenger:not(.mobile-chat-open) .zalo-conversations{display:block!important}
  .zalo-messenger:not(.mobile-chat-open) .zalo-chat{display:none!important}
}

/* Current month memories */
.month-memory-v174 .month-memory-head{display:flex;justify-content:space-between;align-items:center}.month-memory-v174 .month-memory-head h3{margin:0}.month-memory-v174 .month-block{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:2px solid #8c2e20}.month-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;padding:10px 0}.month-days span{display:grid;place-items:center;padding:5px 2px;border:1px solid #f0e0d4;border-radius:8px}.month-days span small{font-size:8px;color:#9a7b6c}.month-days span b{font-size:11px}.month-days span.active{background:#79291d;color:#fff}.month-days span.active small{color:#fff}
.month-memory-list a{display:grid;grid-template-columns:26px 1fr 54px;gap:8px;align-items:center;padding:9px 0;border-bottom:1px solid #efe0d4;text-decoration:none;color:#5d392f}.month-memory-icon{font-size:16px}.month-memory-copy b{display:block;font-size:11px}.month-memory-copy small{display:block;color:#8b7064;font-size:9px}.month-memory-list img{width:54px;height:44px;object-fit:cover;border-radius:7px}

/* Facebook-like media grid */
.fb-media-grid{display:grid!important;gap:3px!important;width:100%;overflow:hidden;border-radius:13px;background:#efe5dc}
.fb-media-grid .media-cell{position:relative;overflow:hidden;border:0;padding:0;background:#eee;min-width:0;min-height:0}
.fb-media-grid .media-cell img{width:100%!important;height:100%!important;max-height:none!important;object-fit:cover!important;display:block}
.fb-media-grid.single-media{display:flex!important;justify-content:center;max-height:480px;background:#f1e6dd}
.fb-media-grid.single-media .media-cell{width:100%;display:flex;justify-content:center;background:#f1e6dd}
.fb-media-grid.single-media .media-cell img{width:auto!important;max-width:100%!important;height:auto!important;max-height:480px!important;object-fit:contain!important}
.fb-media-grid.media-count-2{grid-template-columns:1fr 1fr;height:360px!important}
.fb-media-grid.media-count-3{grid-template-columns:1.25fr .75fr;grid-template-rows:1fr 1fr;height:390px!important}
.fb-media-grid.media-count-3 .media-cell-1{grid-row:1/3}
.more-media-overlay{position:absolute;inset:0;display:grid;place-items:center;background:rgba(28,20,16,.5);color:#fff;font-size:34px;font-weight:800}
@media(max-width:620px){
 .fb-media-grid.single-media{max-height:350px}
 .fb-media-grid.single-media .media-cell img{max-height:350px!important}
 .fb-media-grid.media-count-2{height:255px!important}
 .fb-media-grid.media-count-3{height:280px!important}
}

/* Directory member profile */
.person-profile-link{padding:0 12px 8px}.person-profile-link a{font-size:10px;color:#8c3425;text-decoration:none}
.member-profile-page{max-width:900px;margin:0 auto}.member-profile-head{display:grid;grid-template-columns:38px 96px 1fr auto;gap:15px;align-items:center;padding:20px;border-radius:20px;background:#fff9f1;border:1px solid #ead6c4}.member-profile-head>img{width:96px;height:96px;border-radius:50%;object-fit:cover}.member-profile-head h1{margin:0;font-family:Georgia,serif;color:#632d22}.member-profile-head p{margin:4px 0;color:#806459}.member-back{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;text-decoration:none;background:#f4e5d7;color:#6a3125}.member-message{text-decoration:none;padding:9px 12px;border:1px solid #e0c6b2;border-radius:10px;color:#7e3022}
.member-tabs{display:flex;gap:4px;margin:10px 0;padding:5px;border-radius:12px;background:#f5e7db}.member-tabs a{flex:1;text-align:center;padding:9px;text-decoration:none;color:#6c4437;border-radius:9px}.member-tabs a.active{background:#933321;color:#fff}
.member-profile-card{padding:18px;border-radius:18px;background:#fffaf4;border:1px solid #ead8c8}.member-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:0}.member-info-grid div{padding-bottom:10px;border-bottom:1px solid #efe0d3}.member-info-grid .wide{grid-column:1/-1}.member-info-grid dt{font-size:10px;color:#967465}.member-info-grid dd{margin:4px 0 0;font-weight:700;color:#523229}
.relation-row{display:grid;grid-template-columns:120px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid #eee0d5}.relation-row>div{display:flex;flex-wrap:wrap;gap:8px}.relation-row a{display:flex;align-items:center;gap:6px;padding:6px 9px;border-radius:10px;background:#f8eee5;text-decoration:none;color:#59372d}.relation-row img{width:30px;height:30px;border-radius:50%;object-fit:cover}
.member-memory-list>a{display:grid;grid-template-columns:90px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid #ecded2;text-decoration:none;color:#59372d}.member-memory-list img{width:90px;height:70px;object-fit:cover;border-radius:9px}.member-memory-list b{display:block}.member-memory-list p{margin:4px 0;color:#82675d}

/* Timeline thumbnail */
.timeline-content.has-image{display:grid;grid-template-columns:126px 1fr;gap:12px}.timeline-thumb{width:126px;height:92px;object-fit:cover;border-radius:10px}.timeline-content-copy{min-width:0}

/* Album */
.album-page{max-width:1100px}.album-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}.album-tabs a{padding:8px 11px;border:1px solid #e4cdbc;border-radius:999px;text-decoration:none;color:#6e4034;background:#fff9f2}.album-tabs a.active{background:#8e3021;color:#fff}.album-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.album-item{position:relative;min-height:190px;border-radius:14px;overflow:hidden;background:#e8dacd}.album-item>img{width:100%;height:100%;min-height:190px;object-fit:cover;display:block}.album-item>div{position:absolute;left:0;right:0;bottom:0;padding:30px 10px 9px;background:linear-gradient(transparent,rgba(35,20,13,.72));color:#fff}.album-item b,.album-item small{display:block}.album-item small{font-size:9px;margin-top:3px}
@media(max-width:900px){.album-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:620px){.album-grid{grid-template-columns:repeat(2,1fr)}.album-item,.album-item>img{min-height:150px}}

/* Ancestors */
.ancestor-hero{display:grid;grid-template-columns:220px 1fr;gap:24px;align-items:center;padding:22px;border-radius:20px;background:linear-gradient(135deg,#f3dfbd,#fff7e9);border:1px solid #d9b988}.ancestor-hero h1{font-family:Georgia,serif;color:#70281d;margin:5px 0}.ancestor-altar{height:160px;border-radius:18px;background:radial-gradient(circle at 50% 45%,#ffdc7d,#8e2f1f 60%,#4a1d16);color:#ffe1a0;display:grid;place-items:center;position:relative;overflow:hidden}.altar-roof{font-size:72px;position:absolute;top:4px}.altar-glow{font-size:34px}.altar-table{position:absolute;bottom:17px;font-family:Georgia,serif;font-weight:800;letter-spacing:2px}.ancestor-list{display:grid;gap:8px;margin-top:14px}.ancestor-list>a{display:grid;grid-template-columns:60px 1fr 20px;gap:12px;align-items:center;padding:11px 14px;border-radius:14px;background:#fffaf2;border:1px solid #ead5bd;text-decoration:none;color:#583228}.ancestor-list img{width:60px;height:60px;border-radius:50%;object-fit:cover}.ancestor-list b,.ancestor-list small,.ancestor-list span{display:block}.ancestor-list small{color:#87685b;margin-top:3px}.ancestor-list span{font-size:10px;color:#9c503a;margin-top:3px}.ancestor-list i{font-size:24px;font-style:normal;color:#9a6d58}
@media(max-width:620px){.ancestor-hero{grid-template-columns:1fr}.ancestor-altar{height:120px}.member-profile-head{grid-template-columns:34px 70px 1fr}.member-profile-head>img{width:70px;height:70px}.member-message{grid-column:2/4}.member-info-grid{grid-template-columns:1fr}.relation-row{grid-template-columns:1fr}.timeline-content.has-image{grid-template-columns:92px 1fr}.timeline-thumb{width:92px;height:76px}}

/* settings prompts mobile */
@media(max-width:620px){.prompt-add-form,.prompt-admin-list article,.prompt-edit-form{grid-template-columns:1fr}.prompt-row-actions{justify-content:flex-end}}


/* =========================================================
   V1.7.6.1 · BANNER SAFE LAYOUT
   Không can thiệp family-feed-layout / grid 3 cột
========================================================= */
.page-cover{
  position:relative;
  width:100%;
  height:170px;
  margin:0 0 16px;
  overflow:hidden;
  border:1px solid #ead7c8;
  border-radius:18px;
  background:#efe3d8;
  box-shadow:0 8px 22px rgba(76,45,31,.07);
}
.page-cover img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
}
.page-cover-shade{
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(49,27,19,.45),rgba(49,27,19,.10) 55%,transparent 100%);
}
.page-cover strong{
  position:absolute;
  left:24px;
  bottom:18px;
  color:#fff;
  font-family:Georgia,"Times New Roman",serif;
  font-size:28px;
  text-shadow:0 2px 10px rgba(0,0,0,.32);
}

/* Bảo vệ layout Tường gia đình */
.family-desktop-content>.page-cover + .family-feed-layout{
  width:100%;
}
.family-feed-layout{
  min-width:0;
}

/* Settings banner history */
.banner-settings{display:grid;gap:14px}
.banner-settings>h2{margin:0}.banner-settings>p{margin:0 0 4px;color:#876d61}
.owner-banner-note{padding:10px 12px;border-radius:11px;background:#f8e8d9;color:#7c3829;font-size:11px}
.banner-setting-item{
  display:grid;
  gap:11px;
  padding:14px;
  border:1px solid #e7d6c8;
  border-radius:16px;
  background:#fffaf5;
}
.banner-setting-title b,.banner-setting-title small{display:block}
.banner-setting-title small{margin-top:3px;color:#927469;font-size:10px}
.banner-preview{
  width:100%;
  height:150px;
  object-fit:cover;
  border:1px solid #e2cdbb;
  border-radius:12px;
  background:#eee2d8;
}
.banner-upload-form{display:flex;gap:9px;align-items:center}
.banner-upload-form input[type=file]{flex:1;min-width:0}
.banner-history-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:9px;
  padding-top:4px;
}
.banner-history-item{
  overflow:hidden;
  border:2px solid transparent;
  border-radius:12px;
  background:#f7ecdf;
}
.banner-history-item.active{border-color:#9c3726}
.banner-history-item>img{
  width:100%;
  height:78px;
  object-fit:cover;
  display:block;
}
.banner-history-actions{
  display:flex;
  gap:5px;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:5px;
}
.banner-history-actions form{margin:0}
.banner-history-actions button{
  border:0;
  border-radius:8px;
  padding:6px 9px;
  background:#8f3022;
  color:#fff;
  font-size:9px;
  cursor:pointer;
}
.banner-history-actions button.danger{background:#d74038}
.banner-history-actions span{font-size:9px;font-weight:700;color:#8b3023}

/* Per-user transition */
.app-shell{will-change:transform,opacity}
body.ui-enter-left_to_right .app-shell{animation:enterLTR .22s ease-out both}
body.ui-enter-right_to_left .app-shell{animation:enterRTL .22s ease-out both}
body.ui-enter-top_to_bottom .app-shell{animation:enterTTB .22s ease-out both}
body.ui-enter-bottom_to_top .app-shell{animation:enterBTT .22s ease-out both}
body.ui-leave-left_to_right .app-shell{animation:leaveLTR .13s ease-in both}
body.ui-leave-right_to_left .app-shell{animation:leaveRTL .13s ease-in both}
body.ui-leave-top_to_bottom .app-shell{animation:leaveTTB .13s ease-in both}
body.ui-leave-bottom_to_top .app-shell{animation:leaveBTT .13s ease-in both}
@keyframes enterLTR{from{opacity:.82;transform:translateX(-12px)}to{opacity:1;transform:none}}
@keyframes enterRTL{from{opacity:.82;transform:translateX(12px)}to{opacity:1;transform:none}}
@keyframes enterTTB{from{opacity:.82;transform:translateY(-10px)}to{opacity:1;transform:none}}
@keyframes enterBTT{from{opacity:.82;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes leaveLTR{to{opacity:.55;transform:translateX(9px)}}
@keyframes leaveRTL{to{opacity:.55;transform:translateX(-9px)}}
@keyframes leaveTTB{to{opacity:.55;transform:translateY(8px)}}
@keyframes leaveBTT{to{opacity:.55;transform:translateY(-8px)}}

@media(max-width:900px){
  .banner-history-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:780px){
  .page-cover{height:118px;margin-bottom:11px;border-radius:14px}
  .page-cover strong{left:14px;bottom:11px;font-size:20px}
  .banner-preview{height:110px}
  .banner-upload-form{align-items:stretch;flex-direction:column}
}
@media(prefers-reduced-motion:reduce){
  body[class*="ui-enter-"] .app-shell,
  body[class*="ui-leave-"] .app-shell{animation:none!important}
}


/* =========================================================
   V1.7.7 · TƯỜNG GIA ĐÌNH
========================================================= */
.topbar-visual{
  min-height:108px;
  padding:0 max(22px,calc((100vw - 1500px)/2));
  background:
    linear-gradient(90deg,rgba(255,249,242,.94) 0%,rgba(255,249,242,.52) 32%,rgba(255,249,242,.18) 64%,rgba(255,249,242,.88) 100%),
    var(--header-cover) center/cover no-repeat;
  border-bottom:1px solid #ead8c9;
}
.topbar-home-brand{display:flex;flex-direction:column;text-decoration:none;color:#6e2d22;line-height:1.1}
.topbar-home-brand b{font:800 25px Georgia,serif;letter-spacing:.02em}
.topbar-home-brand small{font-size:11px;margin-top:5px;color:#6d564b}
.topbar-visual .top-actions{margin-left:auto;background:rgba(255,250,245,.70);padding:5px 8px;border-radius:16px;backdrop-filter:blur(5px)}
.page-cover{display:none!important}

.composer-filter-shell{padding:12px!important;margin-bottom:14px!important;border-radius:18px!important}
.composer-filter-shell .composer-trigger{display:grid!important;grid-template-columns:42px 1fr auto;align-items:center;gap:10px;width:100%;padding:9px!important;border:1px solid #ebd9ca!important;border-radius:15px!important;background:#fffaf5!important;text-align:left}
.composer-filter-shell .composer-trigger .avatar{width:42px;height:42px;border-radius:50%;object-fit:cover}
.composer-filter-shell .composer-trigger span{color:#9b8175}
.composer-filter-shell .composer-trigger b{padding:11px 20px;border-radius:12px;background:#96311f;color:#fff}
.composer-filter-shell .filter-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:11px 0 0;padding:0;border:0}
.composer-filter-shell .filter-tabs a{padding:9px 16px;border:1px solid #ead7c6;border-radius:999px;background:#fffaf5;font-size:11px}
.composer-filter-shell .filter-tabs a.active{background:#96311f;color:#fff;border-color:#96311f}

.memory-card{border-radius:20px!important;border:1px solid #eadbce!important;box-shadow:0 7px 22px rgba(70,41,28,.045)!important}
.memory-head{padding:15px 18px 10px!important}
.memory-body{padding:5px 20px 8px!important}
.memory-title{font-size:18px!important;margin:2px 0 5px!important}
.post-text{font-size:13px;line-height:1.55!important}
.media-frame{margin:8px 20px 12px!important;padding:0!important;background:transparent!important;border:0!important}
.fb-media-grid{display:flex!important;justify-content:flex-start!important;gap:5px!important;height:158px!important;overflow:hidden!important;background:transparent!important;border-radius:12px!important}
.fb-media-grid .media-cell{flex:0 0 31.8%!important;width:31.8%!important;height:158px!important;border-radius:10px!important;overflow:hidden}
.fb-media-grid.single-media .media-cell{flex-basis:31.8%!important;width:31.8%!important;height:158px!important}
.fb-media-grid .media-cell img,.fb-media-grid.single-media .media-cell img{width:100%!important;height:100%!important;max-height:none!important;object-fit:cover!important}
.more-media-overlay{font-size:27px;background:rgba(45,28,20,.44)}
.memory-meta{margin:0 20px;padding:8px 0;border-top:1px solid #efe2d7;border-bottom:1px solid #efe2d7}
.memory-actions{padding:4px 20px 7px!important}

.timeline-mini-visual{padding:16px!important}
.timeline-mini-visual h3{margin:0 0 12px}
.timeline-mini-list{position:relative}
.timeline-mini-item{display:grid!important;grid-template-columns:62px 18px minmax(0,1fr) 54px;gap:6px;align-items:center;min-height:72px;padding:3px 0!important;border:0!important;text-decoration:none;color:#51352c;position:relative}
.timeline-mini-item:not(:last-child)::after{content:"";position:absolute;left:70px;top:43px;bottom:-28px;width:1px;background:#b7826e}
.timeline-mini-date b{display:block;width:max-content;min-width:52px;padding:7px 10px;border-radius:12px;background:#912f23;color:white;font-size:12px;text-align:center}
.timeline-mini-date small{display:block;text-align:center;margin-top:4px;color:#8f3a2d;font-size:9px}
.timeline-mini-item i{width:10px;height:10px;border:2px solid #9a3527;border-radius:50%;background:#fffaf5;z-index:2}
.timeline-mini-item span{font-size:11px;line-height:1.35}
.timeline-mini-item img,.timeline-mini-item em{width:50px;height:50px;border-radius:9px;object-fit:cover;background:#efe5dc}
.timeline-mini-visual .soft-link{margin-top:10px}

.poll-builder{margin:12px 0;padding:13px;border:1px dashed #dfbca6;border-radius:14px;background:#fff7ef}
.poll-builder h4{margin:0}.poll-builder p{font-size:10px;color:#8e7165}
.poll-option-list{display:grid;gap:7px}
.post-poll{display:grid;gap:7px;margin:5px 20px 12px}
.poll-option{position:relative;overflow:hidden;display:flex;justify-content:space-between;gap:10px;padding:11px 13px;border:1px solid #e4d0bf;border-radius:12px;background:#fffaf5;text-align:left}
.poll-option>span{position:absolute;inset:0 auto 0 0;width:var(--poll-width);background:#f1d8c6;transition:width .25s}
.poll-option b,.poll-option em{position:relative;z-index:1}.poll-option em{font-style:normal;font-size:10px}.poll-option.selected{border-color:#9a3527}

.comment-main{min-width:0;max-width:78%}
.comment-tools{display:flex;gap:8px;padding:3px 8px}
.comment-tools button{border:0;background:transparent;color:#9b5c45;font-size:9px;cursor:pointer;padding:0}
.comment-reply{margin-left:42px}
.comment-reply>img{width:28px!important;height:28px!important}
.comment-emoji-toggle{background:#8f2e20!important;color:#fff!important;font-size:17px!important;border:2px solid #fff!important;box-shadow:0 2px 7px rgba(60,30,20,.18)}
.emoji-palette{border:1px solid #ead6c4!important;border-radius:16px!important;padding:10px!important}

.modal-backdrop{z-index:10000!important;backdrop-filter:blur(3px)}
.modal-backdrop:not([hidden]){animation:modalBgIn .18s ease both}
.modal-backdrop:not([hidden])>div{animation:modalCardIn .25s cubic-bezier(.2,.75,.2,1) both}
@keyframes modalBgIn{from{opacity:0}to{opacity:1}}
@keyframes modalCardIn{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}
.system-dialog{position:relative;width:min(430px,94vw);padding:25px;background:#fffaf5;border:1px solid #ead7c7;border-radius:22px;text-align:center;box-shadow:0 28px 80px rgba(34,21,15,.28)}
.system-dialog-icon{width:48px;height:48px;margin:0 auto 10px;display:grid;place-items:center;border-radius:50%;background:#f5ded0;color:#9a3425;font-size:22px}
.system-dialog h3{margin:4px 0 7px;color:#6e2d22}.system-dialog p{color:#80675c;line-height:1.5}.system-dialog-actions{display:flex;justify-content:center;gap:9px;margin-top:18px}
.system-dialog>.modal-close{position:absolute;right:12px;top:12px}

@media(max-width:780px){
 .topbar-visual{min-height:70px;background-image:none!important;padding:0 14px}
 .topbar-home-brand{display:none}
 .fb-media-grid,.fb-media-grid .media-cell,.fb-media-grid.single-media .media-cell{height:112px!important}
 .fb-media-grid .media-cell,.fb-media-grid.single-media .media-cell{flex-basis:32.6%!important;width:32.6%!important}
 .composer-filter-shell .composer-trigger{grid-template-columns:38px 1fr auto}
 .composer-filter-shell .composer-trigger b{padding:9px 12px}
 .composer-filter-shell .filter-tabs{overflow-x:auto;flex-wrap:nowrap}
 .composer-filter-shell .filter-tabs a{white-space:nowrap}
}


/* =========================================================
   V1.7.7.1 HOTFIX
   Modal viewport / header image / timeline / comments
========================================================= */

/* QUAN TRỌNG: transform/will-change trên ancestor làm fixed modal lệch khỏi viewport */
.app-shell{
  will-change:auto!important;
  transform:none!important;
}
body[class*="ui-enter-"] .app-shell,
body[class*="ui-leave-"] .app-shell{
  animation:none!important;
  transform:none!important;
}

/* Modal luôn bám viewport */
#composerModal,
.modal-backdrop{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100vh!important;
  z-index:1000000!important;
  place-items:center!important;
  overflow:auto!important;
}
#composerModal:not([hidden]){display:grid!important}
#composerModal .composer-modal{
  position:relative!important;
  width:min(780px,calc(100vw - 32px))!important;
  max-height:calc(100vh - 32px)!important;
  margin:auto!important;
}

/* Header: chỉ ảnh + action bên phải. Không còn cụm chữ NHÀ MÌNH desktop */
.topbar-visual{
  min-height:108px!important;
  background-image:
    linear-gradient(90deg,rgba(255,250,244,.08),rgba(255,250,244,.02) 68%,rgba(255,250,244,.30)),
    var(--header-cover)!important;
  background-size:cover!important;
  background-position:center!important;
  background-repeat:no-repeat!important;
}
.topbar-home-brand{display:none!important}
.topbar-mobile-brand{display:none!important}
.topbar-visual .top-actions{
  margin-left:auto!important;
}

/* Timeline mini chuẩn cho cột phải nhỏ */
.timeline-mini-visual{
  padding:15px 14px!important;
  overflow:hidden!important;
}
.timeline-mini-visual h3{
  margin:0 0 13px!important;
  font-size:16px!important;
  white-space:normal!important;
}
.timeline-mini-list{
  position:relative!important;
}
.timeline-mini-item{
  display:grid!important;
  grid-template-columns:58px 18px minmax(0,1fr) 48px!important;
  column-gap:5px!important;
  align-items:center!important;
  min-height:67px!important;
  padding:3px 0!important;
  position:relative!important;
  text-decoration:none!important;
  color:#51352c!important;
}
.timeline-mini-item:not(:last-child)::after{
  content:""!important;
  position:absolute!important;
  left:66px!important;
  top:39px!important;
  bottom:-31px!important;
  width:1px!important;
  background:#b78570!important;
}
.timeline-mini-date{
  align-self:center!important;
  text-align:center!important;
}
.timeline-mini-date b{
  display:block!important;
  width:54px!important;
  min-width:0!important;
  padding:7px 3px!important;
  border-radius:12px!important;
  background:#9b3224!important;
  color:#fff!important;
  font-size:11px!important;
  line-height:1!important;
}
.timeline-mini-date small{
  display:block!important;
  margin-top:4px!important;
  font-size:8px!important;
  color:#9a4b39!important;
  white-space:nowrap!important;
}
.timeline-mini-axis{
  position:relative!important;
  height:100%!important;
  display:grid!important;
  place-items:center!important;
  z-index:2!important;
}
.timeline-mini-axis i{
  width:9px!important;
  height:9px!important;
  border:2px solid #9b3224!important;
  border-radius:50%!important;
  background:#fffaf5!important;
}
.timeline-mini-title{
  min-width:0!important;
  font-size:10.5px!important;
  line-height:1.35!important;
  overflow:hidden!important;
  display:-webkit-box!important;
  -webkit-line-clamp:3!important;
  -webkit-box-orient:vertical!important;
}
.timeline-mini-thumb{
  width:46px!important;
  height:46px!important;
  border-radius:9px!important;
  overflow:hidden!important;
  background:#f0e6dd!important;
}
.timeline-mini-thumb img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  display:block!important;
}
.timeline-mini-visual .soft-link{
  display:block!important;
  margin-top:10px!important;
  text-align:center!important;
}

/* Comment kiểu Facebook: bubble rộng tự nhiên, reply thụt vào vừa phải */
.comment-list{
  padding:6px 18px 4px!important;
}
.comment-row{
  display:flex!important;
  align-items:flex-start!important;
  gap:9px!important;
  width:100%!important;
  margin:8px 0!important;
}
.comment-row>img{
  flex:0 0 34px!important;
  width:34px!important;
  height:34px!important;
  border-radius:50%!important;
}
.comment-main{
  flex:1 1 auto!important;
  width:auto!important;
  min-width:0!important;
  max-width:calc(100% - 44px)!important;
}
.comment-bubble{
  display:inline-block!important;
  width:auto!important;
  max-width:min(680px,92%)!important;
  padding:8px 12px!important;
  border-radius:16px!important;
  background:#f4ece5!important;
  vertical-align:top!important;
}
.comment-bubble b{
  display:block!important;
  font-size:11px!important;
  margin-bottom:2px!important;
}
.comment-bubble p{
  margin:0!important;
  font-size:11px!important;
  line-height:1.42!important;
  white-space:normal!important;
  word-break:break-word!important;
}
.comment-tools{
  padding:3px 8px 0!important;
}
.comment-reply{
  width:calc(100% - 42px)!important;
  margin-left:42px!important;
}
.comment-reply>img{
  flex-basis:28px!important;
  width:28px!important;
  height:28px!important;
}
.comment-reply .comment-main{
  max-width:calc(100% - 38px)!important;
}
.comment-reply .comment-bubble{
  max-width:min(600px,90%)!important;
  background:#f7f0e9!important;
}

/* Form comment rộng hết card */
.comment-form{
  width:100%!important;
  grid-template-columns:40px minmax(0,1fr) auto!important;
}
.comment-form input{
  width:100%!important;
  min-width:0!important;
  padding-left:15px!important;
}
.comment-send{white-space:nowrap!important}

/* Mobile giữ logo, desktop không */
@media(max-width:780px){
  .topbar-visual{
    min-height:70px!important;
    background-image:none!important;
  }
  .topbar-mobile-brand{display:flex!important}
  .comment-list{padding-left:12px!important;padding-right:12px!important}
  .comment-reply{margin-left:32px!important;width:calc(100% - 32px)!important}
}


/* =========================================================
   V1.7.7.2 · SOCIAL UI + FOOTER
========================================================= */

/* Header action nổi rõ trên ảnh */
.topbar-visual .top-actions{
  background:rgba(18,15,14,.58)!important;
  border:1px solid rgba(255,255,255,.22)!important;
  box-shadow:0 7px 20px rgba(0,0,0,.15)!important;
  backdrop-filter:blur(10px)!important;
}
.topbar-visual .header-message-btn,
.topbar-visual .account-menu-toggle{
  background:rgba(255,255,255,.10)!important;
  border-color:rgba(255,255,255,.22)!important;
  color:#fff!important;
}
.topbar-visual .header-message-icon{color:#fff!important}

/* Bài viết không còn khoảng trắng dư */
.memory-card{
  min-height:0!important;
  height:auto!important;
}
.memory-body,
.media-frame,
.fb-media-grid{
  min-height:0!important;
}
.media-frame{
  height:auto!important;
  min-height:0!important;
  max-height:170px!important;
  overflow:hidden!important;
}
.fb-media-grid{
  height:158px!important;
  min-height:158px!important;
  max-height:158px!important;
  padding:0!important;
}
.fb-media-grid .media-cell{
  height:158px!important;
  min-height:158px!important;
  max-height:158px!important;
}
.fb-media-grid .media-cell img{
  height:158px!important;
  min-height:0!important;
  max-height:158px!important;
}
.feed-column .media-grid.media-count-2,
.feed-column .media-grid.media-count-3,
.feed-column .media-grid.media-count-4{
  height:158px!important;
  min-height:158px!important;
  max-height:158px!important;
}
.feed-column .media-grid.media-count-1{
  height:158px!important;
  min-height:158px!important;
  max-height:158px!important;
}

/* Reaction picker kiểu Facebook */
.reaction-action-wrap{
  position:relative;
  flex:1;
  display:flex;
}
.reaction-action-wrap>.action-btn{width:100%}
.reaction-picker{
  position:absolute;
  left:8px;
  bottom:47px;
  z-index:80;
  display:flex;
  gap:5px;
  align-items:center;
  padding:7px 8px;
  border-radius:999px;
  background:rgba(22,24,25,.94);
  box-shadow:0 10px 28px rgba(0,0,0,.30);
  backdrop-filter:blur(9px);
  white-space:nowrap;
}
.reaction-picker[hidden]{display:none!important}
.reaction-picker button{
  width:37px;
  height:37px;
  padding:0;
  border:0;
  border-radius:50%;
  background:transparent;
  font-size:25px;
  line-height:37px;
  cursor:pointer;
  transition:transform .14s ease,background .14s ease;
}
.reaction-picker button:hover{
  transform:translateY(-5px) scale(1.2);
  background:rgba(255,255,255,.10);
}
.reaction-main-icon{font-size:16px}
.reaction-summary-icons{letter-spacing:-4px}

/* Emoji bình luận: nút sạch + palette nổi ngang */
.comment-emoji-toggle{
  width:40px!important;
  height:40px!important;
  display:grid!important;
  place-items:center!important;
  padding:0!important;
  border:1px solid #e3cdbd!important;
  border-radius:50%!important;
  background:#fff8f0!important;
  color:#7c4434!important;
  box-shadow:none!important;
  font-size:0!important;
}
.comment-emoji-toggle span{
  font-size:19px!important;
  line-height:1!important;
}
.emoji-palette{
  left:12px!important;
  bottom:57px!important;
  width:auto!important;
  min-width:300px!important;
  max-width:min(420px,calc(100vw - 50px))!important;
  display:flex!important;
  gap:3px!important;
  overflow-x:auto!important;
  grid-template-columns:none!important;
  padding:7px 9px!important;
  border-radius:999px!important;
  background:rgba(24,24,24,.94)!important;
  border:1px solid rgba(255,255,255,.16)!important;
  box-shadow:0 11px 30px rgba(0,0,0,.26)!important;
  backdrop-filter:blur(9px)!important;
}
.emoji-palette[hidden]{display:none!important}
.emoji-palette button{
  flex:0 0 34px!important;
  width:34px!important;
  height:34px!important;
  padding:0!important;
  border-radius:50%!important;
  font-size:22px!important;
}
.emoji-palette button:hover{background:rgba(255,255,255,.12)!important}

/* Comment giống Facebook: rộng, tự nhiên, reply lồng đúng */
.comment-list{
  width:100%!important;
  padding:7px 18px 2px!important;
}
.comment-row{
  width:100%!important;
  margin:9px 0!important;
}
.comment-main{
  flex:1!important;
  max-width:none!important;
}
.comment-bubble{
  display:inline-block!important;
  width:auto!important;
  min-width:0!important;
  max-width:min(720px,94%)!important;
  padding:8px 12px!important;
  background:#f3ece5!important;
  border-radius:16px!important;
}
.comment-bubble b{font-size:11px!important}
.comment-bubble p{font-size:11px!important;line-height:1.45!important}
.comment-tools{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  padding:4px 8px 0!important;
  color:#91766a!important;
}
.comment-tools button,
.comment-tools span{
  font-size:9px!important;
  color:#80695f!important;
}
.comment-tools button{
  font-weight:600!important;
}
.comment-tools button.active{color:#b63127!important}
.comment-replies{
  margin-left:43px!important;
  padding-left:9px!important;
  border-left:1px solid #eadfd6!important;
}
.comment-replies .comment-row{
  margin:6px 0!important;
}
.comment-replies .comment-row.comment-reply{
  margin-left:0!important;
  width:100%!important;
}
.comment-replies .comment-bubble{
  max-width:min(650px,93%)!important;
  background:#f7f1eb!important;
}

/* Footer */
.family-footer{
  margin-top:34px;
  border-top:1px solid #e7d4c4;
  background:
    radial-gradient(circle at 12% 20%,rgba(189,126,83,.12),transparent 24%),
    linear-gradient(180deg,#fff9f2,#f4e5d6);
  color:#674033;
}
.family-footer-inner{
  width:min(1450px,calc(100% - 36px));
  margin:auto;
  padding:28px 0 22px;
  display:grid;
  grid-template-columns:1.2fr 1fr auto;
  gap:32px;
  align-items:center;
}
.family-footer-brand{
  display:flex;
  gap:14px;
  align-items:center;
}
.family-footer-brand img{
  width:76px;
  height:60px;
  object-fit:contain;
}
.family-footer-brand b{
  display:block;
  font:800 19px Georgia,serif;
  color:#7b2f23;
}
.family-footer-brand p{
  max-width:440px;
  margin:5px 0 0;
  font-size:11px;
  line-height:1.5;
  color:#86695d;
}
.family-footer-message{
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px 16px;
  border:1px solid #e4cdb9;
  border-radius:16px;
  background:rgba(255,250,245,.72);
}
.family-footer-message>span{
  width:40px;height:40px;display:grid;place-items:center;
  border-radius:50%;background:#9d3726;color:#fff;font-size:19px;
}
.family-footer-message b,.family-footer-message small{display:block}
.family-footer-message b{font-size:11px;color:#743126}
.family-footer-message small{margin-top:4px;font-size:9px;color:#94786c;line-height:1.45}
.family-footer-links{
  display:grid;
  grid-template-columns:repeat(2,auto);
  gap:8px 14px;
}
.family-footer-links a{
  color:#744538;
  text-decoration:none;
  font-size:10px;
}
.family-footer-links a:hover{color:#a02e21}
.family-footer-bottom{
  border-top:1px solid #e6d3c4;
  padding:12px max(18px,calc((100vw - 1450px)/2));
  display:flex;
  justify-content:space-between;
  gap:15px;
  font-size:9px;
  color:#92766a;
}
.family-footer-bottom em{font-family:Georgia,serif;color:#8a5543}

@media(max-width:780px){
  .reaction-picker{left:0;max-width:calc(100vw - 30px);overflow-x:auto}
  .reaction-picker button{flex:0 0 34px;width:34px;height:34px;font-size:23px}
  .emoji-palette{min-width:260px!important}
  .comment-list{padding-left:12px!important;padding-right:12px!important}
  .comment-replies{margin-left:32px!important}
  .family-footer{padding-bottom:74px}
  .family-footer-inner{
    width:calc(100% - 28px);
    grid-template-columns:1fr;
    gap:14px;
    padding:22px 0 16px;
  }
  .family-footer-links{grid-template-columns:repeat(4,1fr);text-align:center}
  .family-footer-bottom{flex-direction:column;text-align:center}
}


/* =========================================================
   V1.7.7.3 · EFFECT / REACTION / HEADER / FULL EDIT
========================================================= */

/* Hiệu ứng trang: chậm và nhìn thấy rõ, nhưng KHÔNG transform .app-shell để modal fixed không lỗi */
body.ui-enter-left_to_right .app-shell > :not(.modal-backdrop){animation:pageEnterLTR .56s cubic-bezier(.22,.72,.22,1) both}
body.ui-enter-right_to_left .app-shell > :not(.modal-backdrop){animation:pageEnterRTL .56s cubic-bezier(.22,.72,.22,1) both}
body.ui-enter-top_to_bottom .app-shell > :not(.modal-backdrop){animation:pageEnterTTB .56s cubic-bezier(.22,.72,.22,1) both}
body.ui-enter-bottom_to_top .app-shell > :not(.modal-backdrop){animation:pageEnterBTT .56s cubic-bezier(.22,.72,.22,1) both}
body.ui-leave-left_to_right .app-shell > :not(.modal-backdrop){animation:pageLeaveLTR .30s ease-in both}
body.ui-leave-right_to_left .app-shell > :not(.modal-backdrop){animation:pageLeaveRTL .30s ease-in both}
body.ui-leave-top_to_bottom .app-shell > :not(.modal-backdrop){animation:pageLeaveTTB .30s ease-in both}
body.ui-leave-bottom_to_top .app-shell > :not(.modal-backdrop){animation:pageLeaveBTT .30s ease-in both}
@keyframes pageEnterLTR{from{opacity:.35;transform:translateX(-34px)}to{opacity:1;transform:none}}
@keyframes pageEnterRTL{from{opacity:.35;transform:translateX(34px)}to{opacity:1;transform:none}}
@keyframes pageEnterTTB{from{opacity:.35;transform:translateY(-26px)}to{opacity:1;transform:none}}
@keyframes pageEnterBTT{from{opacity:.35;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes pageLeaveLTR{to{opacity:.18;transform:translateX(28px)}}
@keyframes pageLeaveRTL{to{opacity:.18;transform:translateX(-28px)}}
@keyframes pageLeaveTTB{to{opacity:.18;transform:translateY(22px)}}
@keyframes pageLeaveBTT{to{opacity:.18;transform:translateY(-22px)}}

/* Banner/header mặc định đúng tỉ lệ ảnh 1355x115 */
.topbar-visual{
  min-height:115px!important;
  height:115px!important;
  background-size:cover!important;
  background-position:center center!important;
}

/* cụm icon header: nâu rượu vang xuyên thấu, đồng bộ hệ thống */
.topbar-visual .top-actions{
  background:rgba(105,45,32,.68)!important;
  border:1px solid rgba(255,239,222,.48)!important;
  box-shadow:0 8px 24px rgba(91,47,34,.18)!important;
  backdrop-filter:blur(10px) saturate(1.08)!important;
}
.topbar-visual .header-message-btn,
.topbar-visual .account-menu-toggle{
  background:rgba(255,246,235,.16)!important;
  border-color:rgba(255,238,218,.42)!important;
  color:#fff9f2!important;
}
.topbar-visual .header-message-btn:hover,
.topbar-visual .account-menu-toggle:hover{
  background:rgba(255,246,235,.28)!important;
}

/* Reaction giống Facebook: icon + nhãn đổi theo loại đã chọn */
.reaction-main{font-weight:700!important}
.reaction-main.reaction-like{color:#2078f4!important}
.reaction-main.reaction-love{color:#e93d57!important}
.reaction-main.reaction-care{color:#e6a21a!important}
.reaction-main.reaction-haha,
.reaction-main.reaction-wow,
.reaction-main.reaction-sad{color:#d99916!important}
.reaction-main.reaction-angry{color:#d74432!important}
.reaction-main-icon{font-size:18px!important;margin-right:3px}
.reaction-main-label{font-size:11px}

/* Thanh reaction mang tông nâu sẫm, không còn đen lạc hệ thống */
.reaction-picker{
  background:rgba(93,49,37,.94)!important;
  border:1px solid rgba(255,234,214,.28)!important;
  box-shadow:0 12px 30px rgba(82,43,31,.28)!important;
}
.reaction-picker button:hover{background:rgba(255,244,231,.14)!important}

/* Sửa bài viết đầy đủ */
.post-edit-full-modal{
  width:min(820px,calc(100vw - 28px))!important;
  max-height:calc(100vh - 30px)!important;
  overflow:auto!important;
}
.post-edit-full-modal form{padding-bottom:4px}
.post-edit-full-modal .composer-tabs{
  position:sticky;
  top:0;
  z-index:8;
  background:#fffaf4;
  padding-top:8px;
}
.post-edit-full-modal .edit-time-field[hidden],
.post-edit-full-modal .edit-poll-builder[hidden]{display:none!important}
.edit-media-current{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:9px;
  margin:9px 0 15px;
}
.edit-media-item{
  position:relative;
  display:block!important;
  overflow:hidden;
  padding:0!important;
  border:1px solid #e2cdbb;
  border-radius:13px;
  background:#f7ecdf;
}
.edit-media-item img{
  width:100%;
  height:112px;
  display:block;
  object-fit:cover;
}
.edit-media-item span{
  display:flex;
  gap:6px;
  align-items:center;
  padding:7px 9px;
  font-size:9px;
  color:#784735;
}
.edit-media-item:has(input:checked){
  opacity:.52;
  outline:2px solid #b6392e;
}
.sticky-edit-actions{
  position:sticky;
  bottom:-1px;
  z-index:9;
  margin-top:14px!important;
  padding:12px 0 6px!important;
  background:linear-gradient(180deg,rgba(255,250,244,0),#fffaf4 25%);
}

/* banner settings preview cũng theo cùng tỉ lệ */
.banner-preview{aspect-ratio:1355/115!important;height:auto!important;max-height:none!important}

@media(max-width:780px){
  .topbar-visual{height:70px!important;min-height:70px!important}
  .edit-media-current{grid-template-columns:repeat(2,minmax(0,1fr))}
  .edit-media-item img{height:94px}
}


/* =========================================================
   V1.7.7.4 · interaction UI
========================================================= */
.topbar-visual .top-actions{
  background:rgba(255,250,244,.84)!important;
  border:1px solid rgba(109,74,57,.16)!important;
  box-shadow:0 8px 24px rgba(69,43,31,.12)!important;
  backdrop-filter:blur(14px) saturate(1.1)!important;
}
.topbar-visual .header-message-btn,.topbar-visual .account-menu-toggle{
  background:rgba(255,255,255,.68)!important;border:1px solid rgba(119,77,58,.16)!important;color:#6d3c2f!important;
}
.topbar-visual .header-message-icon{color:#6d3c2f!important}
.topbar-visual .account-menu-toggle img{border:2px solid rgba(139,92,69,.25)!important}
.topbar-visual .header-message-btn:hover,.topbar-visual .account-menu-toggle:hover{background:#fffaf4!important;border-color:rgba(148,74,52,.28)!important}

.reaction-glyph{--rg:#55708f;width:23px;height:23px;flex:0 0 23px;display:inline-grid;place-items:center;border-radius:50%;background:var(--rg);color:#fff;vertical-align:middle;box-shadow:0 1px 3px rgba(60,35,25,.16)}
.reaction-glyph svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.reaction-glyph-like{--rg:#4f79a8}.reaction-glyph-love{--rg:#b65359}.reaction-glyph-love svg{fill:currentColor;stroke-width:1.2}.reaction-glyph-haha{--rg:#c79642}.reaction-glyph-wow{--rg:#8b6da5}.reaction-glyph-sad{--rg:#6f8495}
.reaction-main .reaction-glyph{width:22px;height:22px;flex-basis:22px}.reaction-main.reaction-like{color:#426c9a!important}.reaction-main.reaction-love{color:#a9464e!important}.reaction-main.reaction-haha{color:#a97829!important}.reaction-main.reaction-wow{color:#745990!important}.reaction-main.reaction-sad{color:#607787!important}

.reaction-summary{display:inline-flex!important;align-items:center!important;gap:5px!important;padding:1px 4px 1px 1px!important;border:0!important;background:transparent!important;color:#765d53!important;cursor:pointer!important}
.reaction-summary:disabled{cursor:default!important}.reaction-summary-icons{display:inline-flex!important;align-items:center!important;padding-left:4px}.reaction-summary-icons .reaction-glyph{width:20px!important;height:20px!important;flex-basis:20px!important;margin-left:-5px!important;border:2px solid #fffaf4!important}.reaction-summary-icons .reaction-glyph:first-child{margin-left:0!important}.reaction-summary-icons svg{width:11px!important;height:11px!important}.reaction-summary b{font-size:10px!important;font-weight:500!important}.reaction-summary:not(:disabled):hover b{text-decoration:underline}

.reaction-picker{min-width:330px!important;justify-content:space-around!important;padding:8px 10px 7px!important;border-radius:18px!important;background:rgba(255,250,244,.98)!important;border:1px solid #e5d1c0!important;box-shadow:0 14px 35px rgba(70,42,31,.20)!important}
.reaction-picker button{width:56px!important;height:50px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:3px!important;border-radius:12px!important;color:#725347!important}
.reaction-picker button:hover{transform:translateY(-3px)!important;background:#f4e8dc!important}.reaction-picker button .reaction-glyph{width:27px!important;height:27px!important;flex-basis:27px!important}.reaction-picker button small{font-size:8px!important;line-height:1!important}

.comment-bubble{position:relative!important}.comment-like-pill{position:absolute!important;right:-12px!important;bottom:-9px!important;display:flex!important;align-items:center!important;gap:3px!important;height:21px!important;padding:1px 7px 1px 3px!important;border:1px solid #e4d7cc!important;border-radius:999px!important;background:#fffaf5!important;box-shadow:0 2px 7px rgba(72,44,32,.10)!important;color:#70594f!important;cursor:pointer!important}.comment-like-pill .reaction-glyph{width:17px!important;height:17px!important;flex-basis:17px!important}.comment-like-pill .reaction-glyph svg{width:10px!important;height:10px!important}.comment-like-pill b{font-size:8px!important;font-weight:600!important;margin:0!important}.comment-tools{margin-top:4px!important}

.reaction-people-modal{width:min(520px,calc(100vw - 26px));max-height:min(680px,calc(100vh - 34px));display:flex;flex-direction:column;overflow:hidden;border:1px solid #e3d0c0;border-radius:20px;background:#fffaf5;box-shadow:0 25px 70px rgba(58,37,28,.25)}
.reaction-people-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 12px;border-bottom:1px solid #eee0d5}.reaction-people-head h3{margin:0;color:#6f2e23;font-size:18px}.reaction-people-head p{margin:3px 0 0;font-size:9px;color:#987b6e}
.reaction-people-tabs{display:flex;gap:5px;overflow-x:auto;padding:9px 14px;border-bottom:1px solid #eee0d5}.reaction-people-tabs button{flex:0 0 auto;display:flex;align-items:center;gap:5px;min-height:34px;padding:5px 10px;border:0;border-radius:10px;background:transparent;color:#72584d;font-size:9px;cursor:pointer}.reaction-people-tabs button.active{background:#f2e2d5;color:#8b3225}.reaction-people-tabs .reaction-glyph{width:19px;height:19px;flex-basis:19px}.reaction-people-tabs .reaction-glyph svg{width:11px;height:11px}
.reaction-people-list{overflow:auto;padding:8px 12px 16px}.reaction-person{display:flex;align-items:center;gap:11px;padding:9px 8px;border-radius:12px;text-decoration:none;color:#51372f}.reaction-person:hover{background:#f7ece2}.reaction-person>img{width:42px;height:42px;border-radius:50%;object-fit:cover}.reaction-person>span{min-width:0;display:flex;flex:1;justify-content:space-between;align-items:center;gap:8px}.reaction-person b{font-size:10px}.reaction-person small{display:flex;align-items:center;gap:4px;font-size:8px;color:#8b6e62}.reaction-person small .reaction-glyph{width:19px;height:19px;flex-basis:19px}.reaction-person small .reaction-glyph svg{width:11px;height:11px}.reaction-loading,.reaction-empty{padding:30px;text-align:center;color:#967b6f;font-size:10px}

.emoji-palette{background:rgba(255,250,244,.98)!important;border:1px solid #e5d1c0!important;box-shadow:0 12px 30px rgba(70,42,31,.18)!important}.emoji-palette button:hover{background:#f1e3d7!important}
.modal-backdrop:not([hidden]){animation-duration:.28s!important}.modal-backdrop:not([hidden])>div{animation-duration:.38s!important}

@media(max-width:780px){.reaction-picker{min-width:0!important;width:min(330px,calc(100vw - 24px))!important;overflow-x:auto!important}.reaction-picker button{flex:0 0 54px!important}.reaction-person>span{display:block}.reaction-person small{margin-top:4px}}


/* =========================================================
   V1.7.7.5 · COMMENT LIKE FIX / SELF TOPIC / EVENT REMINDER
========================================================= */

/* Comment/reply gần Facebook hơn */
.comment-row{
  position:relative!important;
}
.comment-tools button{
  cursor:pointer!important;
  pointer-events:auto!important;
}
.comment-tools button:hover{
  text-decoration:underline!important;
}
.comment-tools button.active{
  color:#9f3326!important;
  font-weight:700!important;
}
.comment-replies{
  position:relative!important;
}
.comment-replies::before{
  content:"";
  position:absolute;
  left:-1px;
  top:-8px;
  bottom:17px;
  width:1px;
  background:#dfd2c8;
}
.comment-reply{
  position:relative!important;
}
.comment-reply::before{
  content:"";
  position:absolute;
  left:-10px;
  top:-6px;
  width:18px;
  height:21px;
  border-left:1px solid #dfd2c8;
  border-bottom:1px solid #dfd2c8;
  border-bottom-left-radius:11px;
}
.comment-form input{
  font-size:11px!important;
}

/* Right rail: Dòng thời gian = ký ức cá nhân, bấm item mở thẳng bài */
.timeline-mini-item{
  transition:background .18s ease,transform .18s ease!important;
  border-radius:10px!important;
}
.timeline-mini-item:hover{
  background:#f8ede4!important;
  transform:translateX(2px)!important;
}

/* Nhắc sự kiện gần tới */
.upcoming-event-reminders{
  margin:12px 0 10px;
  padding:10px;
  border:1px solid #ead3c1;
  border-radius:14px;
  background:linear-gradient(145deg,#fff8f0,#f9eee4);
}
.upcoming-event-title{
  display:flex;
  align-items:center;
  gap:6px;
  margin-bottom:7px;
  color:#7e3327;
}
.upcoming-event-title span{font-size:13px}
.upcoming-event-title b{font-size:9px;letter-spacing:.04em}
.upcoming-event-alert{
  position:relative;
  display:grid;
  grid-template-columns:10px minmax(0,1fr) 38px;
  gap:7px;
  align-items:center;
  padding:8px 5px;
  border-top:1px solid #efdfd2;
  text-decoration:none;
  color:#54382f;
}
.upcoming-event-alert:first-of-type{border-top:0}
.upcoming-event-alert>div{min-width:0}
.upcoming-event-alert b{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:9px;
}
.upcoming-event-alert small{
  display:block;
  margin-top:3px;
  font-size:8px;
  color:#9a6a5a;
}
.upcoming-event-alert img{
  width:36px;height:36px;object-fit:cover;border-radius:8px;
}
.event-alert-pulse{
  width:8px;height:8px;border-radius:50%;
  background:#c68a43;
  box-shadow:0 0 0 0 rgba(198,138,67,.38);
}
.upcoming-event-alert.live{
  background:rgba(171,49,37,.06);
  border-radius:9px;
}
.upcoming-event-alert.live .event-alert-pulse{
  background:#b32f27;
  animation:eventPulseLive 1.25s ease-out infinite;
}
.upcoming-event-alert.soon .event-alert-pulse{
  animation:eventPulseSoon 2.1s ease-out infinite;
}
@keyframes eventPulseLive{
  0%{box-shadow:0 0 0 0 rgba(179,47,39,.46)}
  70%{box-shadow:0 0 0 8px rgba(179,47,39,0)}
  100%{box-shadow:0 0 0 0 rgba(179,47,39,0)}
}
@keyframes eventPulseSoon{
  0%{box-shadow:0 0 0 0 rgba(198,138,67,.30)}
  70%{box-shadow:0 0 0 6px rgba(198,138,67,0)}
  100%{box-shadow:0 0 0 0 rgba(198,138,67,0)}
}

/* Sự kiện nằm ngay trong danh sách tháng */
.month-memory-list a.month-event{
  border-radius:9px;
  padding-left:5px!important;
  padding-right:5px!important;
}
.month-memory-list a.month-event.live{
  background:rgba(176,45,35,.07)!important;
  outline:1px solid rgba(176,45,35,.15);
}
.month-memory-list a.month-event.soon{
  background:rgba(204,147,74,.08)!important;
}
.month-memory-list a.month-event.live .month-memory-icon{
  color:#b52d25!important;
  animation:eventIconBlink 1.2s ease-in-out infinite;
}
.month-memory-list a.month-event.soon .month-memory-icon{
  color:#b77b2f!important;
}
@keyframes eventIconBlink{50%{opacity:.35;transform:scale(.85)}}

/* Chủ đề Chính mình */
.topic-panel button[data-group="self"]{
  background:linear-gradient(90deg,#fff8f0,#fbefe4);
  color:#793829;
}
\n/* V1.7.7.6 interaction modal */
.reaction-loading{min-height:100px;display:flex!important;align-items:center;justify-content:center;gap:9px}.reaction-loading-dot{width:9px;height:9px;border-radius:50%;background:#9a4938;animation:nhReactionLoading 1s ease-in-out infinite}@keyframes nhReactionLoading{0%,100%{transform:scale(.72);opacity:.42}50%{transform:scale(1);opacity:1}}.reaction-error{display:flex;flex-direction:column;gap:6px;align-items:center;justify-content:center;min-height:100px}.reaction-error b{color:#8d3026;font-size:11px}.reaction-error span{color:#92766a;font-size:9px;text-align:center;max-width:360px}\n

/* =========================================================
   V1.7.7.7 · TIMELINE REDESIGN
========================================================= */
.timeline-redesign{max-width:1120px;margin:0 auto}
.timeline-control-card{
  margin:0 0 16px;
  padding:18px 20px 15px;
  overflow:hidden;
}
.timeline-control-top{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
}
.timeline-control-top h1{
  margin:4px 0 5px;
  font:700 24px/1.2 "Segoe UI","Noto Sans",Arial,sans-serif;
  color:#702b20;
}
.timeline-control-top p{
  margin:0;
  color:#8a7064;
  font-size:11px;
}
.timeline-year-select{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
}
.timeline-year-select label{
  font-size:9px;
  font-weight:700;
  color:#785347;
}
.timeline-year-select select{
  min-width:118px;
  padding:8px 28px 8px 10px;
  border:1px solid #dfcbbb;
  border-radius:10px;
  background:#fffaf5;
  color:#654337;
  font-size:10px;
}
.timeline-filter-pills{
  display:flex;
  gap:7px;
  margin-top:14px;
  padding-top:13px;
  border-top:1px solid #efe1d5;
  overflow-x:auto;
  scrollbar-width:thin;
}
.timeline-filter-pills a{
  flex:0 0 auto;
  padding:7px 12px;
  border:1px solid #e3d0c0;
  border-radius:999px;
  background:#fffaf5;
  color:#6e4a3e;
  font-size:9px;
  transition:.16s ease;
}
.timeline-filter-pills a:hover{
  transform:translateY(-1px);
  background:#f6e9de;
}
.timeline-filter-pills a.active{
  background:#913323;
  color:#fff;
  border-color:#913323;
  box-shadow:0 4px 12px rgba(114,46,34,.13);
}

.timeline-highlights{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(0,1.1fr) minmax(210px,.8fr);
  gap:12px;
  margin:0 0 18px;
}
.timeline-highlight-card{
  min-width:0;
  padding:15px;
}
.highlight-head{
  display:flex;
  align-items:center;
  gap:9px;
  margin-bottom:10px;
}
.highlight-head h3{
  margin:2px 0 0;
  font-size:12px;
  color:#5f3126;
}
.highlight-icon{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  flex:0 0 34px;
  border-radius:50%;
  background:#f1ddca;
  color:#913323;
  font-size:16px;
}
.highlight-icon.bell{
  background:#f1e3ce;
  color:#b47627;
}

.today-memory-list,.timeline-upcoming-list{
  display:grid;
  gap:6px;
}
.today-memory-item,.timeline-upcoming-item{
  display:flex;
  align-items:center;
  gap:9px;
  min-width:0;
  padding:7px;
  border-radius:10px;
  transition:background .16s ease,transform .16s ease;
}
.today-memory-item:hover,.timeline-upcoming-item:hover{
  background:#f7ece2;
  transform:translateX(2px);
}
.today-memory-item img,.today-memory-placeholder{
  width:42px;
  height:42px;
  flex:0 0 42px;
  border-radius:9px;
  object-fit:cover;
}
.today-memory-placeholder{
  display:grid;
  place-items:center;
  background:#f2e5d8;
  color:#9a7565;
}
.today-memory-item div,.timeline-upcoming-item div{min-width:0}
.today-memory-item b,.timeline-upcoming-item b{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:9px;
  color:#5a3a30;
}
.today-memory-item small,.timeline-upcoming-item small{
  display:block;
  margin-top:3px;
  font-size:8px;
  color:#9a786b;
}

.timeline-upcoming-item{
  display:grid;
  grid-template-columns:9px minmax(0,1fr) 38px;
}
.timeline-upcoming-item i{
  width:8px;
  height:8px;
  border-radius:50%;
  background:#c58c48;
}
.timeline-upcoming-item.live{
  background:rgba(168,48,36,.06);
}
.timeline-upcoming-item.live i{
  background:#b43128;
  animation:eventPulseLive 1.25s ease-out infinite;
}
.timeline-upcoming-item.soon i{
  animation:eventPulseSoon 2.1s ease-out infinite;
}
.timeline-upcoming-item img{
  width:36px;
  height:36px;
  object-fit:cover;
  border-radius:8px;
}

.gentle-stat-grid{
  display:grid;
  gap:6px;
}
.gentle-stat-grid>div{
  padding:8px 9px;
  border-radius:10px;
  background:#faf0e7;
}
.gentle-stat-grid b{
  display:block;
  color:#8d3025;
  font-size:17px;
  line-height:1;
}
.gentle-stat-grid span{
  display:block;
  margin-top:4px;
  color:#7e6156;
  font-size:8px;
}
.gentle-stat-grid small{
  display:block;
  margin-top:2px;
  color:#ae8a7a;
  font-size:7px;
}

.timeline-visitor-summary{
  display:flex;
  align-items:center;
  gap:13px;
  margin-bottom:18px;
  padding:14px 16px;
}
.timeline-visitor-summary img{
  width:54px;
  height:54px;
  border-radius:50%;
  object-fit:cover;
}
.timeline-visitor-summary h2{
  margin:2px 0 3px;
  color:#6d2d23;
  font-size:17px;
}
.timeline-visitor-summary p{
  margin:0;
  color:#8a7064;
  font-size:9px;
  line-height:1.45;
}
.timeline-stream-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:15px;
  padding:4px 3px 12px;
}
.timeline-stream-head h2{
  margin:3px 0 0;
  color:#672f25;
  font-size:18px;
}
.timeline-result-count{
  padding:5px 9px;
  border-radius:999px;
  background:#efe2d5;
  color:#806257;
  font-size:8px;
}

.timeline-shell-v2{
  position:relative;
  padding:0 0 30px;
}
.timeline-shell-v2::before{
  content:"";
  position:absolute;
  left:83px;
  top:15px;
  bottom:18px;
  width:2px;
  background:linear-gradient(#be9070,#dfcbb9 85%,transparent);
}
.timeline-item-v2{
  position:relative;
  display:grid;
  grid-template-columns:64px 38px minmax(0,1fr);
  gap:0;
  margin:0 0 13px;
  align-items:start;
}
.timeline-date-col{
  padding-top:17px;
  text-align:right;
}
.timeline-date-col b{
  display:block;
  color:#8f3024;
  font-size:14px;
}
.timeline-date-col small{
  display:block;
  margin-top:2px;
  color:#aa897b;
  font-size:7px;
}
.timeline-node{
  position:relative;
  min-height:38px;
}
.timeline-node i{
  position:absolute;
  left:50%;
  top:20px;
  width:12px;
  height:12px;
  margin-left:-6px;
  border:3px solid #f8eee5;
  border-radius:50%;
  background:#a33b2b;
  box-shadow:0 0 0 1px #a33b2b;
  z-index:2;
}
.timeline-content{
  min-height:104px;
  display:grid!important;
  grid-template-columns:1fr;
  gap:0!important;
  padding:13px!important;
  border-radius:15px!important;
  transition:transform .17s ease,box-shadow .17s ease,border-color .17s ease;
}
.timeline-content.has-image{
  grid-template-columns:124px minmax(0,1fr)!important;
  gap:12px!important;
}
.timeline-content:hover{
  transform:translateY(-2px);
  border-color:#dcbca7;
  box-shadow:0 11px 28px rgba(84,48,28,.10);
}
.timeline-thumb{
  width:124px!important;
  height:94px!important;
  object-fit:cover!important;
  border-radius:10px!important;
}
.timeline-content-copy{min-width:0}
.timeline-entry-meta{
  display:flex;
  align-items:center;
  gap:6px;
  min-height:18px;
}
.timeline-entry-type{
  display:inline-flex;
  padding:3px 7px;
  border-radius:999px;
  background:#f2e4d8;
  color:#885243;
  font-size:7px;
  font-weight:700;
}
.timeline-event-alert{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:3px 7px;
  border-radius:999px;
  font-size:7px;
  font-weight:700;
}
.timeline-event-alert.live{
  background:#f8dfdc;
  color:#a42c23;
  animation:timelineAlert 1.5s ease-in-out infinite;
}
.timeline-event-alert.soon{
  background:#f4ead7;
  color:#a26a1f;
}
@keyframes timelineAlert{
  50%{box-shadow:0 0 0 4px rgba(164,44,35,.07)}
}
.timeline-content h3{
  margin:6px 0 4px!important;
  color:#4d3027!important;
  font-size:13px!important;
  line-height:1.25!important;
}
.timeline-content p{
  margin:0!important;
  color:#806c63!important;
  font-size:9px!important;
  line-height:1.5!important;
}
.timeline-open-link{
  display:inline-block;
  margin-top:8px;
  color:#8e3528!important;
  font-size:8px!important;
}
.timeline-item-v2.event-live .timeline-node i{
  background:#b52d25;
  animation:eventPulseLive 1.2s ease-out infinite;
}
.timeline-item-v2.event-soon .timeline-node i{
  background:#bd7e2e;
}
.timeline-empty{
  margin-left:102px;
  padding:28px;
  text-align:center;
}
.timeline-empty>span{
  display:block;
  margin-bottom:6px;
  font-size:24px;
  color:#a87d67;
}
.timeline-empty h3{
  margin:0;
  color:#6b392d;
}
.timeline-empty p{
  margin:5px 0 0;
  color:#91786c;
  font-size:9px;
}

@media(max-width:1050px){
  .timeline-highlights{grid-template-columns:1fr 1fr}
  .timeline-gentle-stats{grid-column:1/-1}
  .gentle-stat-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:780px){
  .timeline-redesign{max-width:none}
  .timeline-control-card{padding:14px 12px}
  .timeline-control-top{display:block}
  .timeline-control-top h1{font-size:20px}
  .timeline-year-select{margin-top:10px;justify-content:flex-end}
  .timeline-filter-pills{gap:6px}
  .timeline-filter-pills a{padding:7px 10px}
  .timeline-highlights{grid-template-columns:1fr}
  .timeline-gentle-stats{grid-column:auto}
  .timeline-shell-v2::before{left:55px}
  .timeline-item-v2{grid-template-columns:42px 26px minmax(0,1fr)}
  .timeline-date-col{padding-top:16px}
  .timeline-date-col b{font-size:11px}
  .timeline-node i{top:19px;width:10px;height:10px;margin-left:-5px}
  .timeline-content.has-image{grid-template-columns:88px minmax(0,1fr)!important;gap:9px!important}
  .timeline-thumb{width:88px!important;height:78px!important}
  .timeline-content{padding:10px!important}
  .timeline-content h3{font-size:11px!important}
  .timeline-content p{font-size:8px!important}
  .timeline-empty{margin-left:68px}
}


/* =========================================================
   V1.7.7.8 · DIRECTORY REDESIGN + SMART BACK
========================================================= */
.directory-v2{display:grid;gap:13px}
.directory-toolbar{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(330px,520px);
  align-items:center;
  gap:22px;
  padding:18px 20px;
}
.directory-toolbar h1{
  margin:4px 0 5px;
  color:#702f24;
  font-size:21px;
}
.directory-toolbar p{
  margin:0;
  color:#8a7064;
  font-size:10px;
}
.directory-search-v2{
  position:relative;
  display:flex;
  min-width:0;
}
.directory-search-v2 .directory-search-icon{
  position:absolute;
  left:13px;
  top:50%;
  z-index:2;
  transform:translateY(-50%);
  color:#9d7665;
  font-size:17px;
}
.directory-search-v2 input{
  min-width:0;
  flex:1;
  height:42px;
  padding:0 14px 0 38px;
  border:1px solid #dec8b7;
  border-right:0;
  border-radius:13px 0 0 13px;
  background:#fffdf9;
  color:#51372f;
  outline:0;
}
.directory-search-v2 input:focus{
  border-color:#bd806b;
  box-shadow:0 0 0 3px rgba(157,73,53,.07);
}
.directory-search-v2 button{
  width:72px;
  border:0;
  border-radius:0 13px 13px 0;
  background:#8c3023;
  color:#fff;
  font-weight:700;
  cursor:pointer;
}

.directory-overview{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:9px;
}
.directory-stat-card{
  position:relative;
  min-width:0;
  padding:12px 14px;
  border:1px solid #e5d3c4;
  border-radius:14px;
  background:#fffaf5;
  box-shadow:0 6px 17px rgba(82,47,30,.045);
  transition:.16s ease;
}
.directory-stat-card:hover{
  transform:translateY(-2px);
  border-color:#d7b7a2;
}
.directory-stat-card.active{
  background:#f5e7dc;
  border-color:#d5af98;
}
.directory-stat-card b{
  display:block;
  color:#8a3023;
  font-size:18px;
  line-height:1;
}
.directory-stat-card span{
  display:block;
  margin-top:5px;
  color:#765d52;
  font-size:8px;
}
.directory-stat-card i{
  position:absolute;
  right:9px;
  top:9px;
  padding:3px 6px;
  border-radius:999px;
  background:#a73729;
  color:#fff;
  font-size:7px;
  font-style:normal;
}

.directory-subtools{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.directory-status-filter{
  display:flex;
  gap:5px;
}
.directory-status-filter a{
  padding:7px 10px;
  border:1px solid #e2d0c1;
  border-radius:999px;
  background:#fffaf5;
  color:#76584c;
  font-size:8px;
}
.directory-status-filter a.active{
  background:#8c3023;
  color:#fff;
  border-color:#8c3023;
}
.directory-search-note{
  display:flex!important;
  align-items:center;
  gap:6px;
  padding:9px 12px!important;
  border:1px solid #e6d4c5;
  border-radius:12px;
  background:#fbf2e9!important;
  color:#7d6257!important;
  font-size:9px!important;
}
.directory-search-note a{
  margin-left:auto;
  color:#96392a;
  font-weight:700;
}

.directory-grid-v2{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:11px;
}
.person-card-v2{
  position:relative;
  overflow:hidden;
  border:1px solid #e2cfc0!important;
  border-radius:17px!important;
  background:#fffaf5!important;
  box-shadow:0 7px 20px rgba(83,48,31,.055)!important;
  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.person-card-v2:hover{
  transform:translateY(-2px);
  border-color:#d5af99!important;
  box-shadow:0 10px 25px rgba(83,48,31,.085)!important;
}
.person-card-profile{
  position:relative;
  display:flex!important;
  align-items:center!important;
  min-height:96px;
  gap:12px!important;
  padding:14px 38px 13px 14px!important;
  border:0!important;
}
.person-card-profile img{
  width:58px!important;
  height:58px!important;
  flex:0 0 58px;
  border-radius:50%!important;
  object-fit:cover;
  border:2px solid #ecd9c8;
}
.person-card-copy{min-width:0;flex:1}
.person-card-name{
  display:flex;
  align-items:center;
  gap:6px;
  min-width:0;
}
.person-card-name h3{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  margin:0!important;
  color:#4f3027!important;
  font-size:11px!important;
}
.person-card-copy p{
  margin:4px 0 0!important;
  color:#90776b!important;
  font-size:8px!important;
}
.person-self-badge,.person-family-badge{
  display:inline-flex;
  width:max-content;
  margin-top:6px;
  padding:3px 7px;
  border-radius:999px;
  background:#f4e6db;
  color:#8b5142;
  font-size:7px;
}
.person-self-badge{margin:0;background:#8c3023;color:#fff}
.person-family-badge.same{background:#edf1e5;color:#65724a}
.person-card-open{
  position:absolute;
  right:14px;
  top:50%;
  transform:translateY(-50%);
  color:#a37968;
  font-size:22px;
  transition:transform .16s ease;
}
.person-card-profile:hover .person-card-open{
  transform:translate(2px,-50%);
}

.person-actions-v2{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0!important;
  padding:0!important;
  border-top:1px solid #eee0d5;
}
.person-actions-v2>a,.person-actions-v2>button{
  min-width:0;
  min-height:43px;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:5px!important;
  padding:6px 5px!important;
  border:0!important;
  border-right:1px solid #eee0d5!important;
  border-radius:0!important;
  background:transparent!important;
  color:#6d4b3f!important;
  font-size:8px!important;
  line-height:1.15!important;
  cursor:pointer;
}
.person-actions-v2>*:last-child{border-right:0!important}
.person-actions-v2>a:hover,.person-actions-v2>button:hover{
  background:#f7ebe1!important;
  color:#873328!important;
}
.person-actions-v2 .follow-btn.active{
  color:#8e3427!important;
  background:#f7e8df!important;
}
.person-actions-v2 b{font-size:8px;font-weight:600}
.person-actions-note{
  display:block!important;
  padding:9px 12px!important;
  color:#a1877a;
  text-align:center;
  font-size:8px;
}
.directory-empty{
  padding:34px!important;
  text-align:center;
}
.directory-empty>span{font-size:25px;color:#a67b69}
.directory-empty h3{margin:6px 0 3px}
.directory-empty p{margin:0;color:#92796d;font-size:9px}

.directory-help-card{
  display:flex;
  align-items:center;
  gap:12px;
  padding:13px 15px;
  background:linear-gradient(120deg,#fffaf5,#f8ebdf)!important;
}
.directory-help-icon{
  width:38px;height:38px;display:grid;place-items:center;flex:0 0 38px;
  border-radius:12px;background:#ead5c2;color:#8b3125;font-size:18px;
}
.directory-help-card b{color:#62362c;font-size:10px}
.directory-help-card p{margin:3px 0 0;color:#8d7468;font-size:8px;line-height:1.45}

/* Smart back: không dùng ký tự mũi tên thô */
.history-back-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-width:36px;
  height:36px;
  padding:0 11px;
  border:1px solid #e1cdbd;
  border-radius:12px;
  background:rgba(255,250,245,.92);
  color:#77493a;
  box-shadow:0 5px 15px rgba(74,43,30,.07);
  cursor:pointer;
  transition:.16s ease;
}
.history-back-btn:hover{
  transform:translateX(-2px);
  background:#f7e9de;
  color:#8d3024;
}
.history-back-btn svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.member-back{
  flex:0 0 36px;
  padding:0!important;
}
.post-history-back{
  margin-bottom:12px;
}
.post-history-back span{font-size:9px;font-weight:700}

.member-head-actions{
  margin-left:auto;
  display:flex;
  gap:7px;
  align-items:center;
}
.member-timeline-link,.member-message{
  display:inline-flex!important;
  align-items:center;
  gap:5px;
  min-height:34px;
  padding:7px 10px!important;
  border:1px solid #e0ccbc;
  border-radius:10px!important;
  background:#fff8f0!important;
  color:#743e31!important;
  font-size:8px!important;
}
.member-timeline-link:hover,.member-message:hover{
  background:#f4e4d8!important;
}

@media(max-width:1080px){
  .directory-grid-v2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .directory-overview{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:780px){
  .directory-toolbar{grid-template-columns:1fr;padding:13px}
  .directory-toolbar h1{font-size:18px}
  .directory-overview{
    display:flex;
    overflow-x:auto;
    gap:7px;
    padding-bottom:2px;
  }
  .directory-stat-card{
    min-width:128px;
    flex:0 0 128px;
  }
  .directory-subtools{
    display:block;
  }
  .directory-tabs{
    overflow-x:auto;
    margin-bottom:8px;
  }
  .directory-status-filter{
    overflow-x:auto;
  }
  .directory-grid-v2{grid-template-columns:1fr}
  .person-card-profile{min-height:86px}
  .person-card-profile img{width:52px!important;height:52px!important;flex-basis:52px}
  .member-head-actions{
    width:100%;
    margin-left:0;
    margin-top:8px;
  }
}


/* =========================================================
   V1.7.7.9 · DIRECTORY + MEMBER PROFILE UI BALANCE
   Mục tiêu: bỏ card cao nhưng chữ/nút tí hon; tăng font/action,
   giảm khoảng trắng và đồng bộ tỷ lệ toàn trang.
========================================================= */

/* ---- Danh bạ: card thấp hơn, nội dung lớn hơn ---- */
.directory-v2{
  --dir-text:11px;
  --dir-small:9px;
}
.directory-toolbar{
  padding:20px 22px!important;
}
.directory-toolbar h1{
  font-size:24px!important;
  line-height:1.2!important;
}
.directory-toolbar p{
  margin-top:6px!important;
  font-size:11px!important;
  line-height:1.45!important;
}
.directory-search-v2 input{
  height:46px!important;
  font-size:11px!important;
}
.directory-search-v2 button{
  width:78px!important;
  font-size:11px!important;
}
.directory-stat-card{
  padding:14px 16px!important;
}
.directory-stat-card b{
  font-size:21px!important;
}
.directory-stat-card span{
  margin-top:6px!important;
  font-size:9px!important;
}
.directory-tabs a,
.directory-status-filter a{
  min-height:36px;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:8px 13px!important;
  font-size:10px!important;
  font-weight:600;
}
.directory-tabs a b{
  min-width:17px;height:17px;display:inline-grid;place-items:center;
  margin-left:5px;border-radius:999px;background:#a83c2d;color:#fff;font-size:8px;
}
.directory-search-note{
  padding:10px 13px!important;
  font-size:10px!important;
}

/* Card không còn cao trống */
.directory-grid-v2{
  gap:13px!important;
}
.person-card-v2{
  min-height:0!important;
  display:flex;
  flex-direction:column;
}
.person-card-profile{
  min-height:112px!important;
  padding:17px 43px 15px 17px!important;
  gap:14px!important;
}
.person-card-profile img{
  width:68px!important;
  height:68px!important;
  flex:0 0 68px!important;
  border-width:2px!important;
}
.person-card-name h3{
  font-size:13px!important;
  line-height:1.25!important;
}
.person-card-copy p{
  margin-top:5px!important;
  font-size:9px!important;
  line-height:1.4!important;
}
.person-self-badge,
.person-family-badge{
  margin-top:7px!important;
  padding:4px 8px!important;
  font-size:8px!important;
}
.person-self-badge{
  margin-top:0!important;
}
.person-card-open{
  right:16px!important;
  font-size:25px!important;
}

/* Action bar rõ ràng, cao vừa đủ, icon + chữ đọc được */
.person-actions-v2{
  margin-top:auto!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  background:#fff8f1;
}
.person-actions-v2>a,
.person-actions-v2>button{
  min-height:52px!important;
  gap:7px!important;
  padding:8px 7px!important;
  font-size:10px!important;
}
.person-actions-v2>a>span,
.person-actions-v2>button>span{
  font-size:14px!important;
  line-height:1!important;
}
.person-actions-v2 b{
  font-size:10px!important;
  font-weight:650!important;
  white-space:nowrap;
}
.person-actions-v2>a:hover,
.person-actions-v2>button:hover{
  background:#f3e1d4!important;
}
.person-actions-v2 .follow-btn.active{
  background:#f2ded4!important;
  color:#913126!important;
}
.person-actions-note{
  min-height:44px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:10px 12px!important;
  font-size:9px!important;
  background:#fdf8f2!important;
}
.directory-help-card b{
  font-size:11px!important;
}
.directory-help-card p{
  font-size:9px!important;
}

/* ---- Hồ sơ thành viên: đầu trang và tab to, mềm hơn ---- */
.member-profile-page{
  max-width:1040px!important;
}
.member-profile-head{
  grid-template-columns:42px 102px minmax(0,1fr) auto!important;
  gap:18px!important;
  padding:22px 24px!important;
  border-radius:22px!important;
  box-shadow:0 9px 28px rgba(86,49,31,.055);
}
.member-profile-head>img{
  width:102px!important;
  height:102px!important;
}
.member-profile-head h1{
  font-family:inherit!important;
  font-size:28px!important;
  line-height:1.2!important;
  color:#653125!important;
}
.member-profile-head p{
  font-size:11px!important;
  line-height:1.45!important;
}
.member-head-actions{
  gap:9px!important;
}
.member-timeline-link,
.member-message{
  min-height:40px!important;
  padding:9px 13px!important;
  font-size:10px!important;
  font-weight:600!important;
}
.member-tabs{
  margin:12px 0!important;
  padding:6px!important;
  border-radius:14px!important;
}
.member-tabs a{
  min-height:42px;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:9px 12px!important;
  font-size:11px!important;
  font-weight:600;
}
.member-profile-card{
  padding:20px!important;
}

/* Thông tin và Quan hệ cũng tăng chữ vừa phải */
.member-info-grid dt{
  font-size:10px!important;
  font-weight:600;
}
.member-info-grid dd{
  font-size:12px!important;
  line-height:1.45!important;
}
.relation-row{
  grid-template-columns:135px minmax(0,1fr)!important;
  padding:14px 0!important;
}
.relation-row>b{
  font-size:11px!important;
}
.relation-row a{
  gap:8px!important;
  padding:8px 10px!important;
  font-size:10px!important;
}
.relation-row img{
  width:36px!important;
  height:36px!important;
}

/* ---- Kỷ niệm/Sự kiện trong hồ sơ: làm lại hoàn toàn ---- */
.member-memory-panel{
  padding:0!important;
  overflow:hidden;
}
.member-memory-panel-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  padding:18px 20px 15px;
  border-bottom:1px solid #eadbce;
  background:linear-gradient(110deg,#fffaf5,#f9ecdf);
}
.member-memory-panel-head h2{
  margin:4px 0 0;
  color:#653125;
  font-size:18px;
}
.member-memory-open-timeline{
  flex:0 0 auto;
  padding:8px 11px;
  border:1px solid #dfc7b6;
  border-radius:10px;
  background:#fff9f2;
  color:#853629;
  font-size:9px;
  font-weight:700;
}
.member-memory-open-timeline:hover{
  background:#f4e2d5;
}
.member-memory-list-v2{
  padding:7px 16px 14px;
}
.member-memory-item{
  position:relative;
  display:grid!important;
  grid-template-columns:112px minmax(0,1fr) 24px!important;
  gap:14px!important;
  align-items:center;
  min-height:112px;
  padding:13px 8px!important;
  border-bottom:1px solid #eaded3!important;
  color:#53372e!important;
  transition:background .16s ease,transform .16s ease;
}
.member-memory-item:last-child{
  border-bottom:0!important;
}
.member-memory-item:hover{
  background:#fbf2ea;
  transform:translateX(2px);
}
.member-memory-thumb{
  width:112px;
  height:86px;
  border-radius:12px;
  overflow:hidden;
  background:#f0e2d5;
}
.member-memory-thumb img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  border-radius:0!important;
}
.member-memory-placeholder{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  background:linear-gradient(145deg,#f1ddca,#fbf2e9);
  color:#9a5d48;
  font-size:26px;
}
.member-memory-copy{
  min-width:0;
}
.member-memory-meta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
  margin-bottom:6px;
  color:#9a7b6e;
  font-size:8px;
}
.member-memory-type{
  display:inline-flex;
  padding:4px 7px;
  border-radius:999px;
  background:#efe2d7;
  color:#825043;
  font-weight:700;
}
.member-memory-type.type-event{background:#f1dfd4;color:#983326}
.member-memory-type.type-photo{background:#e7eee3;color:#5f7352}
.member-memory-type.type-opinion{background:#ede5f0;color:#715c7e}
.member-memory-copy h3{
  margin:0 0 5px!important;
  color:#4f3027!important;
  font-size:14px!important;
  line-height:1.3!important;
}
.member-memory-copy p{
  margin:0!important;
  color:#846b60!important;
  font-size:10px!important;
  line-height:1.55!important;
}
.member-memory-chevron{
  color:#a27867;
  font-size:24px;
}
.member-event-status{
  padding:3px 6px;
  border-radius:999px;
  font-size:7px;
}
.member-event-status.live{
  background:#f8deda;
  color:#a52e25;
  animation:eventPulseLive 1.25s ease-out infinite;
}
.member-event-status.soon{
  background:#f4ead7;
  color:#9e681f;
}
.member-memory-empty{
  min-height:200px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:28px;
  text-align:center;
}
.member-memory-empty>span{
  font-size:28px;
  color:#ae836f;
}
.member-memory-empty>b{
  margin-top:6px;
  color:#67372d;
  font-size:13px;
}
.member-memory-empty p{
  max-width:420px;
  margin:5px 0 0;
  color:#947a6e;
  font-size:9px;
  line-height:1.5;
}

@media(max-width:900px){
  .directory-grid-v2{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .person-card-profile{
    min-height:108px!important;
  }
}
@media(max-width:780px){
  .directory-toolbar h1{font-size:20px!important}
  .directory-toolbar p{font-size:10px!important}
  .directory-search-v2 input,.directory-search-v2 button{font-size:10px!important}
  .directory-grid-v2{grid-template-columns:1fr!important}
  .person-card-profile{
    min-height:96px!important;
    padding:13px 38px 12px 13px!important;
  }
  .person-card-profile img{
    width:58px!important;
    height:58px!important;
    flex-basis:58px!important;
  }
  .person-card-name h3{font-size:12px!important}
  .person-actions-v2>a,.person-actions-v2>button{
    min-height:48px!important;
    font-size:9px!important;
  }
  .person-actions-v2 b{font-size:9px!important}

  .member-profile-head{
    grid-template-columns:36px 74px minmax(0,1fr)!important;
    gap:10px!important;
    padding:14px!important;
  }
  .member-profile-head>img{
    width:74px!important;
    height:74px!important;
  }
  .member-profile-head h1{font-size:20px!important}
  .member-profile-head p{font-size:9px!important}
  .member-head-actions{
    grid-column:2/-1;
    width:100%;
    margin-top:2px!important;
  }
  .member-timeline-link,.member-message{
    flex:1;
    justify-content:center;
    min-height:38px!important;
    font-size:9px!important;
  }
  .member-tabs a{
    min-height:38px;
    font-size:9px!important;
    padding:7px 8px!important;
  }
  .member-profile-card{padding:13px!important}
  .member-memory-panel{padding:0!important}
  .member-memory-panel-head{
    align-items:flex-start;
    padding:14px;
  }
  .member-memory-panel-head h2{font-size:15px}
  .member-memory-open-timeline{font-size:8px}
  .member-memory-list-v2{padding:5px 9px 10px}
  .member-memory-item{
    grid-template-columns:82px minmax(0,1fr) 16px!important;
    gap:9px!important;
    min-height:96px;
    padding:10px 5px!important;
  }
  .member-memory-thumb{
    width:82px;height:68px;
  }
  .member-memory-copy h3{font-size:11px!important}
  .member-memory-copy p{
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
    font-size:8px!important;
  }
}


/* =========================================================
   V1.7.8.0 · WALL LAYOUT / EVENT NOTICE / FOOTER / COMPOSER
========================================================= */

/* Tất cả scrollbar đều ẩn nhưng vẫn cuộn được */
html,body,*{
  scrollbar-width:none!important;
  -ms-overflow-style:none!important;
}
*::-webkit-scrollbar{
  width:0!important;
  height:0!important;
  display:none!important;
}

/* Hiệu ứng chỉ chạy phần nội dung; sidebar desktop không nhúc nhích */
.ui-transition-target{will-change:transform,opacity}
.ui-transition-target.ui-enter-left_to_right{animation:enterLTR .28s ease-out both}
.ui-transition-target.ui-enter-right_to_left{animation:enterRTL .28s ease-out both}
.ui-transition-target.ui-enter-top_to_bottom{animation:enterTTB .28s ease-out both}
.ui-transition-target.ui-enter-bottom_to_top{animation:enterBTT .28s ease-out both}
.ui-transition-target.ui-leave-left_to_right{animation:leaveLTR .18s ease-in both}
.ui-transition-target.ui-leave-right_to_left{animation:leaveRTL .18s ease-in both}
.ui-transition-target.ui-leave-top_to_bottom{animation:leaveTTB .18s ease-in both}
.ui-transition-target.ui-leave-bottom_to_top{animation:leaveBTT .18s ease-in both}
/* vô hiệu selector cũ lên app-shell */
body[class*="ui-enter-"] .app-shell,
body[class*="ui-leave-"] .app-shell{animation:none!important}

/* Desktop: menu trái, feed giữa, rail phải cuộn độc lập */
@media(min-width:1151px){
  .family-desktop-sidebar{
    position:sticky!important;
    top:122px!important;
    max-height:calc(100dvh - 140px);
    overflow-y:auto;
    overscroll-behavior:contain;
    align-self:start;
  }
  .family-desktop-content .family-feed-layout{
    height:calc(100dvh - 140px);
    min-height:620px;
    max-height:920px;
    overflow:hidden!important;
    align-items:stretch!important;
  }
  .family-desktop-content .family-feed-layout>.feed-column,
  .family-desktop-content .family-feed-layout>.right-rail{
    position:static!important;
    top:auto!important;
    max-height:100%;
    overflow-y:auto!important;
    overscroll-behavior:contain;
    padding-bottom:24px;
  }
  .family-desktop-content .family-feed-layout>.right-rail{
    align-content:start;
  }
}

/* Sidebar: Ngày này năm xưa */
.family-sidebar-anniversary{
  padding:13px!important;
  text-align:left!important;
}
.sidebar-anniversary-head{
  display:flex;
  gap:9px;
  align-items:center;
  margin-bottom:9px;
}
.sidebar-anniversary-head>span{
  width:32px;height:32px;display:grid;place-items:center;
  flex:0 0 32px;border-radius:10px;background:#f2ddcb;color:#8c3426;
  font-size:17px!important;
}
.sidebar-anniversary-head b{
  margin:0!important;
  font-size:11px!important;
}
.sidebar-anniversary-head small{
  display:block;margin-top:2px;color:#9b7e70;font-size:7px;
}
.sidebar-anniversary-list{display:grid;gap:5px}
.sidebar-anniversary-list>a{
  display:grid;grid-template-columns:42px minmax(0,1fr) 10px;gap:8px;align-items:center;
  padding:6px;border-radius:10px;background:#fff8f1;
}
.sidebar-anniversary-list>a:hover{background:#f3e5d9}
.sidebar-anniversary-list img{
  width:42px;height:36px;object-fit:cover;border-radius:7px;
}
.sidebar-anniversary-list span{min-width:0}
.sidebar-anniversary-list b{
  display:block!important;margin:0!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  color:#5e392f!important;font-size:8px!important;
}
.sidebar-anniversary-list small{
  display:block;margin-top:2px;color:#a08072;font-size:7px;
}
.sidebar-anniversary-list i{font-style:normal;color:#a27563}
.family-sidebar-anniversary>p{
  margin:0!important;font-size:8px!important;line-height:1.5!important;text-align:left!important;
}

/* Cột phải: Thông báo sự kiện */
.family-event-notice{padding:14px!important}
.event-notice-head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:10px;
  padding-bottom:10px;border-bottom:1px solid #eadbd0;
}
.event-notice-head h3{margin:3px 0 0!important;font-size:15px!important}
.event-notice-head>span{font-size:9px;color:#8a6659}
.event-mini-calendar{
  display:grid;grid-template-columns:repeat(7,1fr);gap:4px;padding:10px 0;
}
.event-mini-calendar>span{
  position:relative;min-width:0;padding:6px 2px 8px;border:1px solid #ead9cb;border-radius:9px;
  text-align:center;background:#fffaf5;
}
.event-mini-calendar small,.event-mini-calendar b{display:block}
.event-mini-calendar small{font-size:6px;color:#9b7c6d}
.event-mini-calendar b{margin-top:2px;font-size:9px;color:#68453a}
.event-mini-calendar .today{background:#8d3023;border-color:#8d3023}
.event-mini-calendar .today small,.event-mini-calendar .today b{color:#fff}
.event-mini-calendar i{
  position:absolute;left:50%;bottom:3px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:#c18337;
}
.event-mini-calendar .today i{background:#ffd9a5}
.event-notice-list{display:grid;gap:3px;margin-top:3px}
.event-notice-item{
  display:grid;grid-template-columns:34px minmax(0,1fr) 38px;gap:8px;align-items:center;
  padding:7px 4px;border-radius:10px;
}
.event-notice-item:hover{background:#f7ebe1}
.event-notice-date{
  width:34px;height:38px;display:grid;place-items:center;align-content:center;
  border:1px solid #e1c8b5;border-radius:9px;background:#fff9f2;
}
.event-notice-date b{font-size:11px;color:#8c3024;line-height:1}
.event-notice-date small{font-size:7px;color:#9b7869}
.event-notice-copy{min-width:0}
.event-notice-copy>b{
  display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#57382f;font-size:8px;
}
.event-notice-copy small{display:block;margin-top:3px;color:#987b6e;font-size:7px}
.event-notice-item img{width:36px;height:36px;object-fit:cover;border-radius:8px}
.event-notice-item.live{background:#fae7e3}
.event-notice-item.live .event-notice-date{border-color:#c45f52}
.event-notice-item.live .event-notice-copy small{color:#a52f25;font-weight:700}
.event-notice-item.soon .event-notice-copy small{color:#a56d27;font-weight:600}

/* Like bình luận: badge nhỏ gọn nằm sát bubble */
.comment-bubble{position:relative!important}
.comment-like-pill.compact{
  position:absolute!important;
  right:8px!important;
  bottom:-9px!important;
  z-index:3;
  display:inline-flex!important;
  align-items:center!important;
  gap:3px!important;
  min-width:31px!important;
  height:19px!important;
  padding:2px 6px 2px 3px!important;
  border:1px solid #e3d7cf!important;
  border-radius:999px!important;
  background:#fffdf9!important;
  box-shadow:0 2px 7px rgba(74,45,32,.10)!important;
  color:#6e594f!important;
}
.comment-like-thumb{
  width:15px;height:15px;display:grid;place-items:center;border-radius:50%;
  background:#557fa9;color:#fff;
}
.comment-like-thumb svg{
  width:9px!important;height:9px!important;fill:currentColor!important;stroke:currentColor!important;
}
.comment-like-pill.compact b{font-size:7px!important;line-height:1!important}
.comment-tools{padding-top:7px!important}

/* Story format ngoài bài */
.story-formatted p{margin:.28em 0!important}
.story-formatted h4{
  margin:10px 0 5px!important;color:#5e2d24!important;font-size:1.08em!important;
}
.story-formatted blockquote{
  margin:9px 0!important;padding:8px 11px!important;border-left:3px solid #b27862!important;
  border-radius:0 8px 8px 0;background:#f7ece3;color:#74594f;font-style:italic;
}
.story-formatted ul,.story-formatted ol{margin:7px 0 7px 22px;padding:0}
.story-formatted li{margin:3px 0}
.story-spacer{height:7px}

/* Composer 2 phần · Câu chuyện / Thời gian */
.composer-progress-note{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:9px 11px;margin:3px 0 10px;border-radius:11px;background:#faf0e7;color:#755044;
}
.composer-progress-note b{font-size:9px}
.composer-progress-note span{font-size:8px;color:#9a796b}
.composer-step-tabs{
  display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:6px!important;
  padding:6px!important;background:#f4e6da!important;
}
.composer-step-tabs button{
  position:relative;display:grid!important;grid-template-columns:26px minmax(0,1fr) 16px!important;
  align-items:center!important;gap:6px!important;text-align:left!important;
  min-height:50px!important;padding:7px!important;border-radius:10px!important;
}
.composer-step-tabs button>i{
  width:25px;height:25px;display:grid;place-items:center;border-radius:50%;
  background:#e9d7c7;color:#7b4638;font-style:normal;font-size:9px;font-weight:700;
}
.composer-step-tabs button>span{min-width:0}
.composer-step-tabs button>span b{display:block;font-size:9px;white-space:nowrap}
.composer-step-tabs button>span small{
  display:block;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:7px;color:#9b7c6f;
}
.composer-step-tabs button>em{font-style:normal;font-size:11px;color:#b3978a;text-align:center}
.composer-step-tabs button.active{background:#933321!important;color:#fff!important}
.composer-step-tabs button.active>i{background:#fff0e5;color:#8a3024}
.composer-step-tabs button.active small{color:#f5dcd0}
.composer-step-tabs button.active>em{color:#fff}
.composer-step-tabs button.step-complete:not(.active)>em{color:#4e8254;font-weight:800}
.composer-step-tabs button.step-needs-attention:not(.active)>em{color:#b14a35;font-weight:800}

/* Word-like toolbar an toàn bằng markup */
.story-editor{
  overflow:hidden;border:1px solid #dfc9b7;border-radius:13px;background:#fffdfa;
}
.story-editor-toolbar{
  display:flex;align-items:center;gap:3px;padding:6px 8px;border-bottom:1px solid #ead9cb;background:#f8eee5;
}
.story-editor-toolbar>span{width:1px;height:22px;margin:0 4px;background:#dbc5b4}
.story-editor-toolbar button{
  width:30px;height:29px;display:grid;place-items:center;padding:0;border:1px solid transparent;border-radius:7px;
  background:transparent;color:#66453a;cursor:pointer;font-size:11px;
}
.story-editor-toolbar button:hover{border-color:#d9bda9;background:#fffaf5;color:#8f3023}
.story-editor textarea{
  width:100%!important;border:0!important;border-radius:0!important;box-shadow:none!important;
  padding:12px 13px!important;line-height:1.65!important;resize:vertical;
}
.story-editor-help{
  display:block;padding:7px 11px;border-top:1px solid #f0e3d8;background:#fff9f3;color:#9a7d70;font-size:7px;
}

/* Footer hai tầng */
.family-footer-v1780{
  margin-top:30px!important;background:#f6eee5!important;border-top:1px solid #ead7c7!important;
}
.family-footer-visual{
  width:min(1450px,calc(100% - 36px));min-height:178px;margin:0 auto;
  border:1px solid #e1cdbb;border-radius:18px 18px 0 0;overflow:hidden;
  background:
    linear-gradient(90deg,rgba(255,249,241,.98) 0%,rgba(255,249,241,.94) 46%,rgba(255,249,241,.30) 73%,rgba(255,249,241,.12) 100%),
    var(--footer-family-image) right center/auto 100% no-repeat,
    #fff8ef;
}
.family-footer-visual-overlay{
  min-height:178px;padding:20px 24px;display:grid;grid-template-columns:260px minmax(0,1fr);gap:26px;align-items:center;
}
.family-footer-visual-title span{
  display:block;color:#9a4b35;font-size:8px;font-weight:800;letter-spacing:.15em;
}
.family-footer-visual-title b{
  display:block;margin-top:7px;color:#6b3025;font-size:17px;line-height:1.35;
}
.family-footer-values{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;
}
.family-footer-values>div{
  display:flex;gap:8px;align-items:flex-start;min-width:0;padding:10px;border-radius:12px;
  background:rgba(255,250,244,.76);backdrop-filter:blur(2px);
}
.family-footer-values i{
  width:29px;height:29px;display:grid;place-items:center;flex:0 0 29px;border:1px solid #d7b8a3;
  border-radius:9px;color:#8c3427;font-style:normal;font-size:14px;
}
.family-footer-values b{display:block;color:#67392f;font-size:8px}
.family-footer-values small{display:block;margin-top:3px;color:#8e7468;font-size:7px;line-height:1.4}
.family-footer-info{
  width:min(1450px,calc(100% - 36px));margin:auto;padding:18px 0;
  display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.9fr) 160px;gap:25px;align-items:center;
}
.family-footer-about{display:flex;gap:12px;align-items:center}
.family-footer-about img{width:64px;height:50px;object-fit:contain}
.family-footer-about b{display:block;color:#702f24;font-size:14px}
.family-footer-about p{max-width:600px;margin:4px 0 0;color:#876e63;font-size:8px;line-height:1.5}
.family-footer-v1780 .family-footer-links{
  display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:8px!important;
}
.family-footer-v1780 .family-footer-links a{
  padding:5px 0;font-size:8px!important;color:#724b3e!important;
}
.family-footer-version{
  padding:10px 12px;border-left:2px solid #b87a63;
}
.family-footer-version small,.family-footer-version b,.family-footer-version span{display:block}
.family-footer-version small{color:#95796d;font-size:7px}
.family-footer-version b{margin-top:3px;color:#8b3024;font-size:15px}
.family-footer-version span{margin-top:2px;color:#aa8b7d;font-size:7px}
.family-footer-v1780 .family-footer-bottom{
  background:#efe1d5;padding-top:10px!important;padding-bottom:10px!important;
}

@media(max-width:1150px){
  .family-footer-values{grid-template-columns:repeat(2,1fr)}
  .family-footer-visual-overlay{grid-template-columns:220px 1fr}
}
@media(max-width:820px){
  .composer-step-tabs{
    display:flex!important;overflow-x:auto!important;
  }
  .composer-step-tabs button{flex:0 0 155px}
  .composer-progress-note{display:block}
  .composer-progress-note span{display:block;margin-top:3px}
  .family-footer-visual{width:calc(100% - 20px);min-height:auto;border-radius:14px}
  .family-footer-visual-overlay{display:block;min-height:0;padding:16px}
  .family-footer-visual-title{margin-bottom:12px}
  .family-footer-values{grid-template-columns:1fr 1fr}
  .family-footer-info{width:calc(100% - 28px);grid-template-columns:1fr;gap:13px}
  .family-footer-version{border-left:0;border-top:1px solid #dbc7b8;padding-left:0}
}
@media(max-width:520px){
  .family-footer-values{grid-template-columns:1fr}
}


/* =========================================================
   V1.7.8.1 · ANNIVERSARY PHOTO / ALBUM / ANCESTORS / MESSENGER
========================================================= */

/* Ngày này năm xưa đúng kiểu ảnh + lịch góc trái */
.anniversary-photo-card{padding:12px!important}
.anniversary-photo-head{margin-bottom:8px}
.anniversary-photo-head>span{display:block;color:#763428;font-size:9px;font-weight:800;letter-spacing:.04em}
.anniversary-photo-head>small{display:block;margin-top:2px;color:#9b7e70;font-size:7px}
.anniversary-photo-feature{display:block!important;padding:0!important;border-radius:11px!important;overflow:hidden;background:#fffaf4!important}
.anniversary-photo-wrap{position:relative;height:142px;overflow:hidden;background:#e9ddcf}
.anniversary-photo-wrap>img{width:100%!important;height:100%!important;object-fit:cover!important;border-radius:0!important;display:block}
.anniversary-calendar{
  position:absolute;left:8px;top:8px;width:49px;height:55px;display:flex;flex-direction:column;align-items:center;justify-content:center;
  border-radius:8px;background:linear-gradient(#a93a29 0 18px,#fff9f0 18px);box-shadow:0 3px 10px rgba(46,26,17,.18);
}
.anniversary-calendar b{margin-top:11px!important;color:#7d2d22!important;font-size:17px!important;line-height:1!important}
.anniversary-calendar small{margin-top:4px!important;color:#7c5b4e!important;font-size:6px!important;font-weight:800!important}
.anniversary-photo-caption{padding:9px 10px 10px}
.anniversary-photo-caption>small{display:block;color:#a17e70;font-size:7px}
.anniversary-photo-caption>b{display:block!important;margin:3px 0 0!important;color:#56362d!important;font-size:10px!important;line-height:1.35!important}
.anniversary-photo-caption>span{display:block;margin-top:6px;color:#913326;font-size:7px;font-weight:700}
.anniversary-photo-empty{padding:14px 7px;text-align:center}
.anniversary-photo-empty>span{font-size:25px;color:#a87b68}
.anniversary-photo-empty p{margin:5px 0 3px!important;text-align:center!important;font-size:9px!important}
.anniversary-photo-empty small{font-size:7px;color:#a08476}

/* Album như ứng dụng thư viện ảnh */
.album-app-v2{max-width:1180px}
.album-app-head{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 20px;margin-bottom:12px}
.album-app-head h1{margin:4px 0 5px;color:#6f3025;font-size:23px}
.album-app-head p{margin:0;color:#8c7165;font-size:10px}
.album-counter{width:86px;height:66px;display:grid;place-items:center;align-content:center;border-radius:16px;background:#f3e4d7}
.album-counter b{color:#8e3024;font-size:22px;line-height:1}.album-counter span{margin-top:5px;color:#8e7064;font-size:7px}
.album-old-memory{padding:16px;margin-bottom:12px;background:linear-gradient(110deg,#fff9f2,#f6e5d6)!important}
.album-old-memory-title{display:flex;align-items:center;gap:10px;margin-bottom:11px}
.old-memory-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#a13a2a;color:#fff;font-size:17px}
.album-old-memory-title h2{margin:3px 0;color:#64342a;font-size:15px}.album-old-memory-title p{margin:2px 0 0;color:#90766a;font-size:8px}
.album-old-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.album-old-item{display:grid;grid-template-columns:78px minmax(0,1fr);gap:9px;align-items:center;padding:7px;border:1px solid #e3cfbe;border-radius:12px;background:#fffaf5;text-align:left;cursor:pointer}
.album-old-item img{width:78px;height:65px;object-fit:cover;border-radius:9px}.album-old-item span{min-width:0}.album-old-item b{display:block;color:#79362b;font-size:9px}.album-old-item small{display:block;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#8d7367;font-size:7px}
.album-browser{padding:14px}
.album-filter-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #eadacd;padding-bottom:11px}
.album-tabs-scroll{flex-wrap:nowrap!important;overflow-x:auto;margin:0!important}
.album-tabs-scroll a{white-space:nowrap;font-size:9px!important;padding:7px 10px!important}
.album-time-filter{display:flex;gap:6px;flex:0 0 auto}.album-time-filter select{width:auto;min-width:105px;margin:0;padding:7px 25px 7px 9px;font-size:8px}
.album-result-head{display:flex;justify-content:space-between;align-items:center;padding:11px 2px}
.album-result-head b{color:#63382e;font-size:11px}.album-result-head span{margin-left:6px;color:#9b7f73;font-size:8px}.album-result-head a{font-size:8px;color:#95392b}
.photo-library-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}
.photo-library-item{margin:0;overflow:hidden;border:1px solid #ead8ca;border-radius:12px;background:#fffaf5}
.photo-library-open{position:relative;width:100%;aspect-ratio:1/1;border:0;padding:0;background:#eadfd3;cursor:zoom-in;overflow:hidden}
.photo-library-open img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .25s ease}
.photo-library-open:hover img{transform:scale(1.045)}
.photo-library-zoom{position:absolute;right:7px;bottom:7px;width:27px;height:27px;display:grid;place-items:center;border-radius:50%;background:rgba(52,32,24,.62);color:#fff;opacity:0;transition:.2s}
.photo-library-open:hover .photo-library-zoom{opacity:1}
.photo-library-item figcaption{display:grid;grid-template-columns:minmax(0,1fr) 22px;gap:5px;align-items:center;padding:8px}
.photo-library-item figcaption div{min-width:0}.photo-library-item figcaption b,.photo-library-item figcaption small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.photo-library-item figcaption b{font-size:8px;color:#57382f}.photo-library-item figcaption small{margin-top:2px;font-size:6.5px;color:#a08376}.photo-library-item figcaption>a{font-size:19px;color:#a16f5b}
.album-empty{padding:50px;text-align:center}.album-empty>span{font-size:34px;color:#aa816e}.album-empty h3{margin:6px 0}.album-empty p{margin:0;color:#92786c;font-size:9px}
.image-lightbox-caption{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);max-width:70%;padding:7px 11px;border-radius:999px;background:rgba(28,20,17,.65);color:#fff;font-size:9px;text-align:center}

/* Gia tiên Việt hoài cổ */
.ancestors-v2{max-width:1160px}
.ancestor-vietnam-hero{display:grid;grid-template-columns:340px minmax(0,1fr);gap:25px;align-items:center;padding:22px;margin-bottom:13px;border:1px solid #d9b98f;border-radius:20px;background:linear-gradient(135deg,#f5e5c9,#fff8e9 58%,#efe0bd)}
.ancestor-shrine{position:relative;height:220px;display:grid;place-items:center;overflow:hidden;border-radius:17px;background:radial-gradient(circle at 50% 42%,#f7d27b,#87301e 54%,#4a1c13 100%);box-shadow:inset 0 0 40px rgba(42,15,9,.35)}
.shrine-roof{position:absolute;top:4px;color:#e6b34d;font-size:82px;transform:scaleX(1.8)}
.shrine-tablet{position:relative;z-index:2;width:150px;min-height:115px;padding:18px 10px;border:3px double #d8a83d;border-radius:5px;background:linear-gradient(#6b2118,#3e1511);box-shadow:0 10px 25px rgba(26,7,5,.35);text-align:center;color:#f3d18a}
.shrine-tablet small,.shrine-tablet b,.shrine-tablet span{display:block}.shrine-tablet small{font-size:7px;letter-spacing:.25em}.shrine-tablet b{margin-top:8px;font-family:Georgia,serif;font-size:15px}.shrine-tablet span{margin-top:8px;font-size:8px}
.shrine-incense{position:absolute;bottom:14px;z-index:3;display:flex;gap:6px}.shrine-incense i{width:2px;height:48px;background:#d49c48;box-shadow:0 -10px 15px #fff0b0}.shrine-lamps{position:absolute;bottom:22px;left:28px;right:28px;display:flex;justify-content:space-between;color:#ffd576;font-size:22px}
.ancestor-hero-copy h1{margin:5px 0;color:#6b291f;font:700 27px Georgia,serif}.ancestor-hero-copy p{max-width:660px;color:#80675a;font-size:10px;line-height:1.65}
.ancestor-hero-stats{display:flex;gap:8px;margin-top:14px}.ancestor-hero-stats>div{min-width:92px;padding:9px 11px;border:1px solid #dec49e;border-radius:11px;background:rgba(255,250,235,.75)}.ancestor-hero-stats b{display:block;color:#8b3024;font-size:17px}.ancestor-hero-stats span{font-size:7px;color:#8c7062}
.ancestor-incense-reminder{padding:15px;margin-bottom:13px;background:#fff9ed!important}.ancestor-reminder-head{display:flex;gap:10px;align-items:center;margin-bottom:9px}.ancestor-reminder-head>span{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#8d3023;color:#f8d891;font-size:18px}.ancestor-reminder-head h2{margin:3px 0;color:#643329;font-size:15px}
.ancestor-reminder-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.ancestor-reminder-list>a{position:relative;display:grid;grid-template-columns:42px 40px minmax(0,1fr) 12px;gap:6px;align-items:center;padding:7px;border:1px solid #ead7ba;border-radius:11px;background:#fffdf6}.ancestor-reminder-list>a.today{border-color:#b64e3d;background:#fae9df}.ancestor-reminder-date{width:42px;height:44px;display:grid;place-items:center;align-content:center;border-radius:7px;background:#882d22;color:#fff}.ancestor-reminder-date b{font-size:12px}.ancestor-reminder-date small{font-size:5px}.ancestor-reminder-list img{width:38px;height:38px;object-fit:cover;border-radius:50%}.ancestor-reminder-list div{min-width:0}.ancestor-reminder-list div b,.ancestor-reminder-list div small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ancestor-reminder-list div b{font-size:7px;color:#5f392f}.ancestor-reminder-list div small{font-size:6px;color:#977a6d}.ancestor-reminder-list i{font-style:normal;color:#a47b69}
.ancestor-directory{padding:16px;background:linear-gradient(#fffaf0,#fffdf8)!important}.ancestor-directory-tools{display:flex;justify-content:space-between;gap:12px;align-items:center}.ancestor-directory-tools nav{display:flex;gap:5px}.ancestor-directory-tools nav a{padding:7px 11px;border:1px solid #dec8a9;border-radius:999px;color:#704a3c;font-size:8px}.ancestor-directory-tools nav a.active{background:#823025;color:#fff}.ancestor-directory-tools form{display:flex}.ancestor-directory-tools input{width:190px;margin:0;border-radius:9px 0 0 9px;font-size:8px}.ancestor-directory-tools button{border:0;padding:0 13px;border-radius:0 9px 9px 0;background:#873124;color:#fff}
.ancestor-paper-heading{display:flex;justify-content:center;align-items:center;gap:12px;margin:17px 0 11px;color:#a67644}.ancestor-paper-heading h2{margin:2px 0;color:#6e3025;font:700 18px Georgia,serif;text-align:center}.ancestor-paper-heading small{display:block;text-align:center;font-size:7px;color:#a0806c}
.ancestor-tablet-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.ancestor-tablet-card{display:grid;grid-template-columns:76px minmax(0,1fr) 18px;gap:11px;align-items:center;padding:12px;border:1px solid #e1ccb0;border-radius:13px;background:linear-gradient(110deg,#fffdf7,#f7ead6);color:#57352b;transition:.17s}.ancestor-tablet-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(82,47,29,.09)}.ancestor-tablet-frame{position:relative;width:76px;height:82px;padding:5px;border:3px double #a66e36;border-radius:8px;background:#5a2218}.ancestor-tablet-frame img{width:100%;height:100%;object-fit:cover;border-radius:4px;filter:sepia(.15)}.ancestor-tablet-ornament{position:absolute;left:50%;bottom:-8px;transform:translateX(-50%);padding:0 4px;background:#f8ecd8;color:#9a642f}.ancestor-tablet-copy small{display:block;color:#a17c65;font-size:6px}.ancestor-tablet-copy h3{margin:3px 0 4px;color:#612c22;font:700 13px Georgia,serif}.ancestor-tablet-copy p{margin:0;color:#7f685c;font-size:8px}.ancestor-tablet-copy b{display:block;margin-top:4px;color:#9a3e2d;font-size:7px}.ancestor-tablet-card>i{font-style:normal;font-size:20px;color:#a07a64}.ancestor-empty{padding:35px;text-align:center;color:#96786a}
.ancestor-proverb{margin-top:12px;padding:18px;text-align:center;border-top:1px solid #dfc8a8;border-bottom:1px solid #dfc8a8;background:linear-gradient(90deg,transparent,#f5e7d0,transparent)}.ancestor-proverb span{font:italic 16px Georgia,serif;color:#733125}.ancestor-proverb p{margin:5px 0 0;color:#896e61;font-size:8px}

/* Messenger desktop kiểu ứng dụng */
.messenger-app-v2{position:relative;height:calc(100dvh - 150px);min-height:650px;display:grid;grid-template-columns:350px minmax(0,1fr);overflow:hidden;border:1px solid #e1d2c5;border-radius:17px;background:#f4f1ee;box-shadow:0 12px 30px rgba(68,42,31,.08)}
.messenger-list-pane{display:flex;flex-direction:column;min-width:0;background:#fffdfb;border-right:1px solid #ded7d1}.messenger-list-header{display:flex;justify-content:space-between;align-items:center;padding:13px 14px 8px}.messenger-list-header h2{margin:0;color:#503a32;font-size:18px}.messenger-list-header small{font-size:7px;color:#93817a}.messenger-new-group{width:32px;height:32px;border:1px solid #d8cec7;border-radius:9px;background:#fff;color:#624b41;font-size:18px;cursor:pointer}.messenger-search{position:relative;padding:0 10px 9px}.messenger-search span{position:absolute;left:20px;top:8px;color:#86766f}.messenger-search input{height:35px;margin:0;padding-left:34px;border-radius:9px;background:#f2f1ef;border-color:#ece7e3;font-size:9px}
.messenger-list-tabs{position:relative;display:flex;align-items:center;gap:12px;padding:0 10px 8px;border-bottom:1px solid #e6e0db}.messenger-list-tabs>a,.messenger-list-tabs>button{padding:6px 0;border:0;background:none;color:#66554e;font-size:8px}.messenger-list-tabs>a.active{color:#1c63bd;border-bottom:2px solid #1c63bd}.messenger-category-menu{position:absolute;right:8px;top:31px;z-index:15;width:120px;padding:6px;border:1px solid #ddd3cc;border-radius:9px;background:#fff;box-shadow:0 8px 25px rgba(36,29,25,.14)}.messenger-category-menu a{display:block;padding:7px;border-radius:6px;color:#5f4d45;font-size:8px}.messenger-category-menu a:hover{background:#f4efeb}
.messenger-conversation-scroll{flex:1;overflow-y:auto}.messenger-conversation-row{position:relative;border-bottom:1px solid #eee9e5}.messenger-conversation-row.active{background:#e9f2ff}.messenger-conversation-main{display:grid;grid-template-columns:46px minmax(0,1fr) 44px;gap:8px;align-items:center;padding:10px 32px 10px 10px;min-height:65px}.messenger-conversation-main>img,.messenger-group-avatar{width:43px;height:43px;border-radius:50%;object-fit:cover}.messenger-group-avatar{display:grid;place-items:center;background:linear-gradient(135deg,#3587df,#2863c1);color:#fff;font-size:20px}.messenger-conversation-copy{min-width:0}.messenger-conversation-copy b,.messenger-conversation-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.messenger-conversation-copy b{color:#26354d;font-size:9px}.messenger-conversation-copy small{margin-top:4px;color:#6c7583;font-size:8px}.messenger-conversation-meta{text-align:right}.messenger-conversation-meta time{display:block;color:#77808e;font-size:7px}.messenger-conversation-meta i{display:inline-grid;place-items:center;min-width:15px;height:15px;margin-top:5px;padding:0 4px;border-radius:999px;background:#df2c32;color:#fff;font-style:normal;font-size:6px}.messenger-conversation-meta em{display:block;font-style:normal;color:#7e8790;font-size:8px}.conversation-more-btn{position:absolute;right:5px;top:17px;width:27px;height:27px;border:0;border-radius:7px;background:transparent;color:#506075;cursor:pointer}.conversation-more-btn:hover{background:#dbeaff}.conversation-action-menu{position:absolute;right:6px;top:44px;z-index:30;width:185px;padding:7px;border:1px solid #dad6d1;border-radius:9px;background:#fff;box-shadow:0 10px 28px rgba(32,28,25,.16)}.conversation-action-menu>button,.conversation-action-menu .menu-category>button{display:block;width:100%;padding:8px;border:0;border-radius:6px;background:none;text-align:left;color:#36445a;font-size:8px;cursor:pointer}.conversation-action-menu>button:hover,.conversation-action-menu .menu-category>button:hover{background:#f1f5fb}.conversation-action-menu .menu-category{padding:5px 0;border-top:1px solid #eee;border-bottom:1px solid #eee}.conversation-action-menu .menu-category>span{display:block;padding:4px 8px;color:#8b9199;font-size:6px;text-transform:uppercase}.conversation-action-menu hr{border:0;border-top:1px solid #eee}.conversation-action-menu .danger{color:#d33434}.conversation-action-menu .danger-soft{color:#a35b55}
.messenger-chat-pane{position:relative;display:flex;flex-direction:column;min-width:0;background:#eef0f3}.messenger-chat-header{height:64px;display:flex;align-items:center;gap:9px;padding:8px 13px;border-bottom:1px solid #d7dadd;background:#fff}.messenger-chat-header>img,.messenger-chat-group-avatar{width:42px;height:42px;border-radius:50%;object-fit:cover}.messenger-chat-group-avatar{display:grid;place-items:center;background:#2f76d0;color:#fff;font-size:20px}.messenger-chat-title{min-width:0;flex:1}.messenger-chat-title b,.messenger-chat-title small{display:block}.messenger-chat-title b{color:#182c49;font-size:12px}.messenger-chat-title small{margin-top:3px;color:#7b8490;font-size:7px}.messenger-chat-actions{display:flex;gap:5px}.messenger-chat-actions button,.messenger-chat-actions a{width:32px;height:32px;display:grid;place-items:center;border:0;border-radius:8px;background:#fff;color:#264568;font-size:15px}.messenger-chat-actions button:hover,.messenger-chat-actions a:hover{background:#edf3fa}.messenger-chat-subbar{height:33px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;border-bottom:1px solid #d9dce0;background:#fafafa;color:#687588;font-size:7px}.messenger-chat-subbar b{color:#a15b42}
.messenger-chat-body{flex:1;overflow-y:auto;padding:18px 18px 26px;background:#e7e9ed}.message-date-divider{display:flex;justify-content:center;margin:9px 0}.message-date-divider span{padding:4px 13px;border-radius:999px;background:rgba(87,92,99,.36);color:#fff;font-size:7px}.messenger-bubble-row{display:flex;align-items:flex-end;gap:7px;margin:6px 0}.messenger-bubble-row.mine{justify-content:flex-end}.messenger-sender-avatar{width:29px;height:29px;border-radius:50%;object-fit:cover}.messenger-bubble-wrap{max-width:min(68%,650px)}.messenger-sender-name{display:block;margin:0 0 3px 5px;color:#66717e;font-size:6px}.messenger-bubble{position:relative;min-width:65px;padding:8px 10px 15px;border-radius:12px 12px 12px 3px;background:#fff;box-shadow:0 1px 2px rgba(30,30,30,.08)}.mine .messenger-bubble{border-radius:12px 12px 3px 12px;background:#d9f8d4}.messenger-bubble p{margin:0!important;color:#26313f;font-size:9px!important;line-height:1.45}.messenger-time{position:absolute;right:7px;bottom:3px;color:#84909b;font-size:5.5px}.message-media-grid{display:grid;gap:2px;margin:-4px -6px 5px}.message-media-grid.one{grid-template-columns:1fr}.message-media-grid.two{grid-template-columns:1fr 1fr}.message-media-grid.many{grid-template-columns:1fr 1fr}.message-media-grid button{position:relative;border:0;padding:0;overflow:hidden;background:#ddd;cursor:zoom-in}.message-media-grid img{width:100%;height:150px;object-fit:cover;display:block}.message-media-grid.two img,.message-media-grid.many img{height:115px}.message-media-grid button>span{position:absolute;inset:0;display:grid;place-items:center;background:rgba(0,0,0,.4);color:#fff;font-size:18px}
.messenger-compose-v2{min-height:60px;display:grid;grid-template-columns:auto minmax(0,1fr) 42px;gap:7px;align-items:end;padding:8px 11px;border-top:1px solid #d8dce0;background:#fff}.messenger-compose-tools{display:flex;gap:3px}.messenger-compose-tools button,.chat-image-attach{width:31px;height:31px;display:grid;place-items:center;border:0;border-radius:8px;background:#fff;color:#245492;font-size:16px;cursor:pointer}.messenger-compose-v2 textarea{min-height:38px;max-height:110px;margin:0;padding:10px 11px;border-color:#e0e0df;border-radius:9px;background:#fff;font-size:9px;resize:none}.messenger-compose-v2 .chat-send{width:39px;height:39px;border:0;border-radius:9px;background:#2972cd;color:#fff;font-size:17px}.messenger-chat-empty{margin:auto;text-align:center;color:#765f55}.messenger-chat-empty>span{display:block;font-size:50px;color:#9b887f}.messenger-chat-empty h3{margin:12px 0 5px}.messenger-chat-empty p{font-size:9px;color:#907d74}
.messenger-chat-info{position:absolute;right:0;top:64px;bottom:0;z-index:20;width:260px;padding:18px;border-left:1px solid #ddd;background:#fff;box-shadow:-8px 0 24px rgba(30,30,30,.08);overflow-y:auto}.messenger-chat-info>button{float:right;border:0;background:none;font-size:22px}.messenger-info-avatar{width:82px;height:82px;display:grid;place-items:center;margin:20px auto 8px;border-radius:50%;object-fit:cover}.messenger-info-avatar.group{background:#3378cf;color:#fff;font-size:35px}.messenger-chat-info h3,.messenger-chat-info p{text-align:center}.messenger-chat-info h3{margin:5px 0;color:#233750}.messenger-chat-info p{margin:0 0 14px;color:#84909b;font-size:8px}.messenger-chat-info>a{display:block;padding:9px;border-bottom:1px solid #eee;color:#385777;font-size:8px}.messenger-group-members{display:grid;gap:7px;margin-top:12px}.messenger-group-members>div{display:flex;gap:8px;align-items:center}.messenger-group-members img{width:32px;height:32px;border-radius:50%;object-fit:cover}.messenger-group-members span{font-size:8px;color:#4a5869}
.group-chat-dialog{position:relative;width:min(520px,calc(100% - 20px));max-height:86vh;overflow:auto;margin:auto;padding:20px;border-radius:17px;background:#fffaf5}.group-chat-dialog h2{margin:4px 0;color:#65342a}.group-chat-dialog p{color:#8d7468;font-size:9px}.group-member-picker{display:grid;grid-template-columns:1fr 1fr;gap:6px;max-height:310px;overflow-y:auto;margin:10px 0}.group-member-picker label{display:flex;align-items:center;gap:8px;margin:0;padding:7px;border:1px solid #e4d4c7;border-radius:9px}.group-member-picker input{width:auto;margin:0}.group-member-picker img{width:35px;height:35px;border-radius:50%;object-fit:cover}.group-member-picker span{font-size:8px}.small-dialog{position:relative;width:min(430px,calc(100% - 20px));margin:auto;padding:20px;border-radius:17px;background:#fffaf5}.small-dialog h3{margin:0 0 5px}.small-dialog p{font-size:8px;color:#8b7267}

@media(max-width:1050px){
  .photo-library-grid{grid-template-columns:repeat(4,1fr)}
  .album-old-strip{grid-template-columns:repeat(2,1fr)}
  .ancestor-reminder-list{grid-template-columns:repeat(2,1fr)}
  .ancestor-tablet-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:780px){
  .album-app-head{padding:13px}.album-app-head h1{font-size:19px}.album-app-head p{font-size:8px}.album-counter{width:68px;height:55px}.album-old-strip{grid-template-columns:1fr 1fr}.album-old-item{grid-template-columns:56px minmax(0,1fr)}.album-old-item img{width:56px;height:52px}.album-filter-row{display:block}.album-time-filter{margin-top:8px}.photo-library-grid{grid-template-columns:repeat(3,1fr)}
  .ancestor-vietnam-hero{grid-template-columns:1fr;padding:13px}.ancestor-shrine{height:170px}.ancestor-hero-copy h1{font-size:21px}.ancestor-reminder-list{grid-template-columns:1fr}.ancestor-directory-tools{display:block}.ancestor-directory-tools nav{overflow-x:auto}.ancestor-directory-tools form{margin-top:8px}.ancestor-tablet-grid{grid-template-columns:1fr}
  .messenger-app-v2{display:block;height:calc(100dvh - 115px);border-radius:0;border-left:0;border-right:0}.messenger-list-pane{height:100%;border-right:0}.messenger-chat-pane{display:none;height:100%}.messenger-app-v2.mobile-chat-open .messenger-list-pane{display:none}.messenger-app-v2.mobile-chat-open .messenger-chat-pane{display:flex}.messenger-conversation-main{grid-template-columns:46px minmax(0,1fr) 44px}.mobile-chat-back{display:grid!important}.messenger-bubble-wrap{max-width:82%}.messenger-chat-info{width:88%}
}
@media(max-width:520px){
  .photo-library-grid{grid-template-columns:repeat(2,1fr)}
  .album-old-strip{grid-template-columns:1fr}
  .ancestor-hero-stats{gap:4px}.ancestor-hero-stats>div{min-width:0;flex:1}.ancestor-tablet-card{grid-template-columns:66px minmax(0,1fr) 14px}.ancestor-tablet-frame{width:66px;height:74px}
}


/* =========================================================
   V1.7.8.2 · MESSENGER READABILITY + MOBILE + ALBUM TIMELINE
========================================================= */

/* Messages use the full content width; no squeezed family sidebar */
.messenger-page-full{
  width:min(1500px,calc(100vw - 28px));
  margin:0 auto;
}
.messenger-page-full .messenger-app-v2{
  --msg-paper:#fffaf3;
  --msg-soft:#f5e9dd;
  --msg-soft-2:#efe1d3;
  --msg-wine:#8d3023;
  --msg-wine-dark:#6f261d;
  --msg-line:#e3d0bf;
  --msg-ink:#402d25;
  --msg-muted:#846f64;
  height:calc(100dvh - 126px);
  min-height:680px;
  grid-template-columns:390px minmax(0,1fr);
  background:#f6eee6;
  border-color:var(--msg-line);
  border-radius:18px;
  box-shadow:0 14px 38px rgba(86,46,28,.11);
}
.messenger-page-full .messenger-list-pane{background:var(--msg-paper);border-color:var(--msg-line)}
.messenger-list-header{padding:18px 18px 12px}
.messenger-list-header h2{color:var(--msg-ink);font-size:24px;line-height:1.1}
.messenger-list-header small{margin-top:6px;display:block;color:var(--msg-muted);font-size:12px}
.messenger-new-group{width:42px;height:42px;border-color:var(--msg-line);border-radius:12px;background:#fff8f0;color:var(--msg-wine);font-size:24px}
.messenger-search{padding:0 16px 12px}
.messenger-search span{left:29px;top:11px;font-size:16px}
.messenger-search input{height:44px;padding-left:42px;border-radius:12px;background:#f2ece6;border-color:#e8ddd4;font-size:14px;color:var(--msg-ink)}
.messenger-list-tabs{gap:20px;padding:0 16px 10px;border-color:var(--msg-line)}
.messenger-list-tabs>a,.messenger-list-tabs>button{font-size:13px;padding:9px 0;color:#765f55}
.messenger-list-tabs>a.active{color:var(--msg-wine);border-color:var(--msg-wine)}
.messenger-category-menu{top:42px;width:170px;border-color:var(--msg-line);border-radius:12px;background:#fffaf5}
.messenger-category-menu a{padding:10px;font-size:13px}
.messenger-conversation-row{border-color:#efe2d7}
.messenger-conversation-row.active{background:#f3dfd0}
.messenger-conversation-row:hover{background:#f8ece2}
.messenger-conversation-main{grid-template-columns:56px minmax(0,1fr) 54px;gap:11px;min-height:78px;padding:11px 40px 11px 15px}
.messenger-conversation-main>img,.messenger-group-avatar{width:52px;height:52px}
.messenger-group-avatar{background:linear-gradient(135deg,#a84935,#76271d)}
.messenger-conversation-copy b{font-size:15px;color:#3d2a24}
.messenger-conversation-copy small{margin-top:5px;font-size:12px;color:#876f63}
.messenger-conversation-meta time{font-size:11px;color:#977f73}
.messenger-conversation-meta i{min-width:20px;height:20px;font-size:10px;background:var(--msg-wine)}
.messenger-conversation-meta em{font-size:11px}
.conversation-more-btn{right:8px;top:24px;width:34px;height:34px;font-size:16px;color:#74584e}
.conversation-more-btn:hover{background:#ecd9ca}
.conversation-action-menu{right:10px;top:57px;width:230px;padding:9px;border-color:#dfcdbf;border-radius:13px;background:#fffaf6;box-shadow:0 14px 35px rgba(64,37,26,.18)}
.conversation-action-menu>button,.conversation-action-menu .menu-category>button{padding:11px 12px;font-size:13px;color:#513c33}
.conversation-action-menu>button:hover,.conversation-action-menu .menu-category>button:hover{background:#f2e2d5}
.conversation-action-menu .menu-category>span{font-size:10px;padding:6px 12px;color:#987b6e}
.conversation-action-menu .danger{color:#c43d32}.conversation-action-menu .danger-soft{color:#9f5c52}

.messenger-chat-pane{background:#f2eae3}
.messenger-chat-header{height:78px;padding:10px 18px;border-color:var(--msg-line);background:#fffaf6}
.messenger-chat-header>img,.messenger-chat-group-avatar{width:54px;height:54px}
.messenger-chat-group-avatar{background:linear-gradient(135deg,#a84935,#76271d)}
.messenger-chat-title b{font-size:19px;color:#3e2b24}
.messenger-chat-title small{font-size:12px;color:#8f776b}
.messenger-chat-actions{gap:8px}
.messenger-chat-actions button,.messenger-chat-actions a{width:40px;height:40px;border:1px solid #ead7c7;border-radius:11px;background:#fff8f0;color:var(--msg-wine);font-size:18px}
.messenger-chat-actions button:hover,.messenger-chat-actions a:hover{background:#f2e0d2}
.messenger-chat-subbar{height:40px;padding:0 18px;border-color:var(--msg-line);background:#fbf4ed;color:#826d62;font-size:12px}
.messenger-chat-body{padding:24px 22px 30px;background:
 radial-gradient(circle at 1px 1px,rgba(143,94,67,.055) 1px,transparent 0) 0 0/20px 20px,
 #efe8e1;
 scroll-behavior:smooth;
}
.message-date-divider span{padding:6px 15px;background:rgba(117,83,68,.35);font-size:11px}
.messenger-bubble-row{gap:9px;margin:9px 0}
.messenger-sender-avatar{width:36px;height:36px}
.messenger-bubble-wrap{max-width:min(72%,720px)}
.messenger-sender-name{margin:0 0 4px 8px;font-size:11px;color:#7c675e}
.messenger-bubble{min-width:90px;padding:11px 13px 21px;border-radius:16px 16px 16px 5px;background:#fffaf5;border:1px solid #ead9cc;box-shadow:0 2px 5px rgba(64,38,29,.06)}
.mine .messenger-bubble{border-radius:16px 16px 5px 16px;background:#f2d9cb;border-color:#e3c2b2}
.messenger-bubble p{font-size:15px!important;line-height:1.48!important;color:#3d2c25}
.messenger-time{right:9px;bottom:5px;font-size:9px;color:#9a8175}
.message-media-grid{border-radius:11px;overflow:hidden}
.message-media-grid img{height:220px}.message-media-grid.two img,.message-media-grid.many img{height:165px}
.messenger-compose-v2{
  position:relative;
  min-height:70px;
  grid-template-columns:44px minmax(0,1fr) 48px;
  gap:8px;
  align-items:end;
  padding:10px 14px;
  border-color:var(--msg-line);
  background:#fffaf6;
}
.messenger-compose-tools{display:flex;align-items:center}
.chat-image-attach{width:42px;height:42px;border:1px solid #e7d3c3!important;border-radius:12px!important;background:#fff7ef!important;color:var(--msg-wine)!important;font-size:21px!important}
.messenger-compose-input{position:relative;min-width:0}
.messenger-compose-v2 textarea{
  width:100%;
  min-height:44px;
  max-height:116px;
  margin:0;
  padding:11px 46px 10px 14px;
  border:1px solid #dfcbbb;
  border-radius:15px;
  background:#fffdf9;
  color:#3b2b25;
  font-size:15px;
  line-height:1.35;
  resize:none;
}
.messenger-compose-v2 textarea:focus{border-color:#b56550;box-shadow:0 0 0 3px rgba(155,65,43,.08)}
.chat-emoji-toggle{position:absolute;right:6px;bottom:5px;width:34px!important;height:34px!important;border:0!important;background:transparent!important;color:#8c4b3a!important;font-size:20px!important}
.messenger-compose-v2 .chat-send{width:46px;height:46px;border-radius:13px;background:linear-gradient(135deg,#a43c2d,#76271e);font-size:19px}
.messenger-chat-empty{color:#78584c}.messenger-chat-empty>span{font-size:62px;color:#b89482}.messenger-chat-empty h3{font-size:20px}.messenger-chat-empty p{font-size:13px}.messenger-chat-empty small{display:block;max-width:390px;margin:8px auto 0;color:#9a8276;font-size:11px}
.messenger-chat-info{top:78px;width:320px;background:#fffaf6;border-color:#dfcec2}
.messenger-chat-info h3{font-size:18px;color:#4a3128}.messenger-chat-info p{font-size:12px}.messenger-chat-info>a{padding:12px;font-size:13px}
.messenger-group-members span{font-size:13px}

/* Album: real timeline + each post becomes a folder */
.album-timeline{padding:4px 0 10px}
.album-year-section{display:grid;grid-template-columns:96px minmax(0,1fr);gap:14px;position:relative;padding:6px 0 18px}
.album-year-marker{position:sticky;top:100px;align-self:start;text-align:center;padding-top:4px}
.album-year-marker b{display:inline-block;min-width:70px;padding:8px 12px;border-radius:999px;background:#913326;color:#fff;font-size:16px}
.album-year-marker span{display:block;margin-top:7px;color:#96796d;font-size:10px}
.album-year-content{position:relative;border-left:2px solid #d8b9a3;padding-left:18px}
.album-month-group{position:relative;margin-bottom:22px}
.album-month-group:last-child{margin-bottom:0}
.album-month-head{display:flex;align-items:center;gap:8px;margin:2px 0 10px}
.album-month-dot{position:absolute;left:-24px;width:11px;height:11px;border:3px solid #9b3829;border-radius:50%;background:#fffaf4}
.album-month-head h3{margin:0;color:#713328;font-size:16px}
.album-month-head small{color:#9d8073;font-size:10px}
.album-folder-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}
.album-folder-card{min-width:0;border:1px solid #e7d4c5;border-radius:15px;background:#fffaf5;overflow:visible}
.album-folder-cover{position:relative;width:100%;aspect-ratio:4/3;padding:0;border:0;border-radius:14px 14px 0 0;background:#e7dbcf;cursor:pointer;overflow:visible}
.album-folder-cover>img{position:relative;z-index:3;width:100%;height:100%;display:block;object-fit:cover;border-radius:14px 14px 0 0}
.album-folder-stack{position:absolute;z-index:1;left:8px;right:8px;height:100%;border:1px solid #e5cdbb;border-radius:13px;background:#f4e6d8}
.album-folder-stack.stack-1{top:-5px;left:11px;right:11px}.album-folder-stack.stack-2{top:-9px;left:17px;right:17px;background:#ead8c7}
.album-folder-count{position:absolute;z-index:5;right:8px;bottom:8px;padding:5px 8px;border-radius:999px;background:rgba(56,35,27,.72);color:#fff;font-size:10px}
.album-folder-info{display:grid;grid-template-columns:minmax(0,1fr) 24px;gap:6px;align-items:center;padding:10px}
.album-folder-info>div{min-width:0}.album-folder-info b,.album-folder-info small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.album-folder-info b{font-size:12px;color:#59382e}.album-folder-info small{margin-top:4px;color:#9b7d70;font-size:9px}
.album-folder-info>a{font-size:24px;color:#a06753}
.album-folder-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;background:rgba(47,31,25,.66);backdrop-filter:blur(6px)}
.album-folder-modal[hidden]{display:none!important}
.album-folder-dialog{width:min(1050px,96vw);max-height:90vh;overflow:auto;border:1px solid #dec7b4;border-radius:20px;background:#fffaf4;box-shadow:0 30px 80px rgba(30,18,12,.28)}
.album-folder-dialog>header{position:sticky;top:0;z-index:3;display:flex;justify-content:space-between;gap:15px;align-items:center;padding:16px 18px;border-bottom:1px solid #e9d9cc;background:rgba(255,250,244,.96);backdrop-filter:blur(10px)}
.album-folder-dialog>header small{color:#9a7767;font-size:10px;letter-spacing:.08em}.album-folder-dialog>header h3{margin:3px 0;color:#662e23;font-size:20px}.album-folder-dialog>header span{color:#9b8175;font-size:11px}.album-folder-dialog>header button{width:40px;height:40px;border:0;border-radius:50%;background:#f0e2d6;color:#70372b;font-size:24px}
.album-folder-modal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;padding:14px}
.album-folder-modal-grid button{position:relative;aspect-ratio:1/1;border:0;padding:0;border-radius:12px;overflow:hidden;background:#e8dbcf;cursor:zoom-in}
.album-folder-modal-grid img{width:100%;height:100%;object-fit:cover;display:block}.album-folder-modal-grid span{position:absolute;right:7px;bottom:7px;width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:rgba(43,29,23,.66);color:#fff;font-size:9px}

@media(max-width:1180px){
  .messenger-page-full .messenger-app-v2{grid-template-columns:340px minmax(0,1fr)}
  .album-folder-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:780px){
  body:has(.messenger-app-v2.mobile-chat-open) .topbar,
  body:has(.messenger-app-v2.mobile-chat-open) .mobile-nav,
  body:has(.messenger-app-v2.mobile-chat-open) .family-footer{display:none!important}
  body:has(.messenger-app-v2) .app-shell{padding:0!important;margin:0!important;max-width:none!important}
  .messenger-page-full{width:100%;margin:0}
  .messenger-page-full .messenger-app-v2{
    height:100dvh;
    min-height:0;
    border:0;
    border-radius:0;
    box-shadow:none;
    background:#f2eae3;
  }
  .messenger-list-pane{height:100dvh!important}
  .messenger-list-header{padding:16px 14px 10px}.messenger-list-header h2{font-size:22px}
  .messenger-search{padding:0 12px 10px}.messenger-list-tabs{padding-left:13px;padding-right:13px;gap:16px}
  .messenger-conversation-main{grid-template-columns:54px minmax(0,1fr) 48px;min-height:76px;padding-left:12px}
  .messenger-conversation-main>img,.messenger-group-avatar{width:50px;height:50px}
  .messenger-conversation-copy b{font-size:15px}.messenger-conversation-copy small{font-size:12px}
  .conversation-action-menu{position:fixed;left:14px;right:14px;top:auto;bottom:16px;width:auto;max-height:70vh;overflow:auto;border-radius:18px;padding:12px;z-index:1002}
  .conversation-action-menu>button,.conversation-action-menu .menu-category>button{font-size:15px;padding:13px}
  .messenger-chat-pane{height:100dvh!important;background:#efe8e1}
  .messenger-chat-header{height:66px;padding:8px 10px;flex:0 0 auto}.messenger-chat-header>img,.messenger-chat-group-avatar{width:44px;height:44px}
  .messenger-chat-title b{font-size:16px}.messenger-chat-title small{font-size:10px}
  .messenger-chat-actions button,.messenger-chat-actions a{width:34px;height:34px;font-size:16px;border:0;background:transparent}
  .mobile-chat-back{width:36px!important;height:36px!important;flex:0 0 36px}
  .mobile-chat-back svg{width:25px;height:25px;fill:none;stroke:#6f3025;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .messenger-chat-subbar{height:28px;padding:0 12px;font-size:9px}
  .messenger-chat-body{min-height:0;padding:16px 10px 20px;overflow-y:auto;overscroll-behavior:contain}
  .messenger-bubble-wrap{max-width:82%}.messenger-bubble p{font-size:15px!important}.messenger-sender-avatar{width:31px;height:31px}
  .message-media-grid img{height:180px}.message-media-grid.two img,.message-media-grid.many img{height:130px}
  .messenger-compose-v2{
    position:sticky!important;
    left:0;right:0;bottom:0;
    z-index:20;
    flex:0 0 auto;
    min-height:62px;
    grid-template-columns:38px minmax(0,1fr) 43px;
    padding:8px max(8px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));
    background:#fffaf5;
    box-shadow:0 -2px 12px rgba(59,38,28,.08);
  }
  .chat-image-attach{width:38px!important;height:42px!important;border:0!important;background:transparent!important;font-size:20px!important}
  .messenger-compose-v2 textarea{min-height:42px;font-size:15px;padding-top:10px;padding-bottom:9px}
  .messenger-compose-v2 .chat-send{width:42px;height:42px;border-radius:12px}
  .messenger-chat-info{top:66px;width:92%}
  .messenger-chat-empty p{padding:0 25px}

  .album-year-section{grid-template-columns:62px minmax(0,1fr);gap:9px}
  .album-year-marker b{min-width:54px;padding:6px 8px;font-size:13px}.album-year-marker span{font-size:8px}
  .album-year-content{padding-left:13px}.album-month-dot{left:-19px}
  .album-folder-grid{grid-template-columns:repeat(2,1fr)}
  .album-folder-info b{font-size:11px}.album-folder-info small{font-size:8px}
  .album-folder-modal-grid{grid-template-columns:repeat(2,1fr);padding:8px}
}
@media(max-width:420px){
  .messenger-list-tabs{gap:12px}.messenger-list-tabs>a,.messenger-list-tabs>button{font-size:12px}
  .album-year-section{grid-template-columns:54px minmax(0,1fr)}
  .album-year-marker b{min-width:48px;font-size:12px}
  .album-folder-grid{grid-template-columns:1fr 1fr;gap:7px}
}


/* ============================================================
   V1.7.8.3 · Unified modal system
   Chuẩn cố định cho mọi modal Nhà Mình: giữa màn hình + nền mờ.
============================================================ */
.modal-backdrop,
.family-dialog,
.nm-add-modal,
.original-family-help-modal,
#mini-family-modal,
#family-profile-modal,
.album-folder-modal{
  position:fixed!important;
  inset:0!important;
  z-index:12000!important;
  align-items:center!important;
  justify-content:center!important;
  place-items:center!important;
  padding:clamp(12px,2vw,28px)!important;
  background:rgba(46,29,22,.58)!important;
  backdrop-filter:blur(7px) saturate(.9)!important;
  -webkit-backdrop-filter:blur(7px) saturate(.9)!important;
}
.modal-backdrop:not([hidden]),
.original-family-help-modal:not([hidden]),
.album-folder-modal:not([hidden]){
  display:grid!important;
}
.family-dialog[style*="display: block"],
.family-dialog[style*="display:flex"],
.family-dialog[style*="display: flex"],
.nm-add-modal[style*="display: block"],
.nm-add-modal[style*="display:flex"],
.nm-add-modal[style*="display: flex"]{
  display:flex!important;
}
.family-dialog-box,.nm-add-box,.original-family-help-box,.composer-modal,.member-modal,.group-chat-dialog,.small-dialog,.album-folder-dialog{
  margin:auto!important;
  max-height:min(90dvh,920px)!important;
  overflow:auto!important;
  border:1px solid rgba(199,160,129,.55)!important;
  box-shadow:0 34px 100px rgba(32,18,12,.36)!important;
  transform-origin:center center;
}
.modal-backdrop:not([hidden])>div,
.original-family-help-modal:not([hidden])>.original-family-help-box,
.album-folder-modal:not([hidden])>.album-folder-dialog,
.family-dialog[style*="display"]>.family-dialog-box,
.nm-add-modal[style*="display"]>.nm-add-box{
  animation:nhModalCenterIn .32s cubic-bezier(.2,.82,.24,1) both!important;
}
@keyframes nhModalCenterIn{
  from{opacity:0;transform:translateY(16px) scale(.965)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
@keyframes nhModalBackdropIn{from{opacity:0}to{opacity:1}}
.modal-backdrop:not([hidden]),.original-family-help-modal:not([hidden]),.album-folder-modal:not([hidden]){
  animation:nhModalBackdropIn .22s ease both!important;
}

/* ============================================================
   Mobile dock · mềm mại, gia đình, rõ nút và thân thiện người lớn tuổi
============================================================ */
.family-mobile-dock{
  background:rgba(255,249,241,.97)!important;
  border-top:1px solid #e7d2c0!important;
  box-shadow:0 -9px 30px rgba(93,51,31,.12)!important;
  backdrop-filter:blur(18px)!important;
  padding:7px max(8px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))!important;
  min-height:70px!important;
}
.family-mobile-dock>a,.family-mobile-dock>button{
  min-height:54px!important;
  border-radius:15px!important;
  color:#765347!important;
  gap:3px!important;
}
.family-mobile-dock>a.active{
  background:#f2dfcf!important;
  color:#8b2d21!important;
}
.family-mobile-dock small{
  font-size:10px!important;
  font-weight:650!important;
  letter-spacing:-.01em;
}
.mobile-nav-icon{width:28px;height:28px;display:grid;place-items:center}
.mobile-nav-icon svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.family-mobile-dock .mobile-compose{
  position:relative!important;
  top:-13px!important;
  background:transparent!important;
  color:#8a2e21!important;
  overflow:visible!important;
}
.mobile-compose-orbit{
  width:54px!important;height:54px!important;
  display:grid!important;place-items:center!important;
  margin:auto!important;
  border-radius:50%!important;
  color:#fff!important;
  background:linear-gradient(145deg,#a73c2b,#762218)!important;
  box-shadow:0 9px 22px rgba(126,42,29,.28),inset 0 0 0 1px rgba(255,255,255,.18)!important;
  font-size:31px!important;
  line-height:1!important;
}
.family-mobile-dock .mobile-compose small{color:#753f32!important;margin-top:2px!important}

/* ============================================================
   Messages: desktop nav drawer
============================================================ */
.messages-desktop-menu-toggle{
  position:fixed;left:18px;top:50%;z-index:1100;
  width:46px;height:54px;padding:0;border:1px solid #dfc9b7;border-radius:0 15px 15px 0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  background:rgba(255,249,242,.95);box-shadow:0 8px 22px rgba(71,41,28,.12);cursor:pointer
}
.messages-desktop-menu-toggle span{display:block;width:20px;height:2px;border-radius:2px;background:#843226}
.messages-nav-scrim{position:fixed;inset:0;z-index:1098;background:rgba(45,29,23,.36);backdrop-filter:blur(2px)}
.messages-nav-drawer{
  position:fixed;left:0;top:0;bottom:0;z-index:1099;width:318px;padding:24px 18px;
  background:#f8f0e7;border-right:1px solid #ddc8b8;box-shadow:20px 0 50px rgba(58,34,24,.16);
  transform:translateX(-102%);transition:transform .22s ease
}
body.messages-nav-open .messages-nav-drawer{transform:translateX(0)}
.messages-nav-close{position:absolute;right:12px;top:12px;z-index:5;width:38px;height:38px;border:0;border-radius:50%;background:#efdfd2;color:#713226;font-size:24px}
.messages-nav-drawer .family-desktop-sidebar{position:static!important;width:auto!important;max-height:calc(100dvh - 48px)!important;overflow:auto!important}
.messages-nav-drawer .family-sidebar-brand{margin-top:18px}

/* Message profile icon */
.chat-profile-action svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}

/* Upload preview */
.message-upload-preview{
  display:flex;gap:6px;overflow-x:auto;padding:5px 44px 5px 8px;margin-bottom:4px;
  scrollbar-width:none
}
.message-upload-preview::-webkit-scrollbar{display:none}
.message-upload-preview-item{position:relative;flex:0 0 54px;width:54px;height:54px;border-radius:10px;overflow:hidden;border:2px solid #d6b6a2;background:#eadfd6}
.message-upload-preview-item img{width:100%;height:100%;object-fit:cover;display:block}
.message-upload-preview-item b{position:absolute;right:3px;bottom:3px;min-width:17px;height:17px;display:grid;place-items:center;border-radius:50%;background:rgba(80,44,31,.72);color:white;font-size:8px}

/* Live unread */
.header-message-btn.has-live-message{animation:messageBellPulse 1.5s ease-in-out infinite}
@keyframes messageBellPulse{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
.messenger-conversation-row.has-unread .messenger-conversation-copy b{color:#822f23}
.messenger-conversation-row.has-unread .messenger-conversation-copy small{font-weight:650;color:#66463b}

/* ============================================================
   Ancestor memorial focus · trang nghiêm
============================================================ */
.memorial-focus-tablet{
  width:min(270px,76%)!important;
  min-height:172px!important;
  padding:18px 16px!important;
  display:grid!important;
  grid-template-columns:64px minmax(0,1fr)!important;
  grid-template-rows:auto auto auto auto!important;
  column-gap:13px!important;
  align-items:center!important;
  text-align:left!important;
  background:linear-gradient(160deg,#4c170f,#721d12 55%,#44110c)!important;
  border:1px solid #d3a55d!important;
  box-shadow:inset 0 0 0 3px rgba(210,164,92,.12),0 12px 25px rgba(40,12,8,.24)!important
}
.memorial-focus-tablet>small{grid-column:1/-1;text-align:center;color:#e8c98d!important;letter-spacing:.12em!important;font-size:8px!important}
.memorial-focus-tablet>img{grid-row:2/5;width:62px;height:72px;object-fit:cover;border-radius:8px;border:1px solid #d6b26b;box-shadow:0 3px 12px rgba(0,0,0,.3)}
.memorial-focus-tablet>b{font-size:17px!important;color:#ffe4b0!important;white-space:normal!important}
.memorial-focus-tablet>strong{font-size:9px!important;color:#f4bf62!important;line-height:1.4}
.memorial-focus-tablet>span{font-size:9px!important;color:#e6d2b6!important}

/* ============================================================
   Ngày này năm xưa moved to top of right rail
============================================================ */
.anniversary-right-top{order:-20!important;margin:0!important}
.anniversary-right-top .anniversary-photo-feature{display:block!important}
.anniversary-right-top .anniversary-photo-wrap{height:154px!important}
.anniversary-right-top .anniversary-photo-wrap img{width:100%!important;height:100%!important;object-fit:cover!important}

/* Unlinked genealogy profiles */
.person-actions-note{display:grid!important;gap:6px!important;justify-items:center!important}
.genealogy-profile-btn{display:inline-flex!important;align-items:center!important;gap:7px!important;padding:9px 13px!important;border:1px solid #dfc8b6!important;border-radius:10px!important;background:#fff7ef!important;color:#7a3427!important;font-size:11px!important}
.person-actions-note small{font-size:9px;color:#9b8276;text-align:center;max-width:240px}

/* Mobile message view: no desktop drawer, input remains bottom */
@media(max-width:780px){
  .messages-desktop-menu-toggle,.messages-nav-drawer,.messages-nav-scrim{display:none!important}
  .message-upload-preview{padding-left:3px;padding-right:40px}
  .message-upload-preview-item{flex-basis:48px;width:48px;height:48px}
  .family-mobile-dock{display:grid!important}
}

/* Prevent visible scrollbars throughout the app while preserving scrolling */
*{scrollbar-width:none}
*::-webkit-scrollbar{width:0!important;height:0!important;display:none!important}


/* ============================================================
   V1.7.8.6 · SAFE TRUE-VIEWPORT MODALS
   Không ép display: modal đóng vẫn phải đóng.
============================================================ */

/* Sau hiệu ứng trang, vùng content không được giữ containing-block. */
.ui-transition-target:not([class*="ui-enter-"]):not([class*="ui-leave-"]){
  transform:none!important;
  will-change:auto!important;
}

/* Chỉ định vị overlay, KHÔNG can thiệp trạng thái display/open/hidden. */
body > .modal-backdrop,
body > .family-dialog,
body > .nm-add-modal,
body > .original-family-help-modal,
body > #mini-family-modal,
body > #family-profile-modal,
body > .album-folder-modal,
body > .image-lightbox{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100dvh!important;
  min-width:100vw!important;
  min-height:100dvh!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  box-sizing:border-box!important;
  z-index:2147483000!important;
}

/* Các overlay vốn dùng flex/grid khi mở sẽ căn giữa toàn viewport. */
body > .modal-backdrop,
body > .family-dialog,
body > .nm-add-modal,
body > .original-family-help-modal,
body > #mini-family-modal,
body > #family-profile-modal,
body > .album-folder-modal{
  align-items:center!important;
  justify-content:center!important;
  place-items:center!important;
}

/* Nền mờ chỉ có tác dụng khi component thực sự đang hiển thị. */
body > .modal-backdrop,
body > .family-dialog,
body > .nm-add-modal,
body > .original-family-help-modal,
body > #mini-family-modal,
body > #family-profile-modal,
body > .album-folder-modal{
  background:rgba(42,29,23,.66)!important;
  backdrop-filter:blur(7px)!important;
  -webkit-backdrop-filter:blur(7px)!important;
}

/* Lightbox giữ nguyên cơ chế .open của V1.7.8.3 */
body > .image-lightbox{
  background:rgba(20,16,14,.92)!important;
}
body > .image-lightbox:not(.open){
  display:none!important;
}
body > .image-lightbox.open{
  display:flex!important;
}

/* Composer lớn, giữa toàn màn hình */
body > .modal-backdrop > .composer-modal{
  width:min(1180px,calc(100vw - 56px))!important;
  max-width:none!important;
  max-height:calc(100dvh - 48px)!important;
  margin:auto!important;
  overflow:auto!important;
}

/* Album viewer */
body > .album-folder-modal > .album-folder-dialog{
  width:min(1180px,calc(100vw - 56px))!important;
  max-width:none!important;
  max-height:calc(100dvh - 48px)!important;
  margin:auto!important;
  overflow:auto!important;
}

/* D3/family: chỉ căn giữa overlay, không ép kích thước nội dung gốc */
body > .family-dialog > .family-dialog-box,
body > .nm-add-modal > .nm-add-box,
body > .original-family-help-modal > .original-family-help-box{
  margin:auto!important;
  max-width:calc(100vw - 48px)!important;
  max-height:calc(100dvh - 48px)!important;
  overflow:auto!important;
}

@media(max-width:780px){
  body > .modal-backdrop,
  body > .family-dialog,
  body > .nm-add-modal,
  body > .original-family-help-modal,
  body > #mini-family-modal,
  body > #family-profile-modal,
  body > .album-folder-modal{
    padding:8px!important;
  }
  body > .modal-backdrop > .composer-modal,
  body > .album-folder-modal > .album-folder-dialog{
    width:calc(100vw - 16px)!important;
    max-width:calc(100vw - 16px)!important;
    max-height:calc(100dvh - 16px)!important;
  }
}


/* ============================================================
   V1.7.8.7 · MESSAGE IMAGE + DESKTOP COMPOSER + MOBILE DOCK
============================================================ */

/* Desktop: khung chat là một flex-column kín chiều cao.
   Chỉ lịch sử tin nhắn được cuộn; ô nhập luôn còn ở đáy. */
@media(min-width:781px){
  .messenger-page-full .messenger-app-v2{
    height:calc(100dvh - 126px)!important;
    min-height:620px!important;
    overflow:hidden!important;
  }
  .messenger-page-full .messenger-chat-pane{
    display:flex!important;
    flex-direction:column!important;
    min-width:0!important;
    min-height:0!important;
    height:100%!important;
    overflow:hidden!important;
  }
  .messenger-page-full .messenger-chat-header,
  .messenger-page-full .messenger-chat-subbar,
  .messenger-page-full .messenger-compose-v2{
    flex:0 0 auto!important;
  }
  .messenger-page-full .messenger-chat-body{
    flex:1 1 0!important;
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    padding-bottom:24px!important;
  }
  .messenger-page-full .messenger-compose-v2{
    position:relative!important;
    inset:auto!important;
    z-index:50!important;
    width:100%!important;
    min-height:70px!important;
    box-sizing:border-box!important;
    background:#fffaf6!important;
    box-shadow:0 -5px 18px rgba(72,40,27,.07)!important;
  }
}

/* Ảnh tin nhắn không được kéo cao làm phá layout chat. */
.message-media-grid{
  max-width:min(520px,72vw)!important;
}
.message-media-grid img{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  object-fit:cover!important;
}
.message-media-grid.one img{
  height:auto!important;
  max-height:420px!important;
  object-fit:contain!important;
  background:#eadfd6!important;
}

/* Menu mobile: tất cả 5 mục cùng một hàng, cùng cao, không nút nổi. */
@media(max-width:820px){
  .family-mobile-dock{
    min-height:68px!important;
    padding:6px max(7px,env(safe-area-inset-right))
      calc(6px + env(safe-area-inset-bottom))
      max(7px,env(safe-area-inset-left))!important;
    align-items:stretch!important;
  }
  .family-mobile-dock>a,
  .family-mobile-dock>.mobile-compose{
    position:static!important;
    top:auto!important;
    width:100%!important;
    height:auto!important;
    min-height:54px!important;
    margin:0!important;
    padding:5px 2px!important;
    border:0!important;
    border-radius:13px!important;
    background:transparent!important;
    box-shadow:none!important;
    color:#765347!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:3px!important;
  }
  .family-mobile-dock>.mobile-compose:hover,
  .family-mobile-dock>.mobile-compose:focus-visible{
    background:#f2dfcf!important;
    color:#8b2d21!important;
  }
  .family-mobile-dock .mobile-nav-icon{
    width:27px!important;
    height:27px!important;
    display:grid!important;
    place-items:center!important;
  }
  .family-mobile-dock .mobile-nav-icon svg{
    width:22px!important;
    height:22px!important;
    fill:none!important;
    stroke:currentColor!important;
    stroke-width:1.7!important;
    stroke-linecap:round!important;
    stroke-linejoin:round!important;
  }
  .family-mobile-dock .mobile-compose small{
    margin:0!important;
    color:inherit!important;
    font-size:10px!important;
    white-space:nowrap!important;
  }
  .mobile-compose-orbit{display:none!important}
}


/* ============================================================
   V1.7.8.8 · MOBILE COMPOSER / HEADER / RIGHT TIMELINE / SETTINGS
============================================================ */

/* Mobile header vẫn dùng đúng ảnh banner của từng trang.
   Gỡ các rule cũ đã ép background-image:none. */
@media(max-width:780px){
  .topbar.topbar-visual{
    height:78px!important;
    min-height:78px!important;
    padding:0 12px!important;
    background-image:
      linear-gradient(90deg,rgba(255,250,244,.08),rgba(255,250,244,.02) 66%,rgba(255,250,244,.24)),
      var(--header-cover)!important;
    background-size:cover!important;
    background-position:center center!important;
    background-repeat:no-repeat!important;
  }
  .topbar-visual .topbar-mobile-brand{
    display:flex!important;
    visibility:visible!important;
    pointer-events:auto!important;
    width:auto!important;
    height:58px!important;
    padding:3px 0!important;
  }
  .topbar-visual .topbar-mobile-brand img{
    height:52px!important;
    width:auto!important;
    max-width:126px!important;
    object-fit:contain!important;
    filter:drop-shadow(0 2px 5px rgba(68,37,24,.12));
  }
  .topbar-visual .top-actions{
    margin-left:auto!important;
    padding:4px 6px!important;
    border-radius:14px!important;
  }
}

/* Cột 3 - Dòng thời gian ký ức: luôn hiện đúng cây 5 bài. */
.timeline-mini-visual{
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
  padding:15px 14px!important;
}
.timeline-mini-visual .timeline-mini-list{
  display:grid!important;
  grid-auto-rows:auto!important;
  gap:0!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
  visibility:visible!important;
  opacity:1!important;
}
.timeline-mini-visual .timeline-mini-item{
  display:grid!important;
  visibility:visible!important;
  opacity:1!important;
  min-height:64px!important;
}
.timeline-mini-visual .timeline-mini-title,
.timeline-mini-visual .timeline-mini-date,
.timeline-mini-visual .timeline-mini-axis,
.timeline-mini-visual .timeline-mini-thumb{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
}
.timeline-mini-visual .timeline-mini-axis{
  display:grid!important;
}
.timeline-mini-visual .timeline-mini-thumb{
  display:block!important;
}
.timeline-mini-visual .soft-link{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
}

/* Settings mobile: bỏ layout desktop bị tràn/cắt, tất cả vừa một cột. */
@media(max-width:820px){
  body:has(.settings-card) .app-shell{
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    padding:12px 10px 92px!important;
    overflow-x:hidden!important;
  }
  body:has(.settings-card) .family-desktop-layout,
  body:has(.settings-card) .family-desktop-content{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
  }
  body:has(.settings-card) .family-desktop-sidebar{
    display:none!important;
  }
  .settings-card{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    margin:0!important;
    padding:16px 12px 20px!important;
    border-radius:18px!important;
    overflow:hidden!important;
  }
  .settings-card>h1{
    margin:2px 0 14px!important;
    padding:0!important;
    font-size:25px!important;
    line-height:1.2!important;
    white-space:normal!important;
  }
  .settings-tabs{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:6px!important;
    width:100%!important;
    margin:12px 0 18px!important;
    padding:5px!important;
    overflow:visible!important;
    border-radius:14px!important;
  }
  .settings-tabs a{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-width:0!important;
    min-height:44px!important;
    padding:8px 7px!important;
    border-radius:10px!important;
    text-align:center!important;
    white-space:normal!important;
    word-break:normal!important;
    font-size:13px!important;
    line-height:1.2!important;
  }
  .settings-form,
  .settings-form.avatar-settings{
    display:grid!important;
    grid-template-columns:1fr!important;
    width:100%!important;
    max-width:100%!important;
    gap:13px!important;
  }
  .settings-form label,
  .settings-form input,
  .settings-form select,
  .settings-form textarea,
  .settings-form button{
    min-width:0!important;
    max-width:100%!important;
  }
  .settings-form input,
  .settings-form select,
  .settings-form textarea{
    width:100%!important;
  }
  .settings-submit{
    width:100%!important;
    max-width:100%!important;
    justify-content:center!important;
  }
  .avatar-current{
    grid-template-columns:76px minmax(0,1fr)!important;
    gap:12px!important;
  }
  .avatar-current img{
    width:76px!important;
    height:76px!important;
  }
  .avatar-history-grid,
  .banner-history-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
  }
  .banner-settings,
  .banner-setting-item,
  .avatar-settings-panel,
  .avatar-history{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }
  .banner-preview{
    width:100%!important;
    max-width:100%!important;
  }
  .banner-upload-form{
    display:grid!important;
    grid-template-columns:1fr!important;
    width:100%!important;
    gap:8px!important;
  }
  .banner-upload-form input[type=file],
  .banner-upload-form button{
    width:100%!important;
    max-width:100%!important;
  }
}
@media(max-width:430px){
  .settings-tabs{
    grid-template-columns:1fr 1fr!important;
  }
  .settings-tabs a{
    font-size:12px!important;
  }
}

/* ============================================================
   V1.7.8.9 · MOBILE HEADER OVERLAY + SETTINGS CENTER
============================================================ */

/* Mobile: phủ một lớp tối nhẹ lên banner để logo/icon nổi rõ nhưng vẫn giữ ảnh. */
@media(max-width:780px){
  .topbar.topbar-visual{
    background-image:
      linear-gradient(rgba(45,28,21,.36),rgba(45,28,21,.36)),
      var(--header-cover)!important;
    background-size:cover!important;
    background-position:center!important;
  }
  .topbar-visual .top-actions{
    background:rgba(255,248,239,.84)!important;
    border:1px solid rgba(255,255,255,.56)!important;
    box-shadow:0 7px 24px rgba(35,22,17,.20)!important;
  }
  .topbar-visual .header-message-btn,
  .topbar-visual .account-menu-toggle{
    background:rgba(255,255,255,.72)!important;
    color:#6e3327!important;
  }
  .topbar-visual .header-message-icon{color:#6e3327!important}
}

.settings-v1789{width:100%;max-width:1180px;margin:0 auto;min-width:0}
.settings-v1789-head{display:flex;align-items:center;gap:15px;margin-bottom:16px;padding:18px 20px;border:1px solid #ead7c6;background:linear-gradient(145deg,#fffaf4,#f9eee2);border-radius:20px;box-shadow:0 10px 28px rgba(79,45,28,.06)}
.settings-v1789-head>div>span{font-size:10px;letter-spacing:.17em;font-weight:800;color:#ad745d}.settings-v1789-head h1{margin:4px 0 3px;font-size:30px;color:#6d2e22}.settings-v1789-head p{margin:0;color:#8c7467;font-size:13px}
.settings-menu-toggle{display:none;width:46px;height:46px;flex:0 0 46px;border:1px solid #e5cdbb;border-radius:13px;background:#fff7ef;place-items:center;padding:11px;cursor:pointer}.settings-menu-toggle span{display:block;width:22px;height:2px;margin:3px auto;background:#7f3528;border-radius:5px}
.settings-v1789-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:18px;align-items:start}
.settings-v1789-nav{position:sticky;top:132px;padding:8px;background:#fffaf4;border:1px solid #ead7c7;border-radius:18px;box-shadow:0 12px 30px rgba(73,43,29,.06);max-height:calc(100dvh - 150px);overflow:auto;scrollbar-width:none}.settings-v1789-nav::-webkit-scrollbar{display:none}.settings-v1789-nav-title{display:flex;align-items:center;justify-content:space-between;padding:11px 12px 12px;border-bottom:1px solid #eee0d4;margin-bottom:6px;color:#6c2c21}.settings-v1789-nav-title b{font-size:17px}.settings-nav-close{display:none;border:0;background:transparent;font-size:28px;color:#7d5c4e;cursor:pointer}
.settings-v1789-nav>a{display:grid;grid-template-columns:38px minmax(0,1fr) 14px;gap:9px;align-items:center;padding:10px 11px;margin:2px 0;border-radius:12px;color:#5f4035;transition:.16s ease}.settings-v1789-nav>a:hover{background:#f5e8dc;transform:translateX(2px)}.settings-v1789-nav>a.active{background:linear-gradient(135deg,#8c2d20,#a94732);color:#fff;box-shadow:0 7px 17px rgba(130,45,31,.16)}
.settings-v1789-nav>a>i{width:34px;height:34px;border-radius:10px;background:#f4e4d5;display:grid;place-items:center;font-style:normal;color:#8f3a2c;font-size:17px}.settings-v1789-nav>a.active>i{background:rgba(255,255,255,.15);color:#fff}.settings-v1789-nav>a>span{min-width:0}.settings-v1789-nav>a b{display:block;font-size:13px}.settings-v1789-nav>a small{display:block;margin-top:2px;font-size:9px;line-height:1.25;color:#a08476}.settings-v1789-nav>a.active small{color:#f8ded2}.settings-v1789-nav>a em{font-style:normal;font-size:18px;color:#ad7c68}.settings-v1789-nav>a.active em{color:#fff}
.settings-v1789-panel{min-width:0;background:#fffaf5;border:1px solid #ead6c4;border-radius:20px;padding:22px;box-shadow:0 12px 30px rgba(72,42,28,.05)}
.settings-section-title{display:flex;align-items:center;gap:13px;padding-bottom:16px;margin-bottom:17px;border-bottom:1px solid #ecddd1}.settings-section-title>span{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;background:#f3dfce;color:#8e3528;font-size:22px}.settings-section-title h2{margin:0;color:#6f2f23;font-size:24px}.settings-section-title p{margin:4px 0 0;color:#8d766a;font-size:12px}
.settings-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.settings-box{background:#fffdf9;border:1px solid #ecdacb;border-radius:16px;padding:17px;margin-bottom:14px;min-width:0}.settings-box h3{margin:0 0 13px;color:#733326;font-size:17px}.settings-box label,.settings-v1789-panel .settings-form label{display:grid;gap:7px;margin-bottom:12px;font-size:12px;font-weight:700;color:#65483c}.settings-box input,.settings-box select,.settings-box textarea,.settings-v1789-panel .settings-form input,.settings-v1789-panel .settings-form select,.settings-v1789-panel .settings-form textarea{width:100%;min-width:0;padding:12px 13px;border:1px solid #dfc6b3;border-radius:11px;background:#fffaf5;color:#49352d;outline:none}.settings-box input:focus,.settings-box select:focus,.settings-box textarea:focus{border-color:#aa5a41;box-shadow:0 0 0 3px rgba(157,64,42,.08)}.settings-help{font-size:10px;line-height:1.55;color:#987d70}.settings-submit{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:auto!important;min-width:128px!important;min-height:41px!important;border:0!important;border-radius:11px!important;background:linear-gradient(135deg,#8e2f22,#a7422f)!important;color:#fff!important;font-weight:750!important;padding:10px 17px!important;cursor:pointer!important}.settings-submit:hover{filter:brightness(1.04)}
.avatar-setting-inline{display:grid;grid-template-columns:88px minmax(0,1fr) auto;gap:14px;align-items:center}.avatar-setting-inline>img{width:88px;height:88px;border-radius:18px;object-fit:cover;border:3px solid #efd7c2}.avatar-setting-inline>div{display:grid;gap:5px}.avatar-setting-inline small{color:#9c8274}.settings-avatar-history{margin-top:15px}
.settings-info-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 0;border-top:1px dashed #ead9cb}.settings-info-row span{color:#8a7064;font-size:12px}.settings-info-row b{color:#60362b;font-size:12px}
.settings-member-list{display:grid;gap:10px}.settings-member-list article{display:grid;grid-template-columns:52px minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:12px 14px;background:#fffdf9;border:1px solid #ead8ca;border-radius:14px}.settings-member-list img{width:52px;height:52px;border-radius:14px;object-fit:cover}.settings-member-list article>div b{display:block;font-size:13px}.settings-member-list article>div small{display:block;margin-top:3px;color:#9a8175;font-size:10px}.settings-member-list form{display:flex;gap:6px;align-items:center}.settings-member-list select{padding:8px 9px;border:1px solid #dec6b4;border-radius:9px;background:#fffaf5}.settings-member-list button{border:0;border-radius:9px;background:#953526;color:white;padding:9px 11px}.role-pill{padding:5px 8px;border-radius:999px;background:#eee5dd;color:#6d4a3f;font-size:9px;font-weight:800}.role-owner{background:#8c3125;color:#fff}.role-editor{background:#f2dfbd;color:#755528}
.setting-switch{display:grid!important;grid-template-columns:auto 42px minmax(0,1fr)!important;align-items:center!important;gap:10px!important;padding:12px!important;border:1px solid #ead9ca!important;border-radius:13px!important;background:#fff9f2!important}.setting-switch>input{position:absolute;opacity:0;pointer-events:none}.setting-switch>span{position:relative;width:42px;height:24px;border-radius:999px;background:#d9c8ba;transition:.2s}.setting-switch>span::after{content:"";position:absolute;width:18px;height:18px;border-radius:50%;background:#fff;top:3px;left:3px;box-shadow:0 1px 5px rgba(60,35,22,.20);transition:.2s}.setting-switch>input:checked+span{background:#9a3828}.setting-switch>input:checked+span::after{transform:translateX(18px)}.setting-switch>div b{display:block;font-size:11px}.setting-switch>div small{display:block;margin-top:3px;color:#987f73;font-size:9px;font-weight:500;line-height:1.4}
.backup-hero{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px;border-radius:14px;background:linear-gradient(135deg,#f8eadc,#fff8f1);margin-bottom:12px}.backup-hero b{font-size:15px;color:#6d3326}.backup-hero p{margin:4px 0 0;font-size:10px;color:#8d7367}.backup-list{display:grid;gap:8px}.backup-list article{display:grid;grid-template-columns:38px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:10px;border:1px solid #ead8ca;border-radius:12px}.backup-list article>span{width:36px;height:36px;border-radius:10px;background:#f4e4d7;display:grid;place-items:center}.backup-list b{display:block;font-size:11px}.backup-list small{display:block;color:#9a8175;font-size:9px;margin-top:2px}.backup-list a,.backup-list button{border:0;border-radius:9px;padding:8px 10px;font-size:10px;background:#f1e4da;color:#6e3529}.backup-list button.danger{color:#b03025;background:#fdeae5}.app-info-card{display:grid;grid-template-columns:130px minmax(0,1fr);gap:20px;align-items:center}.app-info-card>img{width:130px;height:100px;object-fit:contain}.app-info-card h3{font-size:24px;margin-bottom:4px}.app-info-card p{color:#92796d;margin-top:0}

@media(max-width:820px){
  body:has(.settings-v1789) .app-shell{padding:12px 10px 94px!important;overflow-x:hidden!important}
  body:has(.settings-v1789) .family-desktop-layout{display:block!important;width:100%!important;margin:0!important}
  body:has(.settings-v1789) .family-desktop-sidebar{display:none!important}
  body:has(.settings-v1789) .family-desktop-content{width:100%!important;min-width:0!important;margin:0!important}
  .settings-v1789{width:100%;max-width:100%}
  .settings-v1789-head{padding:13px 12px;margin-bottom:10px;border-radius:16px;position:relative;z-index:20}.settings-menu-toggle{display:grid}.settings-v1789-head h1{font-size:23px}.settings-v1789-head p{font-size:10px}.settings-v1789-head>div>span{font-size:8px}
  .settings-v1789-layout{display:block;width:100%}.settings-v1789-panel{width:100%;min-width:0;padding:14px 11px;border-radius:16px}
  .settings-v1789-nav{display:block!important;position:fixed!important;z-index:100020!important;top:0!important;bottom:0!important;left:0!important;width:min(88vw,330px)!important;max-height:none!important;border-radius:0 18px 18px 0!important;padding:10px!important;transform:translateX(-105%);transition:transform .24s ease;box-shadow:20px 0 50px rgba(52,31,22,.24)}
  .settings-v1789-nav.open{transform:translateX(0)}.settings-nav-close{display:block}.settings-v1789-nav-title{padding-top:14px}
  body.settings-nav-open::after{content:"";position:fixed;inset:0;background:rgba(40,25,19,.42);backdrop-filter:blur(2px);z-index:100010}
  .settings-v1789-nav>a{grid-template-columns:38px minmax(0,1fr) 14px;padding:10px}.settings-v1789-nav>a b{font-size:13px}.settings-v1789-nav>a small{font-size:9px}
  .settings-section-title>span{width:42px;height:42px;flex:0 0 42px}.settings-section-title h2{font-size:20px}.settings-section-title p{font-size:10px}
  .settings-grid-2{grid-template-columns:1fr}.settings-box{padding:14px 12px;border-radius:14px}.avatar-setting-inline{grid-template-columns:72px minmax(0,1fr);gap:10px}.avatar-setting-inline>img{width:72px;height:72px}.avatar-setting-inline>.settings-submit{grid-column:1/-1;width:100%!important}.settings-submit{width:100%!important}
  .settings-member-list article{grid-template-columns:46px minmax(0,1fr) auto;gap:9px}.settings-member-list img{width:46px;height:46px}.settings-member-list article form{grid-column:2/-1;width:100%}.settings-member-list article form select{flex:1;min-width:0}.role-pill{font-size:8px}
  .backup-hero{display:grid}.backup-list article{grid-template-columns:36px minmax(0,1fr) auto}.backup-list article form{grid-column:3}.backup-list article>a{grid-column:2}.app-info-card{grid-template-columns:82px minmax(0,1fr);gap:12px}.app-info-card>img{width:82px;height:70px}.app-info-card h3{font-size:20px}
  .banner-history-grid,.avatar-history-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}


/* ============================================================
   V1.7.9.0 · INDEX RIGHT RAIL / MOBILE HEADER / SETTINGS CENTER
============================================================ */

/* 1) Cột 3 index: mỗi card tự chiếm đúng chiều cao, không chồng lên card kế tiếp */
.family-desktop-content .family-feed-layout>.right-rail{
  align-content:start!important;
  grid-auto-rows:max-content!important;
}
.family-desktop-content .family-feed-layout>.right-rail>.card{
  position:relative!important;
  inset:auto!important;
  min-height:0!important;
  height:auto!important;
  margin:0!important;
  overflow:hidden!important;
}
.timeline-mini-visual{
  display:block!important;
  position:relative!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:hidden!important;
  isolation:isolate!important;
}
.timeline-mini-visual .timeline-mini-list{
  position:relative!important;
  display:grid!important;
  grid-template-columns:1fr!important;
  grid-auto-flow:row!important;
  grid-auto-rows:minmax(64px,auto)!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
}
.timeline-mini-visual .timeline-mini-item{
  position:relative!important;
  display:grid!important;
  grid-template-columns:58px 18px minmax(0,1fr) 48px!important;
  min-height:64px!important;
  height:auto!important;
  float:none!important;
  clear:both!important;
}
.timeline-mini-visual .soft-link{
  position:relative!important;
  display:block!important;
  clear:both!important;
  margin-top:12px!important;
}
.stats-card{
  position:relative!important;
  z-index:1!important;
  margin-top:0!important;
  transform:none!important;
}

/* 2) Mobile header: phủ lớp tối nhẹ để icon/logo nổi rõ hơn */
@media(max-width:820px){
  .topbar.topbar-visual{
    position:relative!important;
    isolation:isolate!important;
  }
  .topbar.topbar-visual::before{
    content:""!important;
    position:absolute!important;
    inset:0!important;
    z-index:0!important;
    background:linear-gradient(90deg,rgba(34,21,16,.38),rgba(34,21,16,.22) 55%,rgba(34,21,16,.42))!important;
    pointer-events:none!important;
  }
  .topbar.topbar-visual>*{
    position:relative!important;
    z-index:1!important;
  }
  .topbar-visual .top-actions{
    background:rgba(58,39,31,.42)!important;
    border:1px solid rgba(255,255,255,.22)!important;
    box-shadow:0 5px 16px rgba(30,18,12,.16)!important;
  }
  .topbar-visual .top-actions>a,
  .topbar-visual .top-actions>button{
    color:#fff!important;
  }
}

/* 3) Settings: không dùng cột menu trái của hệ thống.
      Menu cài đặt luôn là drawer gọi bằng nút 3 gạch. */
.settings-page-full{
  width:min(1180px,calc(100% - 28px));
  margin:18px auto 80px;
}
.settings-v1790{width:100%;min-width:0}
.settings-v1790-head{
  display:flex;align-items:center;gap:14px;
  padding:18px 20px;margin-bottom:14px;
  border:1px solid #ead5c3;border-radius:20px;
  background:linear-gradient(135deg,#fffaf4,#f7e8da);
  box-shadow:0 10px 28px rgba(68,40,28,.06)
}
.settings-v1790-head>div>span{font-size:9px;letter-spacing:.16em;color:#a0664e;font-weight:800}
.settings-v1790-head h1{margin:3px 0 2px;font-size:28px;color:#6d2d21}
.settings-v1790-head p{margin:0;font-size:12px;color:#8e7568}
.settings-menu-toggle-always{
  width:48px;height:48px;flex:0 0 48px;
  display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  padding:0;border:1px solid #dfc8b5;border-radius:14px;background:#fff9f2;color:#7c2d22;cursor:pointer
}
.settings-menu-toggle-always span{display:block;width:21px;height:2px;border-radius:2px;background:currentColor}
.settings-v1790-panel{
  min-width:0;padding:20px;
  border:1px solid #ead6c5;border-radius:20px;background:#fffaf5;
  box-shadow:0 12px 30px rgba(72,42,28,.05)
}
.settings-v1790-nav{
  position:fixed!important;left:0!important;top:0!important;bottom:0!important;
  z-index:120100!important;width:min(88vw,350px)!important;
  padding:14px 12px!important;background:#fff9f3!important;
  border-right:1px solid #dfc9b7!important;border-radius:0 20px 20px 0!important;
  box-shadow:20px 0 60px rgba(55,31,22,.24)!important;
  transform:translateX(-104%)!important;transition:transform .24s ease!important;
  overflow-y:auto!important;
}
.settings-v1790-nav.open{transform:translateX(0)!important}
.settings-v1790-nav-title{
  display:flex;align-items:center;justify-content:space-between;
  padding:8px 8px 14px;margin-bottom:8px;border-bottom:1px solid #ead9cc;color:#6d2d21
}
.settings-v1790-nav-title b{font-size:19px}
.settings-nav-close{display:grid!important;place-items:center;width:38px;height:38px;border:0;border-radius:50%;background:#f2e2d5;color:#713428;font-size:25px;cursor:pointer}
.settings-v1790-nav>a{
  display:grid;grid-template-columns:40px minmax(0,1fr) 16px;gap:9px;align-items:center;
  padding:11px 10px;margin:3px 0;border-radius:13px;color:#614137
}
.settings-v1790-nav>a:hover{background:#f4e6da}
.settings-v1790-nav>a.active{background:linear-gradient(135deg,#8d2e21,#aa4935);color:#fff}
.settings-v1790-nav>a>i{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:#f2dfd0;font-style:normal;color:#8b3729}
.settings-v1790-nav>a.active>i{background:rgba(255,255,255,.16);color:#fff}
.settings-v1790-nav>a b{display:block;font-size:13px}
.settings-v1790-nav>a small{display:block;margin-top:2px;font-size:9px;line-height:1.3;color:#9b8073}
.settings-v1790-nav>a.active small{color:#f5ddd3}
.settings-v1790-nav>a em{font-style:normal;font-size:19px;color:#b07c66}.settings-v1790-nav>a.active em{color:#fff}
.settings-nav-scrim{
  position:fixed;inset:0;z-index:120090;
  background:rgba(45,29,22,.44);backdrop-filter:blur(3px)
}
.settings-nav-scrim[hidden]{display:none!important}

.settings-subtabs{
  display:flex;gap:7px;flex-wrap:wrap;
  margin:-3px 0 19px;padding:6px;
  background:#f4e5d8;border:1px solid #ead7c7;border-radius:14px
}
.settings-subtabs a{
  padding:9px 14px;border-radius:10px;color:#6b493d;font-size:12px;font-weight:700
}
.settings-subtabs a.active{background:#963525;color:#fff;box-shadow:0 4px 12px rgba(123,42,30,.15)}
.settings-section-title{display:flex;align-items:center;gap:13px;padding-bottom:16px;margin-bottom:17px;border-bottom:1px solid #ecddd1}
.settings-section-title>span{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;background:#f3dfce;color:#8e3528;font-size:22px}
.settings-section-title h2{margin:0;color:#6f2f23;font-size:24px}.settings-section-title p{margin:4px 0 0;color:#8d766a;font-size:12px}
.settings-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.settings-box{background:#fffdf9;border:1px solid #ecdacb;border-radius:16px;padding:17px;margin-bottom:14px;min-width:0}
.settings-box h3{margin:0 0 13px;color:#733326;font-size:17px}
.settings-box label,.settings-form label{display:grid;gap:7px;margin-bottom:12px;font-size:12px;font-weight:700;color:#65483c}
.settings-box input,.settings-box select,.settings-box textarea,.settings-form input,.settings-form select,.settings-form textarea{width:100%;min-width:0;padding:12px 13px;border:1px solid #dfc6b3;border-radius:11px;background:#fffaf5;color:#49352d;outline:none}
.settings-help{font-size:10px;line-height:1.55;color:#987d70}
.settings-submit,.settings-link-btn{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  min-width:130px!important;min-height:42px!important;padding:10px 17px!important;
  border:0!important;border-radius:11px!important;background:linear-gradient(135deg,#8e2f22,#a7422f)!important;color:#fff!important;font-weight:750!important;text-decoration:none!important
}
.setting-switch{grid-template-columns:auto 42px 1fr!important;align-items:center!important}
.setting-switch>input{position:absolute;opacity:0;width:1px!important}.setting-switch>span{width:38px;height:22px;border-radius:999px;background:#dbc9bb;position:relative}.setting-switch>span::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:.2s}.setting-switch>input:checked+span{background:#9b392b}.setting-switch>input:checked+span::after{left:19px}
.verification-state{display:flex;align-items:center;gap:13px;padding:14px;border:1px solid #e4cfbd;border-radius:14px;background:#fff9f3;margin-bottom:14px}.verification-state>span{width:46px;height:46px;display:grid;place-items:center;border-radius:50%;background:#e9d9cc;color:#7b4e40;font-size:22px;font-weight:900}.verification-state.verified>span{background:#2b8a67;color:#fff}.verification-state b,.verification-state small{display:block}.verification-state small{margin-top:3px;color:#947a6e}
.verified-badge{display:inline-grid;place-items:center;width:15px;height:15px;margin-left:5px;border-radius:50%;background:#2386e8;color:#fff;font-size:9px;font-weight:900;vertical-align:middle;box-shadow:0 0 0 2px #fff}
.backup-action-card p,.reset-family-card p{font-size:11px;line-height:1.65;color:#866f63}.reset-family-card{border-color:#e7b7ae;background:#fff8f6}.danger-big{width:100%;padding:13px;border:0;border-radius:11px;background:#bd3028;color:#fff;font-weight:850;cursor:pointer}
.avatar-setting-inline{display:grid;grid-template-columns:88px minmax(0,1fr) auto;gap:14px;align-items:center}.avatar-setting-inline>img{width:88px;height:88px;border-radius:18px;object-fit:cover;border:3px solid #efd7c2}
.settings-info-row{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-top:1px dashed #ead9cb}.settings-info-row span{color:#8a7064;font-size:12px}.settings-info-row b{font-size:12px;color:#60362b}
.simple-state-page{min-height:65dvh;display:grid;place-items:center;padding:24px}.simple-state-card{width:min(520px,100%);padding:28px;text-align:center;border:1px solid #ead6c4;border-radius:22px;background:#fffaf5}.simple-state-card>span{width:64px;height:64px;margin:auto;display:grid;place-items:center;border-radius:50%;background:#f0d9cc;color:#8b3024;font-size:30px}.simple-state-card.success>span{background:#2f8a69;color:#fff}.simple-state-card a{display:inline-block;margin-top:15px;padding:10px 16px;border-radius:10px;background:#8b3024;color:#fff}

/* 4) Messenger hamburger: nằm trong header danh sách, không còn treo giữa mép màn hình */
.messages-desktop-menu-toggle{
  position:static!important;left:auto!important;top:auto!important;
  width:40px!important;height:40px!important;flex:0 0 40px!important;
  border:1px solid #dfc9b7!important;border-radius:11px!important;
  background:#fff8f1!important;box-shadow:none!important
}
.messenger-list-header{
  grid-template-columns:auto minmax(0,1fr) auto!important;
}
.messenger-list-header>div{min-width:0}
@media(max-width:780px){
  .messages-desktop-menu-toggle{display:none!important}
}

/* Responsive settings */
@media(max-width:820px){
  .settings-page-full{width:100%;margin:10px 0 80px;padding:0 10px}
  .settings-v1790-head{padding:13px 12px;border-radius:16px}
  .settings-v1790-head h1{font-size:23px}.settings-v1790-head p{font-size:10px}
  .settings-v1790-panel{padding:13px 10px;border-radius:16px}
  .settings-subtabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
  .settings-subtabs a{text-align:center;padding:9px 5px;font-size:11px}
  .settings-grid-2{grid-template-columns:1fr}
  .settings-section-title>span{width:42px;height:42px;flex:0 0 42px}.settings-section-title h2{font-size:20px}.settings-section-title p{font-size:10px}
  .settings-box{padding:14px 12px}
  .avatar-setting-inline{grid-template-columns:72px minmax(0,1fr)}.avatar-setting-inline>img{width:72px;height:72px}.avatar-setting-inline>.settings-submit{grid-column:1/-1;width:100%!important}
  .settings-submit,.settings-link-btn{width:100%!important}
  .banner-history-grid,.avatar-history-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}


/* ============================================================
   V1.7.9.1 · SETTINGS 3 CỘT + PRIVACY ACCOUNT MATRIX
============================================================ */
.settings-three-columns{
  width:min(1460px,calc(100% - 28px));
  margin:18px auto 88px;
  display:grid;
  grid-template-columns:238px minmax(0,1fr) 270px;
  gap:18px;
  align-items:start;
}
.settings-three-columns .settings-col-app .family-desktop-sidebar{
  position:sticky!important;
  top:16px!important;
  width:100%!important;
  max-height:calc(100dvh - 32px)!important;
  overflow:auto!important;
}
.settings-col-content{min-width:0}
.settings-col-content .page-cover{margin-bottom:14px}
.settings-center-card{
  min-width:0;
  border:1px solid #ead6c5;
  border-radius:20px;
  background:#fffaf5;
  padding:18px;
  box-shadow:0 12px 30px rgba(72,42,28,.05)
}
.settings-center-head{padding:0 2px 15px;border-bottom:1px solid #ecddd1;margin-bottom:14px}
.settings-center-head>span{font-size:9px;letter-spacing:.16em;color:#a0664e;font-weight:800}
.settings-center-head h1{margin:4px 0 3px;color:#6d2d21;font-size:28px}
.settings-center-head p{margin:0;color:#8e7568;font-size:12px}

.settings-col-nav{min-width:0}
.settings-nav-card{
  position:sticky;
  top:16px;
  padding:11px;
  border:1px solid #e8d3c1;
  border-radius:18px;
  background:#fff9f3;
  box-shadow:0 10px 25px rgba(68,40,28,.06)
}
.settings-nav-title{
  display:flex;align-items:center;gap:10px;
  padding:8px 8px 12px;margin-bottom:5px;
  border-bottom:1px solid #ead9cc
}
.settings-nav-title>span{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:#f1ded0;color:#8a3327}
.settings-nav-title b,.settings-nav-title small{display:block}
.settings-nav-title b{font-size:16px;color:#6d3025}
.settings-nav-title small{font-size:9px;color:#9b8073;margin-top:2px}
.settings-nav-card>a{
  display:grid;
  grid-template-columns:36px minmax(0,1fr) 14px;
  gap:8px;
  align-items:center;
  padding:10px 9px;
  margin:3px 0;
  border-radius:12px;
  color:#65453a;
  text-decoration:none
}
.settings-nav-card>a:hover{background:#f4e5d8}
.settings-nav-card>a.active{
  background:linear-gradient(135deg,#8d2e21,#aa4935);
  color:#fff;
  box-shadow:0 6px 14px rgba(125,42,31,.15)
}
.settings-nav-card>a i{
  width:34px;height:34px;display:grid;place-items:center;
  border-radius:10px;background:#f1dfd1;
  color:#8b3729;font-style:normal
}
.settings-nav-card>a.active i{background:rgba(255,255,255,.15);color:#fff}
.settings-nav-card>a span{font-size:12px;font-weight:750}
.settings-nav-card>a em{font-style:normal;font-size:18px;color:#b07c66}
.settings-nav-card>a.active em{color:#fff}

/* Matrix quyền theo tài khoản */
.permission-search{
  display:flex;align-items:center;gap:8px;
  padding:0 12px;margin-bottom:12px;
  border:1px solid #dfc7b5;border-radius:12px;background:#fffaf6
}
.permission-search span{font-size:18px;color:#9c6d59}
.permission-search input{
  border:0!important;background:transparent!important;padding:12px 0!important;box-shadow:none!important
}
.permission-table-head,
.permission-account-row{
  display:grid;
  grid-template-columns:minmax(260px,1fr) 92px 92px 92px;
  align-items:center;
}
.permission-table-head{
  padding:8px 12px;
  border-radius:10px;
  background:#f5e7dc;
  color:#7a5142;
  font-size:10px;
  font-weight:800;
  text-align:center
}
.permission-table-head span:first-child{text-align:left}
.permission-account-list{display:grid;gap:7px;margin-top:8px}
.permission-account-row{
  padding:10px 12px;
  border:1px solid #ecd9ca;
  border-radius:13px;
  background:#fffdf9
}
.permission-person{display:flex;align-items:center;gap:10px;min-width:0}
.permission-person img{width:44px;height:44px;border-radius:13px;object-fit:cover;border:1px solid #dec8b6}
.permission-person b,.permission-person small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.permission-person b{font-size:12px;color:#5d382e}
.permission-person small{font-size:9px;color:#9a7d70;margin-top:3px}
.permission-check{display:grid!important;place-items:center!important;margin:0!important}
.permission-check input{position:absolute;opacity:0;width:1px!important;height:1px!important}
.permission-check span{
  width:34px;height:34px;display:grid;place-items:center;
  border:1px solid #d9c2b1;border-radius:10px;background:#fff8f2;color:transparent;
  transition:.16s
}
.permission-check input:checked+span{background:#9a3628;border-color:#9a3628;color:#fff}
.permission-check input:disabled+span{background:#d9c6b7;border-color:#d9c6b7;color:#fff;opacity:.7}
.permission-save{margin-top:14px!important}

/* Backup */
.backup-create-box{
  display:flex;align-items:center;justify-content:space-between;gap:16px
}
.backup-create-box h3{margin:0 0 5px}.backup-create-box p{margin:0;color:#8d7468;font-size:11px;line-height:1.5}
.backup-list{display:grid;gap:9px}
.backup-row{
  display:grid;grid-template-columns:48px minmax(0,1fr) auto;
  gap:11px;align-items:center;
  padding:12px;border:1px solid #ead6c6;border-radius:14px;background:#fffdf9
}
.backup-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:#f1dfd0;color:#8d3327;font-size:20px}
.backup-row b,.backup-row small,.backup-row code{display:block}
.backup-row b{color:#633a30;font-size:12px}.backup-row small{margin-top:3px;color:#93796d;font-size:9px}.backup-row code{margin-top:4px;color:#a07867;font-size:8px}
.backup-actions{display:flex;align-items:center;gap:6px}
.backup-actions a,.backup-actions button{border:0;border-radius:9px;padding:8px 10px;background:#f2e2d5;color:#7c3528;font-size:10px;font-weight:750}
.backup-actions button.danger{background:#fee7e3;color:#b6302a}
.cron-help code{display:block;padding:11px;border-radius:10px;background:#3b2a24;color:#fae9dc;font-size:10px;overflow:auto}
.cron-help small{display:block;margin-top:8px;color:#8e7568}

/* SMTP */
.smtp-test-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end}
.smtp-test-form label{margin:0!important}
.settings-submit.secondary{background:#ead8c8!important;color:#6d352a!important}

/* Messenger: nút 3 gạch luôn nằm dưới drawer */
.messages-desktop-menu-toggle{
  z-index:20!important;
  position:relative!important
}
.messages-nav-scrim{z-index:1200!important}
.messages-nav-drawer{z-index:1201!important}
.messages-nav-close{z-index:1202!important}

/* Mobile */
@media(max-width:980px){
  .settings-three-columns{
    width:100%;
    margin:10px 0 84px;
    padding:0 10px;
    display:flex;
    flex-direction:column
  }
  .settings-col-app{display:none!important}
  .settings-col-nav{order:-1;width:100%}
  .settings-nav-card{
    position:static;
    display:flex;
    gap:6px;
    overflow-x:auto;
    padding:7px;
    border-radius:15px
  }
  .settings-nav-title{display:none}
  .settings-nav-card>a{
    flex:0 0 auto;
    grid-template-columns:30px auto;
    padding:7px 9px;
    margin:0
  }
  .settings-nav-card>a i{width:30px;height:30px}
  .settings-nav-card>a span{font-size:10px}
  .settings-nav-card>a em{display:none}
  .settings-col-content{width:100%}
  .settings-center-card{padding:13px 10px;border-radius:16px}
  .settings-center-head h1{font-size:23px}
  .permission-table-head{display:none}
  .permission-account-row{
    grid-template-columns:minmax(0,1fr) repeat(3,54px);
    padding:9px 8px
  }
  .permission-person img{width:40px;height:40px}
  .permission-check span{width:32px;height:32px}
  .backup-create-box{display:grid}
  .backup-row{grid-template-columns:44px minmax(0,1fr)}
  .backup-actions{grid-column:1/-1;justify-content:flex-end}
  .smtp-test-form{grid-template-columns:1fr}
}
@media(max-width:520px){
  .permission-account-row{
    grid-template-columns:minmax(0,1fr) repeat(3,44px);
  }
  .permission-person img{width:36px;height:36px}
  .permission-person b{font-size:11px}
  .permission-person small{font-size:8px}
  .permission-check span{width:30px;height:30px}
}


/* ============================================================
   V1.7.9.3 · MOBILE HEADER + UNIVERSAL PAGE TITLE / BACK
============================================================ */

/* Desktop không hiện thanh tiêu đề mobile */
.mobile-page-titlebar{display:none}

/* Header mobile:
   - banner của từng trang vẫn giữ
   - lớp tối nhẹ để logo/icon rõ hơn
   - khi cuộn banner trôi đi, titlebar ở lại */
@media(max-width:820px){
  .topbar.topbar-visual{
    position:relative!important;
    top:auto!important;
    height:68px!important;
    min-height:68px!important;
    padding:
      env(safe-area-inset-top)
      11px
      0!important;
    box-sizing:content-box!important;
    background-image:var(--header-cover)!important;
    background-size:cover!important;
    background-position:center center!important;
    background-repeat:no-repeat!important;
    border-bottom:0!important;
    box-shadow:none!important;
    isolation:isolate!important;
    z-index:35!important;
  }

  .topbar.topbar-visual::before{
    content:""!important;
    position:absolute!important;
    inset:0!important;
    z-index:0!important;
    background:
      linear-gradient(90deg,
        rgba(48,28,21,.48) 0%,
        rgba(55,32,23,.23) 44%,
        rgba(42,25,19,.46) 100%)!important;
    pointer-events:none!important;
  }

  .topbar.topbar-visual>*{
    position:relative!important;
    z-index:1!important;
  }

  .topbar-visual .topbar-mobile-brand{
    display:flex!important;
    visibility:visible!important;
    pointer-events:auto!important;
    align-items:center!important;
    justify-content:center!important;
    width:68px!important;
    height:54px!important;
    padding:0!important;
    border-radius:14px!important;
    background:rgba(255,250,244,.76)!important;
    border:1px solid rgba(255,255,255,.42)!important;
    box-shadow:0 4px 15px rgba(37,23,18,.15)!important;
    backdrop-filter:blur(7px)!important;
  }

  .topbar-visual .topbar-mobile-brand img{
    width:auto!important;
    max-width:58px!important;
    height:44px!important;
    object-fit:contain!important;
    filter:none!important;
  }

  .topbar-visual .top-actions{
    display:flex!important;
    align-items:center!important;
    gap:5px!important;
    margin-left:auto!important;
    padding:4px!important;
    border-radius:15px!important;
    background:rgba(255,250,244,.78)!important;
    border:1px solid rgba(255,255,255,.44)!important;
    box-shadow:0 4px 15px rgba(37,23,18,.15)!important;
    backdrop-filter:blur(8px)!important;
  }

  .topbar-visual .header-message-btn,
  .topbar-visual .account-menu-toggle{
    width:43px!important;
    height:43px!important;
    min-width:43px!important;
    border:0!important;
    border-radius:12px!important;
    background:rgba(255,255,255,.34)!important;
    color:#6d3025!important;
    box-shadow:none!important;
  }

  .topbar-visual .header-message-icon{
    color:#6d3025!important;
    font-size:20px!important;
  }

  .topbar-visual .account-menu-toggle img{
    width:39px!important;
    height:39px!important;
    object-fit:cover!important;
    border:2px solid rgba(124,66,48,.18)!important;
  }

  /* Thanh title giống ứng dụng mobile:
     mũi tên trái - title giữa - khoảng trống cân đối bên phải */
  .mobile-page-titlebar{
    position:sticky!important;
    top:0!important;
    z-index:72!important;
    display:grid!important;
    grid-template-columns:44px minmax(0,1fr) 44px!important;
    align-items:center!important;
    min-height:48px!important;
    padding:0 8px!important;
    background:rgba(255,250,245,.96)!important;
    border-bottom:1px solid #ead6c5!important;
    box-shadow:0 3px 12px rgba(73,43,30,.055)!important;
    backdrop-filter:blur(12px)!important;
  }

  .mobile-page-back{
    width:38px!important;
    height:38px!important;
    display:grid!important;
    place-items:center!important;
    border:0!important;
    border-radius:11px!important;
    background:transparent!important;
    color:#733529!important;
    cursor:pointer!important;
    padding:0!important;
  }

  .mobile-page-back:hover,
  .mobile-page-back:active{
    background:#f1dfd1!important;
  }

  .mobile-page-back svg{
    width:22px!important;
    height:22px!important;
    fill:none!important;
    stroke:currentColor!important;
    stroke-width:1.8!important;
    stroke-linecap:round!important;
    stroke-linejoin:round!important;
  }

  .mobile-page-title{
    min-width:0!important;
    text-align:center!important;
    padding:0 5px!important;
  }

  .mobile-page-title b{
    display:block!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    color:#4f332a!important;
    font-size:15px!important;
    font-weight:800!important;
    line-height:1.25!important;
  }

  .mobile-page-title-spacer{
    width:38px!important;
    height:38px!important;
  }

  /* Nội dung không dính sát titlebar */
  .app-shell{
    padding-top:0!important;
  }

  /* Tin nhắn khi đã mở một cuộc chat có header riêng:
     ẩn titlebar chung để tránh 2 nút quay lại. */
  body:has(.messenger-app-v2.mobile-chat-open) .mobile-page-titlebar{
    display:none!important;
  }
}

/* Màn hình rất nhỏ: giảm banner nhưng title vẫn rõ */
@media(max-width:390px){
  .topbar.topbar-visual{
    height:62px!important;
    min-height:62px!important;
    padding-left:8px!important;
    padding-right:8px!important;
  }
  .topbar-visual .topbar-mobile-brand{
    width:61px!important;
    height:49px!important;
  }
  .topbar-visual .topbar-mobile-brand img{
    max-width:52px!important;
    height:39px!important;
  }
  .topbar-visual .header-message-btn,
  .topbar-visual .account-menu-toggle{
    width:39px!important;
    height:39px!important;
    min-width:39px!important;
  }
  .topbar-visual .account-menu-toggle img{
    width:35px!important;
    height:35px!important;
  }
  .mobile-page-title b{font-size:14px!important}
}


/* ============================================================
   V1.7.9.4 · MOBILE HEADER CLEAN + BACK ONLY ON SUBVIEWS
============================================================ */
@media(max-width:820px){
  /* Không phủ lớp tối lên ảnh header nữa */
  .topbar.topbar-visual::before{
    display:none!important;
    content:none!important;
    background:none!important;
  }

  /* Logo/icon dùng nền sáng mờ để vẫn đọc rõ trên mọi banner,
     nhưng ảnh phía sau giữ nguyên màu thật. */
  .topbar-visual .topbar-mobile-brand{
    background:rgba(255,250,244,.86)!important;
    border-color:rgba(255,255,255,.68)!important;
    backdrop-filter:blur(6px)!important;
  }
  .topbar-visual .top-actions{
    background:rgba(255,250,244,.88)!important;
    border-color:rgba(255,255,255,.72)!important;
    backdrop-filter:blur(7px)!important;
  }

  /* Mặc định không có title/back.
     Chỉ element subview được render từ PHP mới xuất hiện. */
  .mobile-page-titlebar{
    display:none!important;
  }
  .mobile-page-titlebar.mobile-page-titlebar-subview{
    display:grid!important;
  }

  .mobile-page-back{
    text-decoration:none!important;
  }

  /* Chat mobile có header riêng, tránh title kép */
  body:has(.messenger-app-v2.mobile-chat-open) .mobile-page-titlebar-subview{
    display:none!important;
  }
}


/* ============================================================
   V1.7.9.5 · HEADER SOFT / WYSIWYG / SIDEBAR EVENT
============================================================ */

/* Word-like editor */
.rich-editor-storage{
  position:absolute!important;
  width:1px!important;height:1px!important;
  opacity:0!important;pointer-events:none!important;
  overflow:hidden!important;
}
.rich-editor-surface{
  min-height:190px;
  padding:16px 17px;
  outline:0;
  background:#fffdf9;
  color:#49352d;
  font-size:14px;
  line-height:1.72;
  cursor:text;
  overflow-wrap:anywhere;
}
.rich-editor-surface:empty::before{
  content:attr(data-placeholder);
  color:#a59186;
  pointer-events:none;
}
.rich-editor-surface h4{margin:10px 0 7px;font-size:18px;color:#713126}
.rich-editor-surface blockquote{margin:10px 0;padding:9px 13px;border-left:3px solid #b76a51;background:#f8ece3;border-radius:0 9px 9px 0}
.rich-editor-surface ul,.rich-editor-surface ol{margin:8px 0;padding-left:25px}
.rich-editor-surface div{min-height:1.5em}
.edit-story-editor .rich-editor-surface{min-height:210px}
.story-editor-toolbar button{transition:.16s ease}
.story-editor-toolbar button:hover{background:#ead8ca!important;color:#792f22!important;transform:translateY(-1px)}

/* Header: bỏ cảm giác các khối vuông thô, chuyển sang kính mềm */
@media(max-width:820px){
  .topbar-visual .topbar-mobile-brand{
    width:61px!important;
    height:48px!important;
    padding:3px 5px!important;
    border-radius:18px!important;
    background:linear-gradient(145deg,rgba(255,253,249,.82),rgba(255,248,239,.66))!important;
    border:1px solid rgba(255,255,255,.82)!important;
    box-shadow:0 5px 18px rgba(66,39,28,.10)!important;
    backdrop-filter:blur(10px) saturate(1.08)!important;
  }
  .topbar-visual .topbar-mobile-brand img{
    max-width:51px!important;height:39px!important;
  }
  .topbar-visual .top-actions{
    gap:1px!important;
    padding:3px 4px!important;
    border-radius:20px!important;
    background:linear-gradient(145deg,rgba(255,253,249,.84),rgba(255,248,239,.70))!important;
    border:1px solid rgba(255,255,255,.82)!important;
    box-shadow:0 5px 18px rgba(66,39,28,.10)!important;
    backdrop-filter:blur(10px) saturate(1.08)!important;
  }
  .topbar-visual .header-message-btn,
  .topbar-visual .account-menu-toggle{
    width:40px!important;height:40px!important;min-width:40px!important;
    border-radius:50%!important;
    background:transparent!important;
  }
  .topbar-visual .header-message-btn:active,
  .topbar-visual .account-menu-toggle:active{
    background:rgba(140,67,45,.09)!important;
  }
  .topbar-visual .account-menu-toggle img{
    width:36px!important;height:36px!important;
    border-radius:50%!important;
    border:1.5px solid rgba(132,68,47,.22)!important;
  }

  /* Hồ sơ thành viên đã có Back ở titlebar trên cùng */
  .member-profile-head .member-back{
    display:none!important;
  }
}

/* Event card chuyển từ cột 3 Home sang dưới cột 1 ở các danh mục khác */
.family-sidebar-event-card{
  margin-top:14px;
  padding:14px;
  border:1px solid #ead4c1;
  border-radius:17px;
  background:linear-gradient(180deg,#fffaf4,#fff5e9);
  box-shadow:0 9px 24px rgba(74,42,27,.05);
}
.family-sidebar-event-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.family-sidebar-event-head span{font-size:9px;letter-spacing:.11em;font-weight:850;color:#9a513a}
.family-sidebar-event-head small{font-size:9px;color:#9d8172}
.family-sidebar-event-card h3{margin:5px 0 10px;color:#6e3024;font-size:15px}
.family-sidebar-event-days{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin-bottom:10px}
.family-sidebar-event-days>span{position:relative;display:grid;place-items:center;gap:2px;padding:6px 2px;border:1px solid #ead8c8;border-radius:9px;background:#fffaf5;color:#78594c}
.family-sidebar-event-days small{font-size:7px}.family-sidebar-event-days b{font-size:10px}
.family-sidebar-event-days .today{background:#9b392b;border-color:#9b392b;color:#fff}
.family-sidebar-event-days .has-event::after{content:"";position:absolute;bottom:2px;width:4px;height:4px;border-radius:50%;background:#d99a2b}
.family-sidebar-event-list{display:grid;gap:5px}
.family-sidebar-event-list>a{display:grid;grid-template-columns:39px minmax(0,1fr);gap:8px;align-items:center;padding:7px;border-radius:10px;color:#634337;text-decoration:none;background:rgba(255,255,255,.62)}
.family-sidebar-event-list>a>span{width:36px;height:36px;display:grid;place-items:center;border-radius:9px;background:#f3e1d2;line-height:1}
.family-sidebar-event-list>a>span b{font-size:11px;color:#8b3327}.family-sidebar-event-list>a>span small{font-size:7px;color:#a27d6d}
.family-sidebar-event-list strong,.family-sidebar-event-list div small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.family-sidebar-event-list strong{font-size:10px}.family-sidebar-event-list div small{font-size:8px;color:#9a7c6e;margin-top:2px}
.family-sidebar-event-list>a.soon{box-shadow:inset 3px 0 #d9a227}
.family-sidebar-event-list>a.live{box-shadow:inset 3px 0 #c83b2f;background:#fff0ec}
.family-sidebar-event-more{display:block;margin-top:9px;padding:7px;text-align:center;border-radius:9px;background:#f2dfcf;color:#8b392a;font-size:9px;text-decoration:none}


/* ============================================================
   V1.7.9.6 · MOBILE NAV / SETTINGS / AUTH HEADER
============================================================ */

/* Login/Đăng ký: dùng ảnh Tường gia đình ngay trên header */
body:has(.auth-screen) .topbar.topbar-visual{
  background-image:var(--header-cover)!important;
  background-size:cover!important;
  background-position:center!important;
  min-height:92px;
}
body:has(.auth-screen) .topbar.topbar-visual::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(255,252,246,.04),rgba(101,51,35,.08));
}

/* Nút submit cài đặt cùng hàng, không kéo dài tùy tiện */
.settings-form-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  margin-top:4px;
}
.settings-form .settings-submit,
.settings-box>.settings-submit,
.avatar-setting-inline .settings-submit{
  width:auto!important;
  min-width:150px;
  min-height:42px;
  margin:0!important;
  padding:10px 18px!important;
  align-self:auto!important;
}
.settings-form label>small{
  display:block;
  margin-top:6px;
  color:#9a7d70;
  font-size:10px;
}

/* Desktop: mobile settings button hidden */
.settings-mobile-menu-toggle,
.settings-mobile-scrim,
.settings-mobile-close{display:none}

@media(max-width:820px){
  /* Mobile header chỉ còn banner - bỏ logo, tin nhắn và avatar trên đầu */
  .topbar.topbar-visual{
    height:60px!important;
    min-height:60px!important;
    padding:0!important;
  }
  .topbar-visual .topbar-mobile-brand,
  .topbar-visual .top-actions{
    display:none!important;
  }

  /* Login vẫn cho banner cao hơn một chút */
  body:has(.auth-screen) .topbar.topbar-visual{
    height:78px!important;
    min-height:78px!important;
  }

  /* Dock 6 mục, không còn Ghi ký ức */
  .family-mobile-dock{
    display:grid!important;
    grid-template-columns:repeat(6,minmax(0,1fr))!important;
    gap:1px!important;
    padding:5px max(3px,env(safe-area-inset-right)) calc(5px + env(safe-area-inset-bottom)) max(3px,env(safe-area-inset-left))!important;
    min-height:66px!important;
  }
  .family-mobile-dock>a,
  .family-mobile-dock>button{
    width:100%!important;
    min-width:0!important;
    min-height:51px!important;
    margin:0!important;
    padding:4px 1px!important;
    border:0!important;
    border-radius:12px!important;
    background:transparent!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    color:#765347!important;
    position:relative!important;
  }
  .family-mobile-dock>a.active,
  .family-mobile-dock>button.active{
    background:#f1dfd0!important;
    color:#8d2f22!important;
  }
  .family-mobile-dock small{
    max-width:100%;
    font-size:8.5px!important;
    white-space:nowrap!important;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .family-mobile-dock .mobile-nav-icon{
    width:25px!important;height:25px!important;
  }
  .family-mobile-dock .mobile-nav-icon svg{
    width:21px!important;height:21px!important;
  }
  .mobile-nav-avatar{
    width:27px;height:27px;display:block;
    border-radius:50%;overflow:hidden;
    border:1.5px solid #d5ad94;
  }
  .mobile-nav-avatar img{width:100%;height:100%;object-fit:cover}
  .mobile-message-icon{position:relative}
  .mobile-dock-badge{
    position:absolute;right:-7px;top:-5px;
    min-width:15px;height:15px;padding:0 4px;
    border-radius:99px;background:#b52e27;color:#fff;
    display:grid;place-items:center;font-size:7px;line-height:1;
    box-shadow:0 0 0 2px #fff8f1;
  }

  /* Account bottom sheet */
  .mobile-account-sheet[hidden]{display:none!important}
  .mobile-account-sheet{
    position:fixed;inset:0;z-index:2200;
    display:flex;align-items:flex-end;justify-content:center;
  }
  .mobile-account-sheet-scrim{
    position:absolute;inset:0;border:0;background:rgba(48,31,24,.42);
    backdrop-filter:blur(3px);
  }
  .mobile-account-sheet-card{
    position:relative;z-index:1;
    width:min(100% - 18px,430px);
    margin:0 9px calc(73px + env(safe-area-inset-bottom));
    padding:12px;
    border:1px solid #ead6c5;
    border-radius:21px;
    background:#fffaf5;
    box-shadow:0 18px 55px rgba(53,31,22,.25);
    animation:nhMobileSheetIn .22s ease both;
  }
  @keyframes nhMobileSheetIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
  .mobile-account-sheet-user{
    display:flex;align-items:center;gap:11px;
    padding:8px 8px 13px;margin-bottom:5px;border-bottom:1px solid #eadbce;
  }
  .mobile-account-sheet-user img{width:48px;height:48px;border-radius:50%;object-fit:cover}
  .mobile-account-sheet-user b,.mobile-account-sheet-user small{display:block}
  .mobile-account-sheet-user b{font-size:14px;color:#5d3026}
  .mobile-account-sheet-user small{margin-top:3px;font-size:10px;color:#99796b}
  .mobile-account-sheet-card>a{
    display:grid;grid-template-columns:38px minmax(0,1fr) 16px;gap:8px;align-items:center;
    padding:10px 8px;border-radius:12px;text-decoration:none;color:#65443a;
  }
  .mobile-account-sheet-card>a:active{background:#f4e4d8}
  .mobile-account-sheet-card>a>span{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:#f0dfd2}
  .mobile-account-sheet-card>a b,.mobile-account-sheet-card>a small{display:block}
  .mobile-account-sheet-card>a b{font-size:12px}.mobile-account-sheet-card>a small{margin-top:2px;font-size:9px;color:#9a7b6d}
  .mobile-account-sheet-card>a em{font-style:normal;font-size:19px;color:#b48a75}
  .mobile-account-sheet-card>a.danger{color:#a52f2b}

  /* Settings mobile:
     cột 1 desktop không dùng; menu cột 3 thành drawer hamburger */
  .settings-three-columns{
    display:block!important;
    width:100%!important;
    padding:0 10px!important;
    margin:10px 0 84px!important;
  }
  .settings-col-app{display:none!important}
  .settings-mobile-menu-toggle{
    display:flex!important;
    width:100%;
    align-items:center;
    gap:10px;
    margin:0 0 10px;
    padding:10px 12px;
    border:1px solid #e7d2c0;
    border-radius:14px;
    background:#fff9f3;
    color:#68362b;
    text-align:left;
    box-shadow:0 5px 15px rgba(67,39,27,.05);
  }
  .settings-hamburger{width:34px;height:34px;display:grid;place-content:center;gap:4px;border-radius:10px;background:#f1dfd0}
  .settings-hamburger i{display:block;width:16px;height:1.5px;border-radius:2px;background:#8b3528}
  .settings-mobile-menu-toggle>span:last-child b,
  .settings-mobile-menu-toggle>span:last-child small{display:block}
  .settings-mobile-menu-toggle b{font-size:13px}
  .settings-mobile-menu-toggle small{font-size:9px;color:#9c7c6e;margin-top:2px}

  .settings-col-nav{
    position:fixed!important;
    inset:0!important;
    z-index:2300!important;
    display:none!important;
    width:auto!important;
  }
  .settings-col-nav.open{display:block!important}
  .settings-mobile-scrim{
    display:block!important;
    position:absolute;inset:0;border:0;background:rgba(49,31,24,.42);
    backdrop-filter:blur(3px);
  }
  .settings-col-nav .settings-nav-card{
    position:absolute!important;
    left:10px!important;
    right:10px!important;
    bottom:calc(76px + env(safe-area-inset-bottom))!important;
    top:auto!important;
    display:block!important;
    max-height:min(72vh,620px)!important;
    overflow:auto!important;
    padding:10px!important;
    border-radius:20px!important;
    background:#fffaf5!important;
    animation:nhMobileSheetIn .22s ease both;
  }
  .settings-nav-title{
    display:grid!important;
    grid-template-columns:38px minmax(0,1fr) 36px!important;
    align-items:center!important;
    margin-bottom:7px!important;
  }
  .settings-mobile-close{
    display:grid!important;
    width:34px;height:34px;place-items:center;
    border:0;border-radius:10px;background:#f1e1d4;color:#76372c;font-size:22px;
  }
  .settings-nav-card>a{
    display:grid!important;
    grid-template-columns:36px minmax(0,1fr) 14px!important;
    width:100%!important;
    margin:3px 0!important;
    padding:9px!important;
  }
  .settings-nav-card>a i{width:34px!important;height:34px!important}
  .settings-nav-card>a span{font-size:11px!important}
  .settings-nav-card>a em{display:block!important}

  .settings-col-content{width:100%!important}
  .settings-center-card{padding:13px 10px!important}
  .settings-form-actions{justify-content:stretch!important}
  .settings-form-actions .settings-submit,
  .settings-form .settings-submit,
  .avatar-setting-inline .settings-submit{
    width:100%!important;
    min-width:0!important;
  }
}

@media(max-width:390px){
  .family-mobile-dock small{font-size:7.8px!important}
  .family-mobile-dock .mobile-nav-icon svg{width:20px!important;height:20px!important}
}


/* ============================================================
   V1.7.9.7 · SETTINGS BUTTON SCALE + MOBILE ONE-LINE TABS
============================================================ */

/* Desktop: các nút hành động trong Cài đặt trở về kích thước gọn */
@media(min-width:821px){
  .settings-center-card .settings-submit,
  .settings-center-card button.settings-submit,
  .settings-center-card .btn,
  .settings-center-card button:not(.permission-check):not(.settings-mobile-close){
    min-height:36px;
  }

  .settings-form{
    align-items:start;
  }

  .settings-form .settings-submit,
  .settings-box>.settings-submit,
  .avatar-setting-inline .settings-submit,
  .permission-save{
    width:auto!important;
    min-width:0!important;
    max-width:max-content!important;
    min-height:36px!important;
    padding:8px 15px!important;
    font-size:11px!important;
    line-height:1.2!important;
    border-radius:10px!important;
  }

  .settings-form-actions{
    justify-content:flex-start!important;
    width:100%;
    margin-top:2px;
  }

  .avatar-setting-inline{
    align-items:center!important;
  }

  .avatar-history-actions button,
  .settings-backup-actions button,
  .settings-backup-actions .btn{
    min-height:32px!important;
    padding:6px 11px!important;
    font-size:10px!important;
    border-radius:9px!important;
  }
}

/* Mobile: mọi nhóm tab con nằm đúng 1 hàng và vuốt ngang để chọn */
@media(max-width:820px){
  .settings-subtabs{
    display:flex!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    gap:6px!important;
    width:100%!important;
    max-width:100%!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    padding:4px 2px 7px!important;
    margin:0 0 12px!important;
    scroll-snap-type:x proximity;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    overscroll-behavior-x:contain;
  }
  .settings-subtabs::-webkit-scrollbar{display:none}
  .settings-subtabs>a{
    flex:0 0 auto!important;
    width:auto!important;
    min-width:max-content!important;
    margin:0!important;
    padding:9px 14px!important;
    border-radius:10px!important;
    white-space:nowrap!important;
    text-align:center!important;
    scroll-snap-align:start;
    font-size:10px!important;
    line-height:1.15!important;
  }

  /* Không cho bất kỳ rule cũ nào chia tab thành grid/nhiều dòng */
  .settings-center-card nav.settings-subtabs{
    grid-template-columns:none!important;
  }

  /* Các nhóm nút ngang trong settings cũng ưu tiên một hàng có thể vuốt */
  .settings-inline-tabs,
  .settings-segmented,
  .settings-filter-tabs{
    display:flex!important;
    flex-wrap:nowrap!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    gap:6px!important;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .settings-inline-tabs::-webkit-scrollbar,
  .settings-segmented::-webkit-scrollbar,
  .settings-filter-tabs::-webkit-scrollbar{display:none}
  .settings-inline-tabs>*,
  .settings-segmented>*,
  .settings-filter-tabs>*{
    flex:0 0 auto!important;
    white-space:nowrap!important;
  }

  /* Submit mobile vẫn dễ bấm nhưng không phình cao */
  .settings-form-actions .settings-submit,
  .settings-form .settings-submit,
  .settings-box>.settings-submit,
  .avatar-setting-inline .settings-submit,
  .permission-save{
    min-height:40px!important;
    padding:9px 14px!important;
    font-size:11px!important;
    border-radius:10px!important;
  }
}


/* ============================================================
   V1.7.9.8 · MEMBER MOBILE FIX / SETTINGS FORM ALIGNMENT
============================================================ */

/* Desktop Settings: form theo chiều dọc rõ ràng; nút nằm đúng dưới trường nhập */
@media(min-width:821px){
  .settings-center-card .settings-form{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:0!important;
  }
  .settings-center-card .settings-form>.settings-grid-2{
    width:100%!important;
  }
  .settings-center-card .settings-form>label{
    width:100%!important;
  }
  .settings-center-card .settings-form-actions{
    width:100%!important;
    display:flex!important;
    justify-content:flex-start!important;
    align-items:center!important;
    margin-top:2px!important;
  }
  .settings-center-card .settings-form>.settings-submit{
    align-self:flex-start!important;
    margin-top:2px!important;
  }

  /* Các form chỉ có 1 input + submit: không đặt button cùng hàng làm lệch chiều cao */
  .settings-center-card form.settings-box.settings-form{
    grid-template-columns:none!important;
  }

  .backup-create-box{
    align-items:center!important;
  }
  .backup-create-box>.settings-submit{
    align-self:center!important;
  }
}

/* Hồ sơ mobile: bỏ cột dành cho nút back cũ, avatar và tên nằm cạnh nhau đúng tỷ lệ */
@media(max-width:820px){
  .member-profile-page{
    width:100%!important;
    max-width:none!important;
  }
  .member-profile-head{
    display:grid!important;
    grid-template-columns:78px minmax(0,1fr)!important;
    grid-template-rows:auto auto!important;
    gap:10px 12px!important;
    align-items:center!important;
    padding:14px!important;
  }
  .member-profile-head .member-back{
    display:none!important;
  }
  .member-profile-head>img{
    grid-column:1!important;
    grid-row:1!important;
    width:78px!important;
    height:78px!important;
    align-self:start!important;
  }
  .member-profile-main{
    grid-column:2!important;
    grid-row:1!important;
    min-width:0!important;
    align-self:center!important;
  }
  .member-profile-head h1{
    margin:0!important;
    font-size:20px!important;
    line-height:1.22!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    word-break:normal!important;
  }
  .member-profile-head p{
    margin:3px 0 0!important;
    font-size:9px!important;
    line-height:1.35!important;
  }
  .member-head-actions{
    grid-column:1/-1!important;
    grid-row:2!important;
    width:100%!important;
    display:flex!important;
    gap:7px!important;
    margin:0!important;
  }
  .member-timeline-link,
  .member-message{
    flex:1 1 0!important;
    min-width:0!important;
  }
}

/* Điện thoại nhỏ vẫn giữ tên đủ rộng, không đè avatar */
@media(max-width:390px){
  .member-profile-head{
    grid-template-columns:70px minmax(0,1fr)!important;
    gap:9px 10px!important;
    padding:12px!important;
  }
  .member-profile-head>img{
    width:70px!important;
    height:70px!important;
  }
  .member-profile-head h1{font-size:18px!important}
}


/* ============================================================
   V1.8.0 · NOTEBOOK SETTINGS
============================================================ */
.notebook-pin-settings{max-width:680px}
.settings-soft-note{padding:11px 13px;border:1px solid #ead3c0;border-radius:11px;background:#fff6ed;color:#866557;font-size:10px}
.settings-notebook-open{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px;max-width:680px}
.settings-notebook-open b,.settings-notebook-open small{display:block}.settings-notebook-open b{color:#6c3025}.settings-notebook-open small{margin-top:4px;color:#94786b;font-size:9px}.settings-notebook-open a{padding:9px 13px;border-radius:10px;background:#8f3023;color:#fff;text-decoration:none;font-size:10px;font-weight:800}
@media(max-width:820px){.settings-notebook-open{display:block!important}.settings-notebook-open a{display:block;text-align:center;margin-top:10px}}

/* ============================================================
   V1.8.1 · FOOTER TỐI GIẢN
============================================================ */
.family-footer-v1810{margin-top:28px!important;background:transparent!important}
.family-footer-v1810 .family-footer-image-only{
  min-height:178px!important;
  border-radius:18px!important;
  border:1px solid #ead4c1!important;
  background-image:var(--footer-family-image)!important;
  background-position:center!important;
  background-size:cover!important;
  background-repeat:no-repeat!important;
  overflow:hidden!important;
}
.family-footer-v1810 .family-footer-image-only::before,
.family-footer-v1810 .family-footer-image-only::after{display:none!important;content:none!important}
.family-footer-v1810 .family-footer-info-minimal{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:18px!important;
  padding:16px 8px!important;
  border:0!important;
}
.family-footer-v1810 .family-footer-about{display:flex!important;align-items:center!important;gap:10px!important}
.family-footer-v1810 .family-footer-about img{width:62px!important;height:45px!important;object-fit:contain!important}
.family-footer-v1810 .family-footer-about b{font-size:12px!important}
.family-footer-v1810 .family-footer-about p{margin:2px 0 0!important;font-size:9px!important;color:#9a7d70!important}
.family-footer-v1810 .family-footer-version{
  margin-left:auto!important;
  padding-left:18px!important;
  border-left:2px solid #b84b31!important;
  min-width:145px!important;
}
.family-footer-v1810 .family-footer-version small,
.family-footer-v1810 .family-footer-version b,
.family-footer-v1810 .family-footer-version span{display:block!important}
.family-footer-v1810 .family-footer-version small{font-size:8px!important;color:#987b6d!important}
.family-footer-v1810 .family-footer-version b{margin:3px 0!important;font-size:17px!important;color:#8b2f22!important}
.family-footer-v1810 .family-footer-version span{font-size:8px!important;color:#a38a7e!important}
.family-footer-v1810 .family-footer-links,
.family-footer-v1810 .family-footer-bottom,
.family-footer-v1810 .family-footer-visual-overlay,
.family-footer-v1810 .family-footer-values,
.family-footer-v1810 .family-footer-visual-title{display:none!important}
@media(max-width:820px){
 .family-footer-v1810{padding:0 8px 78px!important}
 .family-footer-v1810 .family-footer-image-only{min-height:110px!important;border-radius:14px!important}
 .family-footer-v1810 .family-footer-info-minimal{padding:12px 4px!important}
 .family-footer-v1810 .family-footer-about p{display:none!important}
 .family-footer-v1810 .family-footer-version{min-width:112px!important;padding-left:10px!important}
}

/* V1.8.2 · account identity is a home link */
.account-dropdown-user-link{text-decoration:none;color:inherit}
.account-dropdown-user-link:hover{background:#f8eee6}
.mobile-account-sheet-user-link{text-decoration:none;color:inherit}


/* ============================================================
   V1.8.3 · VERIFIED HEADER AVATAR + MESSENGER ACTION FEEDBACK
============================================================ */

/* Tài khoản đã xác thực: viền sáng nhẹ + dấu ✓ riêng trên avatar header */
.avatar-link.verified-account-avatar{
  position:relative;
  isolation:isolate;
}
.avatar-link .verified-avatar-frame{
  display:block;
  position:relative;
  border-radius:50%;
  padding:2px;
}
.avatar-link.verified-account-avatar .verified-avatar-frame{
  background:linear-gradient(135deg,#d6a03d,#fff2ad,#b87324);
  box-shadow:0 0 0 2px rgba(255,250,244,.96),0 0 0 4px rgba(194,131,40,.22),0 5px 18px rgba(121,72,27,.18);
}
.avatar-link.verified-account-avatar .verified-avatar-frame::after{
  content:"";
  position:absolute;
  inset:-4px;
  border-radius:50%;
  border:1px solid rgba(215,164,73,.42);
  animation:nhVerifiedHalo 2.8s ease-in-out infinite;
  pointer-events:none;
}
.avatar-link .verified-avatar-frame img{
  display:block;
  border-radius:50%!important;
}
.verified-avatar-check{
  position:absolute;
  right:-2px;
  bottom:-2px;
  z-index:3;
  width:17px;
  height:17px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#2d8d55;
  color:#fff;
  border:2px solid #fffaf4;
  font-style:normal;
  font-size:10px;
  font-weight:900;
  box-shadow:0 2px 5px rgba(35,87,55,.25);
}
@keyframes nhVerifiedHalo{
  0%,100%{transform:scale(.96);opacity:.45}
  50%{transform:scale(1.10);opacity:.9}
}
@media(prefers-reduced-motion:reduce){
  .avatar-link.verified-account-avatar .verified-avatar-frame::after{animation:none}
}
.mobile-nav-avatar.verified-mobile-avatar{position:relative}
.mobile-nav-avatar.verified-mobile-avatar img{box-shadow:0 0 0 2px #d6a03d!important}
.mobile-nav-avatar.verified-mobile-avatar i{
  position:absolute;right:-4px;bottom:-3px;width:13px;height:13px;display:grid;place-items:center;
  border-radius:50%;background:#2d8d55;color:#fff;border:1px solid #fffaf4;font-size:8px;font-style:normal;font-weight:900
}

/* Dòng tài khoản đầu dropdown là liên kết Trang nhà */
.account-dropdown .account-dropdown-user.account-dropdown-home{
  display:grid!important;
  grid-template-columns:46px minmax(0,1fr) 24px;
  gap:10px;
  align-items:center;
  margin-bottom:5px;
  padding:9px!important;
  border-bottom:1px solid #ead5c2;
  border-radius:10px 10px 6px 6px;
  color:#4b3026!important;
  text-decoration:none!important;
}
.account-dropdown .account-dropdown-home:hover{background:#f5e7da!important}
.account-dropdown .account-dropdown-home em{font-style:normal;color:#a2634f;font-size:17px;text-align:center}

/* Messenger menu: mỗi trạng thái có màu/nhãn rõ */
.conversation-action-menu button{
  display:grid!important;
  grid-template-columns:24px minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:8px!important;
  width:100%!important;
  min-height:42px!important;
  border-radius:9px!important;
  transition:background .16s ease,color .16s ease,transform .16s ease!important;
}
.conversation-action-menu button:hover{
  background:#f6e8dc!important;
  transform:translateX(2px);
}
.conversation-action-menu button.is-on{
  background:#f3e0d1!important;
  color:#8d2f22!important;
  font-weight:750!important;
}
.conversation-menu-icon{
  width:24px;height:24px;display:grid;place-items:center;border-radius:7px;background:#f6ece4;color:#8c5140;font-size:13px
}
.conversation-action-menu button.is-on .conversation-menu-icon{
  background:#9c3527;color:#fff
}
.conversation-menu-state{
  font-size:8px!important;
  font-style:normal!important;
  color:#9b3426!important;
  background:#fff7f1!important;
  border:1px solid #e7cbb8!important;
  padding:3px 5px!important;
  border-radius:999px!important;
  white-space:nowrap!important;
}
.conversation-menu-check{
  width:18px;height:18px;display:grid;place-items:center;border-radius:50%;background:#2e8b57;color:#fff;font-size:9px;font-style:normal
}
.conversation-action-menu .menu-category>span{
  display:block!important;
  margin:6px 7px 4px!important;
  color:#aa8879!important;
  font-size:8px!important;
  font-weight:800!important;
  letter-spacing:.09em!important;
}

/* Nhắc trực quan ngay sau khi thao tác */
.messenger-action-toast{
  position:fixed;
  left:50%;
  top:22px;
  z-index:200000;
  display:flex;
  align-items:center;
  gap:9px;
  min-width:220px;
  max-width:min(420px,calc(100vw - 28px));
  padding:11px 15px;
  border-radius:14px;
  background:rgba(79,48,37,.96);
  color:#fff;
  box-shadow:0 14px 40px rgba(45,27,20,.24);
  opacity:0;
  transform:translate(-50%,-14px) scale(.97);
  pointer-events:none;
  transition:opacity .2s ease,transform .22s ease;
}
.messenger-action-toast.show{opacity:1;transform:translate(-50%,0) scale(1)}
.messenger-action-toast-icon{
  width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:#4a9a68;color:#fff;font-weight:900
}
.messenger-action-toast.error .messenger-action-toast-icon{background:#cf493c}
.messenger-action-toast b{font-size:11px}
@media(max-width:780px){
  .messenger-action-toast{top:14px}
  .conversation-action-menu button{min-height:46px!important}
}


/* ============================================================
   V1.8.4 · Messenger status overlays + blue verified avatar
============================================================ */

/* Zalo-like status shown directly on conversation icon/avatar */
.messenger-conversation-avatar-wrap{
  position:relative;
  flex:0 0 auto;
  width:50px;
  height:50px;
  display:grid;
  place-items:center;
}
.messenger-conversation-avatar-wrap>img{
  width:48px!important;
  height:48px!important;
  border-radius:50%!important;
  object-fit:cover!important;
}
.messenger-conversation-avatar-wrap .messenger-group-avatar{
  width:48px!important;height:48px!important;
}
.messenger-status-dot.unread{
  position:absolute;
  right:-1px;
  top:-1px;
  width:11px;height:11px;
  border-radius:50%;
  background:#df2f2f;
  border:2px solid #fffaf4;
  box-shadow:0 0 0 2px rgba(223,47,47,.12);
  animation:nhMsgUnreadPulse 1.8s ease-in-out infinite;
  z-index:5;
}
.messenger-status-icon{
  position:absolute;
  z-index:4;
  display:grid;
  place-items:center;
  border-radius:50%;
  border:2px solid #fffaf4;
  box-shadow:0 2px 6px rgba(77,45,33,.18);
  font-style:normal;
}
.messenger-status-icon.muted{
  right:-5px;
  bottom:-2px;
  width:20px;height:20px;
  background:#a98a78;
  color:#fff;
  font-size:10px;
}
.messenger-status-icon.category{
  left:-4px;
  bottom:-2px;
  width:20px;height:20px;
  color:#fff;
  font-size:10px;
  font-weight:900;
}
.messenger-status-icon.category.family{background:#4c9463}
.messenger-status-icon.category.important{background:#d6952d}
.messenger-status-icon.category.work{background:#6f71a9}
@keyframes nhMsgUnreadPulse{
  0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(223,47,47,.22)}
  50%{transform:scale(1.12);box-shadow:0 0 0 5px rgba(223,47,47,0)}
}
@media(prefers-reduced-motion:reduce){
  .messenger-status-dot.unread{animation:none}
}

/* Blue verified tick placed on avatar, not only beside text */
.account-dropdown-avatar-wrap,
.mobile-account-sheet-avatar-wrap{
  position:relative;
  display:inline-block;
  flex:0 0 auto;
}
.account-dropdown-avatar-wrap img,
.mobile-account-sheet-avatar-wrap img{display:block}
.avatar-verified-blue{
  position:absolute;
  right:-4px;
  bottom:-3px;
  width:18px;
  height:18px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#1877f2!important;
  color:#fff!important;
  border:2px solid #fffaf4!important;
  box-shadow:0 2px 7px rgba(24,119,242,.32);
  font-style:normal!important;
  font-size:10px!important;
  font-weight:900!important;
  line-height:1!important;
  z-index:5;
}
.account-dropdown .account-dropdown-home{
  grid-template-columns:46px minmax(0,1fr) 24px!important;
}
.account-dropdown-avatar-wrap{width:46px;height:46px}
.account-dropdown-avatar-wrap img{width:46px!important;height:46px!important;border-radius:50%!important;object-fit:cover}
.mobile-account-sheet-avatar-wrap{width:48px;height:48px}
.mobile-account-sheet-avatar-wrap img{width:48px!important;height:48px!important;border-radius:50%!important;object-fit:cover}
.mobile-nav-avatar.verified-mobile-avatar>i.mobile-dock-verified{
  right:-5px!important;
  bottom:-4px!important;
  width:14px!important;
  height:14px!important;
  font-size:8px!important;
  border-width:1.5px!important;
  background:#1877f2!important;
}


/* ============================================================
   V1.8.5 · FOOTER 1 TẦNG + MOBILE DRAWERS
============================================================ */

/* Footer gom thành một tấm duy nhất.
   Ảnh người dùng chọn chỉ đóng vai trò hình nền, chữ rõ là HTML overlay. */
.family-footer-v1850{
  max-width:1460px!important;
  margin:28px auto 0!important;
  padding:0 18px 22px!important;
  background:transparent!important;
}
.family-footer-one-card{
  position:relative!important;
  min-height:150px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:24px!important;
  padding:24px 30px!important;
  overflow:hidden!important;
  border:1px solid #e8d2bf!important;
  border-radius:20px!important;
  background:#f6eadf!important;
  box-shadow:0 11px 30px rgba(65,39,27,.07)!important;
  isolation:isolate!important;
}
.family-footer-one-card::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:-2!important;
  background-image:var(--footer-family-image)!important;
  background-position:center!important;
  background-size:cover!important;
  background-repeat:no-repeat!important;
  opacity:.34!important;
  filter:saturate(.72) contrast(1.08)!important;
  transform:scale(1.015)!important;
}
.family-footer-one-overlay{
  position:absolute!important;
  inset:0!important;
  z-index:-1!important;
  background:
    linear-gradient(90deg,rgba(255,249,242,.96) 0%,rgba(255,249,242,.79) 33%,rgba(255,249,242,.36) 66%,rgba(255,249,242,.72) 100%)!important;
}
.family-footer-one-brand{
  display:flex!important;
  align-items:center!important;
  gap:14px!important;
  min-width:0!important;
}
.family-footer-logo-plate{
  width:92px!important;
  height:72px!important;
  flex:0 0 auto!important;
  display:grid!important;
  place-items:center!important;
  padding:7px!important;
  border:1px solid rgba(211,173,143,.68)!important;
  border-radius:17px!important;
  background:rgba(255,251,246,.9)!important;
  box-shadow:0 5px 16px rgba(69,41,27,.08)!important;
}
.family-footer-logo-plate img{
  max-width:100%!important;
  max-height:100%!important;
  object-fit:contain!important;
}
.family-footer-one-brand b,
.family-footer-one-brand small{
  display:block!important;
}
.family-footer-one-brand b{
  font:800 23px/1.1 Georgia,serif!important;
  color:#6d3025!important;
}
.family-footer-one-brand small{
  margin-top:5px!important;
  color:#805c4e!important;
  font-size:10px!important;
  font-weight:650!important;
}
.family-footer-one-version{
  flex:0 0 auto!important;
  min-width:132px!important;
  padding:12px 15px!important;
  border:1px solid rgba(191,129,91,.52)!important;
  border-radius:14px!important;
  background:rgba(255,250,245,.88)!important;
  text-align:left!important;
  box-shadow:0 4px 16px rgba(71,43,31,.06)!important;
}
.family-footer-one-version small,
.family-footer-one-version b,
.family-footer-one-version span{display:block!important}
.family-footer-one-version small{
  font-size:7px!important;
  font-weight:900!important;
  letter-spacing:.15em!important;
  color:#aa725e!important;
}
.family-footer-one-version b{
  margin:3px 0 2px!important;
  font-size:18px!important;
  color:#8f3023!important;
}
.family-footer-one-version span{
  font-size:8px!important;
  color:#9c8175!important;
}

/* Settings mobile: menu mở từ TRÁI, full chiều cao */
@media(max-width:820px){
  .settings-col-nav{
    display:block!important;
    position:fixed!important;
    inset:0!important;
    width:100vw!important;
    height:100dvh!important;
    z-index:3000!important;
    visibility:hidden!important;
    pointer-events:none!important;
    background:transparent!important;
  }
  .settings-col-nav.open{
    visibility:visible!important;
    pointer-events:auto!important;
  }
  .settings-mobile-scrim{
    display:block!important;
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    opacity:0!important;
    border:0!important;
    background:rgba(45,29,23,.43)!important;
    backdrop-filter:blur(2px)!important;
    transition:opacity .24s ease!important;
  }
  .settings-col-nav.open .settings-mobile-scrim{opacity:1!important}
  .settings-col-nav .settings-nav-card{
    position:absolute!important;
    inset:0 auto 0 0!important;
    width:min(86vw,350px)!important;
    height:100dvh!important;
    max-height:none!important;
    margin:0!important;
    padding:calc(14px + env(safe-area-inset-top)) 12px calc(82px + env(safe-area-inset-bottom))!important;
    border:0!important;
    border-right:1px solid #e4cdbb!important;
    border-radius:0 22px 22px 0!important;
    background:#fffaf5!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    box-shadow:18px 0 46px rgba(48,29,21,.18)!important;
    transform:translateX(-102%)!important;
    transition:transform .27s cubic-bezier(.22,.78,.25,1)!important;
    animation:none!important;
  }
  .settings-col-nav.open .settings-nav-card{transform:translateX(0)!important}
  .settings-nav-title{
    position:sticky!important;
    top:0!important;
    z-index:3!important;
    background:#fffaf5!important;
    padding:4px 0 11px!important;
  }
  .settings-mobile-close{display:grid!important}
  .settings-super-admin-link{
    margin-top:12px!important;
    border-top:1px solid #ead8c9!important;
    padding-top:14px!important;
    color:#7d2b23!important;
  }
}

/* Mobile global column-1 drawer */
.mobile-family-sidebar-drawer{display:none}
@media(max-width:820px){
  body.mobile-family-sidebar-open{overflow:hidden!important}
  .mobile-family-sidebar-drawer{
    display:block!important;
    position:fixed!important;
    inset:0!important;
    z-index:2950!important;
    visibility:hidden!important;
    pointer-events:none!important;
  }
  .mobile-family-sidebar-drawer.open{
    visibility:visible!important;
    pointer-events:auto!important;
  }
  .mobile-family-sidebar-scrim{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    border:0!important;
    background:rgba(45,29,23,.44)!important;
    opacity:0!important;
    backdrop-filter:blur(2px)!important;
    transition:opacity .24s ease!important;
  }
  .mobile-family-sidebar-drawer.open .mobile-family-sidebar-scrim{opacity:1!important}
  .mobile-family-sidebar-panel{
    position:absolute!important;
    top:0!important;
    bottom:0!important;
    left:0!important;
    width:min(88vw,360px)!important;
    padding:calc(12px + env(safe-area-inset-top)) 10px calc(78px + env(safe-area-inset-bottom))!important;
    background:#fffaf5!important;
    border-right:1px solid #e2cbb8!important;
    border-radius:0 22px 22px 0!important;
    box-shadow:18px 0 48px rgba(48,29,21,.2)!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    transform:translateX(-102%)!important;
    transition:transform .27s cubic-bezier(.22,.78,.25,1)!important;
    scrollbar-width:none!important;
  }
  .mobile-family-sidebar-panel::-webkit-scrollbar{display:none!important}
  .mobile-family-sidebar-drawer.open .mobile-family-sidebar-panel{transform:translateX(0)!important}
  .mobile-family-sidebar-head{
    position:sticky!important;
    top:calc(-12px - env(safe-area-inset-top))!important;
    z-index:10!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:10px!important;
    margin:-12px -10px 10px!important;
    padding:calc(13px + env(safe-area-inset-top)) 13px 12px!important;
    border-bottom:1px solid #ead7c7!important;
    background:rgba(255,250,245,.96)!important;
    backdrop-filter:blur(9px)!important;
  }
  .mobile-family-sidebar-head b,
  .mobile-family-sidebar-head small{display:block!important}
  .mobile-family-sidebar-head b{font-size:14px!important;color:#6c3025!important}
  .mobile-family-sidebar-head small{margin-top:2px!important;font-size:9px!important;color:#9a7c6f!important}
  .mobile-family-sidebar-head button{
    width:36px!important;height:36px!important;display:grid!important;place-items:center!important;
    border:1px solid #e4cfbe!important;border-radius:11px!important;background:#f5e7dc!important;
    color:#7c3c2f!important;font-size:21px!important
  }

  /* Reuse desktop sidebar content inside drawer */
  .mobile-family-sidebar-content .family-desktop-sidebar{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    position:static!important;
    margin:0!important;
    padding:0!important;
    background:transparent!important;
    box-shadow:none!important;
    border:0!important;
  }
  .mobile-family-sidebar-content .family-sidebar-brand{
    display:flex!important;
    min-height:76px!important;
    margin-bottom:9px!important;
  }
  .mobile-family-sidebar-content .family-sidebar-brand img{
    max-height:62px!important;
  }
  .mobile-family-sidebar-content .family-sidebar-menu{
    display:grid!important;
  }
  .mobile-family-sidebar-content .family-sidebar-memory,
  .mobile-family-sidebar-content .family-sidebar-event-card{
    display:block!important;
  }
  .mobile-family-sidebar-content .family-sidebar-title{
    display:block!important;
  }

  /* Bottom dock first item is now a drawer trigger */
  .family-mobile-dock .mobile-sidebar-nav{
    cursor:pointer!important;
  }

  /* Footer compact mobile */
  .family-footer-v1850{
    padding:0 8px calc(78px + env(safe-area-inset-bottom))!important;
    margin-top:18px!important;
  }
  .family-footer-one-card{
    min-height:112px!important;
    padding:14px!important;
    border-radius:15px!important;
    gap:10px!important;
  }
  .family-footer-logo-plate{
    width:64px!important;height:52px!important;border-radius:13px!important;padding:5px!important
  }
  .family-footer-one-brand b{font-size:16px!important}
  .family-footer-one-brand small{font-size:8px!important;max-width:135px!important}
  .family-footer-one-version{min-width:91px!important;padding:8px 9px!important;border-radius:11px!important}
  .family-footer-one-version b{font-size:14px!important}
  .family-footer-one-version small,.family-footer-one-version span{font-size:6.5px!important}
}


/* ============================================================
   V1.8.6 · SYSTEM DIALOGS · TIMELINE FAMILY MINI · APP ADMIN
============================================================ */
.app-system-modal{
  position:fixed!important;inset:0!important;z-index:300000!important;
  display:grid!important;place-items:center!important;padding:18px!important;
  background:rgba(48,31,25,.52)!important;backdrop-filter:blur(7px)!important;
}
.app-system-modal[hidden]{display:none!important}
.app-system-modal .system-dialog{
  width:min(92vw,470px)!important;padding:24px!important;border-radius:22px!important;
  border:1px solid #ead2bd!important;background:#fffaf5!important;
  box-shadow:0 26px 75px rgba(41,25,18,.27)!important;
}
.app-system-modal .system-dialog-icon{
  width:42px!important;height:42px!important;display:grid!important;place-items:center!important;
  border-radius:50%!important;background:#f3dfcf!important;color:#9b3024!important;font-size:18px!important;font-weight:900!important;
}
.app-system-modal .system-dialog h3{font-size:20px!important;color:#6f2d23!important;margin:12px 0 6px!important}
.app-system-modal .system-dialog p{white-space:pre-line!important;font-size:13px!important;line-height:1.6!important;color:#684e44!important}
.app-system-modal .system-dialog-actions{display:flex!important;justify-content:flex-end!important;gap:9px!important;margin-top:20px!important}

/* App information: Super Admin sits directly under system logo */
.app-info-logo-admin{display:flex!important;flex-direction:column!important;align-items:center!important;gap:10px!important;min-width:150px!important}
.app-info-logo-admin>img{max-width:130px!important;max-height:95px!important;object-fit:contain!important}
.app-info-superadmin-btn{
  width:100%!important;display:grid!important;grid-template-columns:28px minmax(0,1fr)!important;gap:1px 7px!important;
  align-items:center!important;padding:9px 11px!important;border:1px solid #e2c6b0!important;border-radius:12px!important;
  background:#f5e4d6!important;color:#763126!important;text-decoration:none!important;text-align:left!important;
}
.app-info-superadmin-btn>span{grid-row:1/3;display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:#8e3024;color:#fff}
.app-info-superadmin-btn b{font-size:10px!important}.app-info-superadmin-btn small{font-size:8px!important;color:#9b7464!important}

/* Timeline family near tree */
.timeline-family-mini{margin-bottom:14px!important;padding:18px!important;overflow:hidden!important}
.timeline-family-mini-head{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:15px!important;margin-bottom:15px!important}
.timeline-family-mini-head h2{margin:2px 0 3px!important;font-size:20px!important;color:#653126!important}
.timeline-family-mini-head p{margin:0!important;font-size:10px!important;color:#967669!important}
.timeline-family-mini-head>a{flex:0 0 auto;padding:8px 11px;border-radius:10px;background:#f2dfd0;color:#913326;text-decoration:none;font-size:9px;font-weight:800}
.timeline-family-mini-flow{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px}
.timeline-family-mini-flow::before{content:"";position:absolute;top:58px;bottom:48px;left:50%;width:1px;background:#d7bda9;z-index:0}
.tfm-couple-row,.tfm-children{position:relative;z-index:1;display:flex;justify-content:center;gap:10px;flex-wrap:wrap}
.tfm-person{
  position:relative;z-index:1;width:118px;min-height:88px;padding:9px;display:flex;flex-direction:column;align-items:center;
  border:1px solid #ead3c1;border-radius:14px;background:#fffaf5;text-decoration:none;color:#5f382e;box-shadow:0 5px 12px rgba(73,43,30,.04)
}
.tfm-person img{width:42px;height:42px;border-radius:50%;object-fit:cover;margin-bottom:5px}
.tfm-person b{max-width:100%;font-size:9px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tfm-person small{font-size:7.5px;color:#9a7a6d;margin-top:2px}
.tfm-person.root{border-color:#ad3b2b;background:#fff5ed}
.tfm-person.spouse{background:#fff0f5}
.tfm-person.parent{background:#fff8ee}
.tfm-children{padding-top:10px;border-top:1px solid #dec7b5}
@media(max-width:820px){
  .timeline-family-mini{padding:13px!important}
  .timeline-family-mini-head h2{font-size:16px!important}
  .timeline-family-mini-head p{display:none}
  .tfm-person{width:93px;min-height:78px;padding:7px}
  .tfm-person img{width:36px;height:36px}
  .app-info-card{align-items:flex-start!important}
  .app-info-logo-admin{min-width:115px!important}
}

.nm-created-account{
  margin-top:14px;padding:13px 14px;border:1px solid #e7ccb7;border-radius:13px;background:#fff6ed;
  display:grid;gap:6px;color:#684238;text-align:left
}
.nm-created-account>b{font-size:12px;color:#7e3024}
.nm-created-account>span{font-size:11px}
.nm-created-account>span strong{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:#9b3024}
.nm-created-account>small{font-size:9px;color:#917466;line-height:1.45}


/* V1.8.8 · Phả đồ Gia đình tôi readonly trên dòng thời gian */
.timeline-family-tree-card{margin-bottom:14px!important;padding:14px 16px 18px!important;overflow:hidden!important}
.timeline-family-tree-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.timeline-family-tree-title>div{display:flex;align-items:baseline;gap:9px}
.timeline-family-tree-title span{font-size:8px;letter-spacing:.17em;color:#a56a56;font-weight:800}
.timeline-family-tree-title b{font-size:14px;color:#6b3529}
.timeline-family-tree-title>a{padding:7px 10px;border-radius:9px;background:#f4e5d8;color:#913325;text-decoration:none;font-size:8px;font-weight:800}
.timeline-family-tree-canvas{position:relative;min-height:235px;padding:15px 14px 12px;border:1px solid #ecd9ca;border-radius:16px;background-color:#fffaf5;background-image:radial-gradient(#e9cfc0 1px,transparent 1px);background-size:24px 24px}
.tft-parent-row,.tft-child-row{position:relative;z-index:2;display:flex;justify-content:center;align-items:stretch;gap:26px}
.tft-parent-row::after{content:"";position:absolute;left:50%;bottom:-24px;width:1px;height:24px;background:#999}
.tft-parent-row .tft-card:first-child::after{content:"";position:absolute;right:-27px;top:50%;width:27px;height:1px;background:#8f8f8f}
.tft-connector{position:relative;height:48px;margin:0 auto;z-index:1}.tft-connector>i{position:absolute;left:50%;top:0;width:1px;height:28px;background:#999}.tft-connector>span{position:absolute;left:9%;right:9%;top:28px;height:1px;background:#999}
.tft-child-row{gap:12px;align-items:flex-start}.tft-child-row .tft-card::before{content:"";position:absolute;left:50%;top:-20px;height:20px;width:1px;background:#999}
.tft-card{position:relative;width:190px;min-height:90px;display:grid;grid-template-columns:54px minmax(0,1fr);align-items:start;gap:8px;padding:9px;border:2px solid;border-radius:10px;text-decoration:none;box-shadow:0 3px 8px rgba(55,42,34,.07);color:#322d2a}
.tft-card.male{background:#94d2f1;border-color:#3fa6d8}.tft-card.female{background:#e8a6cd;border-color:#d16fab}.tft-card.current{box-shadow:0 0 0 2px rgba(153,48,34,.22),0 5px 13px rgba(55,42,34,.1)}
.tft-card img{width:54px;height:54px;object-fit:cover;border-radius:0;background:#fff}.tft-card>div{min-width:0;padding-top:2px}.tft-card b{display:block;font-size:10px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tft-card small{display:block;margin-top:5px;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tft-card small.spouse{color:#72504b}.tft-card small.death{color:#6d31ca;font-weight:700}.tft-card.child{width:180px;min-height:88px}
body .topbar{z-index:60000!important;overflow:visible!important}body .topbar .top-actions,body .topbar .account-menu-wrap{position:relative;z-index:60010!important}body .topbar .account-dropdown{z-index:60020!important}
@media(max-width:820px){.timeline-family-tree-card{padding:10px!important}.timeline-family-tree-title>div{display:grid;gap:1px}.timeline-family-tree-canvas{overflow-x:auto;scrollbar-width:none;padding:14px 8px 10px}.timeline-family-tree-canvas::-webkit-scrollbar{display:none}.tft-parent-row,.tft-child-row{min-width:max-content}.tft-card{width:155px;grid-template-columns:45px minmax(0,1fr);min-height:76px}.tft-card img{width:45px;height:45px}.tft-card.child{width:145px}}


/* V1.8.9 · Dòng thời gian dùng NGUYÊN renderer "Gia đình tôi" từ family.php */
.timeline-family-exact{
  margin-bottom:14px!important;
  padding:14px 14px 12px!important;
  overflow:hidden!important;
}
.timeline-family-exact-head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-bottom:8px;padding:0 2px
}
.timeline-family-exact-head>div{display:flex;align-items:baseline;gap:8px}
.timeline-family-exact-head span{font-size:8px;letter-spacing:.16em;color:#a56550;font-weight:900}
.timeline-family-exact-head b{font-size:14px;color:#6c3529}
.timeline-family-exact-head>a{
  flex:0 0 auto;padding:7px 10px;border-radius:9px;background:#f4e5d7;color:#943425;
  text-decoration:none;font-size:8px;font-weight:800
}
.timeline-family-exact-frame{
  display:block;width:100%;height:330px;border:1px solid #ead6c5;border-radius:16px;
  background:#fffaf5;overflow:hidden
}
@media(max-width:820px){
  .timeline-family-exact{padding:9px!important}
  .timeline-family-exact-head>div{display:grid;gap:1px}
  .timeline-family-exact-head>a{font-size:7px;padding:6px 8px}
  .timeline-family-exact-frame{height:300px}
}


/* V1.8.10 · timeline exact family iframe sizing */
.timeline-family-exact-frame{
  width:100%!important;
  aspect-ratio:2.75/1!important;
  height:auto!important;
  min-height:280px!important;
  max-height:430px!important;
}
@media(max-width:820px){
  .timeline-family-exact{
    padding:8px!important;
  }
  .timeline-family-exact-frame{
    aspect-ratio:1.38/1!important;
    min-height:255px!important;
    max-height:340px!important;
  }
}
@media(max-width:480px){
  .timeline-family-exact-frame{
    min-height:250px!important;
    max-height:315px!important;
  }
}
/* V1.9.0 · Hồ sơ cuộc đời */
.life-profile-heading{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:18px}.life-profile-heading h2{margin:3px 0;color:#6c3025;font-family:Georgia,serif}.life-profile-heading p{margin:0;color:#8b7165}.life-event-form{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:16px;margin:12px 0 24px;background:#fff6ed;border:1px solid #ead5c4;border-radius:16px}.life-event-form label{display:grid;gap:6px;font-size:11px;font-weight:800;color:#6a4538}.life-event-form input,.life-event-form select,.life-event-form textarea{width:100%;box-sizing:border-box;border:1px solid #dfc3ae;border-radius:11px;background:#fffaf5;padding:11px;color:#4b332b}.life-event-form .wide{grid-column:1/-1}.life-form-actions{display:flex;justify-content:flex-end}.life-story-line{position:relative;padding:4px 0 4px 0}.life-story-line:before{content:"";position:absolute;left:78px;top:8px;bottom:8px;width:2px;background:#e7c7b4}.life-event-item{display:grid;grid-template-columns:62px 20px 1fr;gap:8px;position:relative;margin:0 0 18px}.life-year{font-size:18px;font-weight:900;color:#9e3526;text-align:right;padding-top:9px}.life-dot{position:relative}.life-dot:before{content:"";position:absolute;left:7px;top:15px;width:10px;height:10px;border:3px solid #a83a28;background:#fffaf5;border-radius:50%;z-index:2}.life-event-body{padding:12px 14px;background:#fff8f1;border:1px solid #ead8c8;border-radius:14px}.life-event-body small{font-size:8px;letter-spacing:.13em;color:#aa715d;font-weight:900}.life-event-body h3{margin:3px 0 5px;color:#5f3027}.life-event-body p{margin:5px 0;color:#745b51;line-height:1.55}.life-event-body b{font-size:10px;color:#8a6658}.life-delete{border:0;background:none;color:#b53a2d;padding:5px 0;margin-top:5px;cursor:pointer}.life-empty{margin-left:100px;padding:20px;border:1px dashed #dfc6b5;border-radius:14px;color:#967a6d;text-align:center}
@media(max-width:620px){.life-profile-heading{display:grid}.life-event-form{grid-template-columns:1fr}.life-event-form .wide{grid-column:auto}.life-story-line:before{left:54px}.life-event-item{grid-template-columns:40px 18px 1fr;gap:5px}.life-year{font-size:13px}.life-dot:before{left:5px;width:8px;height:8px}.life-event-body{padding:10px}.life-empty{margin-left:65px}}

/* V1.9.1 · Quan hệ giữa hai người */
.relation-finder-page{display:grid;gap:14px}.relation-finder-hero{display:flex;align-items:center;justify-content:space-between;padding:22px 24px!important;background:linear-gradient(135deg,#fffaf4,#f8e8d9)!important}.relation-finder-hero h1{margin:5px 0 6px;font-size:25px;color:#71362a}.relation-finder-hero p{margin:0;color:#8b6e61;font-size:11px}.relation-hero-symbol{width:70px;height:70px;border-radius:22px;display:grid;place-items:center;background:#a93a28;color:#fff;font-size:32px}
.relation-picker{display:grid;grid-template-columns:1fr 48px 1fr auto;align-items:end;gap:12px;padding:18px!important}.relation-person-select>label{display:block;margin-bottom:7px;font-size:9px;font-weight:900;color:#765044}.relation-selected{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid #ead4c3;border-radius:13px;background:#fffaf5;margin-bottom:7px}.relation-selected img{width:45px;height:45px;border-radius:50%;object-fit:cover}.relation-selected b,.relation-selected small{display:block}.relation-selected b{font-size:11px}.relation-selected small{font-size:8px;color:#9a7b6d}.relation-person-select select,.relation-person-select input{width:100%;box-sizing:border-box;border:1px solid #e1c7b2;border-radius:10px;background:#fff;padding:10px 11px}.relation-person-select select{margin-top:6px}.relation-swap{align-self:center;width:42px;height:42px;border:1px solid #dfc5b1;border-radius:50%;background:#fff6ee;color:#9b3527;font-size:20px}.relation-submit{height:42px}
.relation-result{padding:20px!important}.relation-result-head{display:flex;justify-content:space-between;align-items:center;gap:15px;padding-bottom:14px;border-bottom:1px solid #ead8ca}.relation-result-head h2{font-size:19px;color:#673328;margin:5px 0 0}.relation-title-pill{min-width:160px;padding:9px 13px;border-radius:12px;background:#f7e3d5;text-align:center}.relation-title-pill small,.relation-title-pill b{display:block}.relation-title-pill small{font-size:7px}.relation-title-pill b{font-size:14px;color:#8f3124}
.relation-path-scroll{overflow-x:auto;scrollbar-width:none;padding:20px 0 15px}.relation-path-scroll::-webkit-scrollbar{display:none}.relation-path{display:flex;align-items:center;justify-content:center;min-width:max-content}.relation-path-person{width:120px;min-height:135px;padding:12px 9px;border:1px solid #e8cfbd;border-radius:16px;background:#fffaf5;display:grid;justify-items:center;text-align:center;text-decoration:none;color:#563e35}.relation-path-person.start{box-shadow:0 0 0 2px #c3543b inset}.relation-path-person.end{background:#f7e4d7}.relation-path-person img{width:60px;height:60px;border-radius:50%;object-fit:cover;margin-bottom:7px}.relation-path-person b{font-size:9px}.relation-path-person small{font-size:7.5px;color:#99796c}.relation-edge{width:90px;display:grid;justify-items:center;gap:3px}.relation-edge span{font-size:19px;color:#b04a36}.relation-edge b{font-size:8px;text-align:center}
.relation-explain-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.relation-explain-grid article{display:flex;gap:10px;padding:13px;border-radius:14px;background:#fbf1e8;border:1px solid #ead7c7}.relation-explain-grid article>span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#9c392a}.relation-explain-grid small,.relation-explain-grid b,.relation-explain-grid p{display:block}.relation-explain-grid small{font-size:7px}.relation-explain-grid b{font-size:11px;margin:3px 0}.relation-explain-grid p{margin:0;font-size:8px;line-height:1.55}.relation-no-path{text-align:center;padding:30px}.relation-help{padding:13px 16px!important}.relation-help>div{display:flex;gap:10px}.relation-profile-tools{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding-bottom:13px;border-bottom:1px solid #ead8ca}.relation-profile-tools h2{margin:4px 0 0;font-size:16px}
@media(max-width:820px){.relation-finder-page{padding:0 10px 82px!important}.relation-finder-hero{padding:16px!important}.relation-finder-hero h1{font-size:20px}.relation-hero-symbol{width:48px;height:48px}.relation-picker{grid-template-columns:1fr;padding:12px!important}.relation-swap{justify-self:center;transform:rotate(90deg)}.relation-submit{width:100%}.relation-result{padding:13px!important}.relation-result-head{align-items:flex-start}.relation-result-head h2{font-size:15px}.relation-title-pill{min-width:105px}.relation-path{justify-content:flex-start}.relation-path-person{width:104px;min-height:120px}.relation-path-person img{width:52px;height:52px}.relation-edge{width:65px}.relation-explain-grid{grid-template-columns:1fr}.relation-profile-tools{align-items:flex-start;flex-direction:column}.relation-profile-tools .btn{width:100%;text-align:center}}


/* V1.9.2 · Dòng thời gian = Cuộc đời + Ký ức */
@media(min-width:1051px){
  .timeline-gentle-stats{align-self:start!important;padding:12px!important}
  .timeline-gentle-stats .highlight-head{margin-bottom:7px!important}
  .timeline-gentle-stats .highlight-icon{width:28px;height:28px;flex-basis:28px;font-size:13px}
  .timeline-gentle-stats .highlight-head h3{font-size:10px!important}
  .timeline-gentle-stats .gentle-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:5px!important}
  .timeline-gentle-stats .gentle-stat-grid>div{min-width:0;padding:7px 6px!important;text-align:center}
  .timeline-gentle-stats .gentle-stat-grid b{font-size:14px!important}
  .timeline-gentle-stats .gentle-stat-grid span{font-size:7px!important;line-height:1.25}
  .timeline-gentle-stats .gentle-stat-grid small{font-size:6.5px!important}
}

/* V1.9.2 · Quan hệ hai người mobile: không vỡ chiều ngang */
.relation-finder-page,.relation-finder-page *, .relation-picker,.relation-person-select,
.relation-selected,.relation-result,.relation-path-scroll,.relation-help{box-sizing:border-box}
.relation-finder-page,.relation-finder-page>section,.relation-finder-page>form{min-width:0!important;max-width:100%!important}
.relation-picker>*,.relation-person-select,.relation-selected>div,.relation-result-head>div{min-width:0!important}
.relation-person-select input,.relation-person-select select{min-width:0!important;max-width:100%!important}
@media(max-width:820px){
  body{overflow-x:hidden!important}
  .family-desktop-content:has(.relation-finder-page){width:100%!important;min-width:0!important;max-width:100vw!important;overflow-x:hidden!important}
  .relation-finder-page{width:100%!important;max-width:100%!important;padding-left:10px!important;padding-right:10px!important;overflow-x:hidden!important}
  .relation-finder-hero{width:100%!important;min-width:0!important}
  .relation-finder-hero>div:first-child{min-width:0!important}
  .relation-finder-hero h1,.relation-finder-hero p{overflow-wrap:anywhere}
  .relation-picker{width:100%!important;min-width:0!important;max-width:100%!important;overflow:hidden!important}
  .relation-selected{width:100%!important;min-width:0!important}
  .relation-selected b{white-space:normal!important;overflow-wrap:anywhere}
  .relation-result{width:100%!important;max-width:100%!important;overflow:hidden!important}
  .relation-result-head{min-width:0!important;flex-wrap:wrap!important}
  .relation-title-pill{min-width:0!important;max-width:100%!important}
  .relation-path-scroll{width:100%!important;max-width:100%!important;overflow-x:auto!important;overflow-y:hidden!important}
}


/* V1.9.3 family fixes */
.nm-death-day-month{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.nm-death-day-month select{width:100%;min-height:42px;border:1px solid #dec6b2;border-radius:10px;background:#fff;padding:8px}
.nm-spouse-children{grid-column:1/-1;padding:11px;border:1px solid #ead2c0;border-radius:12px;background:#fff8f1}
.nm-spouse-children>label{display:flex!important;align-items:center;gap:7px}
.nm-spouse-child-list{display:flex;gap:7px;flex-wrap:wrap}
.nm-spouse-child-option{display:flex!important;align-items:center;gap:5px;padding:6px 8px;border:1px solid #ead6c8;border-radius:9px;background:#fff}
.nm-spouse-child-option img{width:28px;height:28px;border-radius:50%;object-fit:cover}

#toggle-female-branch{display:inline-flex!important}
.family-desktop-zoom-slider{display:flex;align-items:center;gap:4px;padding:4px 7px;border:1px solid #ead6c8;border-radius:11px;background:#fffaf5}
.family-desktop-zoom-slider input{writing-mode:vertical-lr;direction:rtl;width:20px;height:72px;accent-color:#9c3426}

.password-field-inline{display:flex;align-items:stretch;border:1px solid #dec7b5;border-radius:10px;background:#fff;overflow:hidden}
.password-field-inline input{border:0!important;border-radius:0!important;flex:1;min-width:0}
.password-field-inline .password-eye{flex:0 0 42px;background:#fff8f0}
.timeline-auto-note{display:flex;align-items:center;justify-content:center;font-size:9px;color:#8d7063;padding:8px}
.memory-group-checks{display:flex;flex-wrap:wrap;gap:7px;margin-top:7px}
.memory-group-checks label{display:flex!important;align-items:center;gap:5px;padding:7px 9px;border:1px solid #e7cfbd;border-radius:999px;background:#fffaf5}
.memory-group-checks input{width:auto!important}
.composer-story-extras{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.composer-extra-block{padding:12px;border:1px solid #ead6c7;border-radius:13px;background:#fffaf6}
.composer-tabs-two{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.timeline-hide-entry{position:absolute;right:12px;bottom:9px;border:0;background:#f6e8dc;color:#815346;padding:6px 9px;border-radius:9px;font-size:8px;cursor:pointer}
.timeline-hide-entry.active{background:#a2392a;color:#fff}
.timeline-item-v2{position:relative;padding-bottom:30px}
.timeline-entry-group,.timeline-entry-author{font-size:7px;color:#96776b;background:#f7eadf;padding:3px 6px;border-radius:999px}
.person-branch-badges{display:inline-flex;gap:3px;flex-wrap:wrap;margin-top:4px}.person-branch-badges i{font-style:normal;font-size:7px;padding:3px 6px;border-radius:999px;background:#f3e0d2;color:#7e493b}

/* family mini compact desktop */
@media(min-width:821px){
 #mini-family-modal .modal-content,#mini-family-modal .family-mini-modal-content{max-width:980px!important;width:min(94vw,980px)!important}
 #mini-family-tree{padding:10px!important}
 #mini-family-tree .mini-toolbar{padding:5px 7px!important;margin-bottom:6px!important}
 #mini-family-tree .mini-layout{gap:7px!important}
 #mini-family-tree .mini-card{width:145px!important;min-height:118px!important;padding:9px!important}
 #mini-family-tree .mini-avatar{width:48px!important;height:48px!important}
 #mini-family-tree .mini-name{font-size:10px!important}
 #mini-family-tree .mini-year{font-size:8px!important}
 #mini-family-tree .mini-children{gap:7px!important}
}

/* messages desktop = sidebar | chat | conversation list */
@media(min-width:821px){
 .messages-three-column-layout{max-width:1500px!important}
 .messages-main-column{min-width:0}
 .messages-three-column-layout .messenger-app-v2{grid-template-columns:minmax(0,1fr) 340px!important}
 .messages-three-column-layout .messenger-chat-pane{grid-column:1;grid-row:1}
 .messages-three-column-layout .messenger-list-pane{grid-column:2;grid-row:1;border-right:0!important;border-left:1px solid #decfc4!important}
 .messages-three-column-layout .messages-desktop-menu-toggle{display:none!important}
 .messages-nav-drawer,.messages-nav-scrim{display:none!important}
}

/* mobile browser: stop auto zoom on inputs */
@media(max-width:820px){
 input,textarea,select{font-size:16px!important}
 .family-desktop-zoom-slider{display:none!important}
 .composer-story-extras{grid-template-columns:1fr}
 .memory-group-checks{display:grid;grid-template-columns:1fr 1fr}
 .messages-three-column-layout{display:block!important}
 .messages-three-column-layout>.family-desktop-sidebar{display:none!important}
 .messages-three-column-layout .messenger-app-v2{display:block!important}
 .messages-three-column-layout .messenger-list-pane{display:block}
 .messages-three-column-layout .messenger-chat-pane{display:none}
 .messages-three-column-layout .messenger-app-v2.mobile-chat-open .messenger-list-pane{display:none}
 .messages-three-column-layout .messenger-app-v2.mobile-chat-open .messenger-chat-pane{display:flex}
}

/* D3 anti-trail / rotation */
#family-tree{contain:layout paint;backface-visibility:hidden}
#family-tree svg{display:block;background:transparent;shape-rendering:geometricPrecision}
#family-tree svg g{backface-visibility:hidden}


/* =========================================================
   V1.9.4 · Ngày này năm xưa
========================================================= */
.anniversary-photo-head-link{display:block;text-decoration:none!important}
.anniversary-photo-head-link:hover span{color:#a23728}
.anniversary-all-link{
  display:block;margin-top:7px;padding:7px 8px;border-radius:9px;
  background:#f7e8dc;text-align:center;text-decoration:none;
  color:#8d392b;font-size:7.5px;font-weight:700;
}
.on-this-day-page{display:grid;gap:14px}
.on-this-day-hero{
  display:grid;grid-template-columns:90px minmax(0,1fr) auto;
  align-items:center;gap:18px;padding:22px!important;
  background:linear-gradient(125deg,#fffaf4 0%,#f8e6d7 100%)!important;
}
.on-this-day-calendar{
  width:78px;height:88px;border-radius:18px;display:grid;place-items:center;align-content:center;
  background:#9c3527;color:#fff;box-shadow:0 10px 24px rgba(115,45,32,.18);
}
.on-this-day-calendar b{font-size:31px;line-height:1}.on-this-day-calendar span{font-size:8px;margin-top:6px;letter-spacing:.06em}
.on-this-day-hero h1{margin:5px 0 6px;font-size:24px;color:#6d3429}
.on-this-day-hero p{margin:0;max-width:720px;color:#8f7164;font-size:10px;line-height:1.55}
.on-this-day-filter{display:flex;gap:7px;padding:8px!important;overflow-x:auto}
.on-this-day-filter a{flex:0 0 auto;padding:8px 12px;border:1px solid #e6cebc;border-radius:999px;text-decoration:none;color:#765247;font-size:9px;background:#fffaf5}
.on-this-day-filter a.active{background:#a23829;color:#fff;border-color:#a23829}
.on-this-day-years{display:grid;gap:14px}
.on-this-day-year{padding:0!important;overflow:hidden}
.on-this-day-year>header{display:flex;align-items:center;gap:14px;padding:15px 17px;border-bottom:1px solid #ead8ca;background:#fffaf5}
.on-this-day-year-number{width:82px;flex:0 0 82px;border-right:1px solid #e3cbbb}
.on-this-day-year-number b{display:block;font-size:22px;color:#963629}.on-this-day-year-number small{display:block;margin-top:2px;font-size:7px;color:#a38072}
.on-this-day-year>header span{font-size:7px;letter-spacing:.14em;color:#ad755f}.on-this-day-year>header h2{margin:3px 0 0;font-size:13px;color:#674239}
.on-this-day-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:#ead8ca}
.on-this-day-item{min-width:0;display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px;padding:12px;background:#fffdf9;text-decoration:none;color:inherit}
.on-this-day-item:hover{background:#fff8f1}
.on-this-day-photo{position:relative;height:112px;border-radius:12px;overflow:hidden;background:#efe6df}
.on-this-day-photo>img{width:100%;height:100%;object-fit:cover;display:block}
.on-this-day-photo .anniversary-calendar{left:8px;top:8px;right:auto;bottom:auto}
.on-this-day-photo>em{position:absolute;right:7px;bottom:7px;padding:4px 6px;border-radius:999px;background:rgba(145,43,32,.9);color:#fff;font-size:6px;font-style:normal;font-weight:800}
.on-this-day-copy{min-width:0;align-self:center}
.on-this-day-copy>span{display:block;font-size:7px;color:#a06b58;text-transform:uppercase}
.on-this-day-copy h3{margin:5px 0;font-size:12px;color:#5d382f;line-height:1.35}
.on-this-day-copy p{margin:0;font-size:8px;line-height:1.5;color:#876d62;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.on-this-day-copy small{display:block;margin-top:8px;font-size:7px;color:#a0867a}
.on-this-day-empty{text-align:center;padding:36px 20px!important}.on-this-day-empty>div{font-size:34px;color:#aa6c51}.on-this-day-empty h2{font-size:17px;color:#6d392f}.on-this-day-empty p{max-width:560px;margin:8px auto 17px;color:#8d7267;line-height:1.6}

@media(max-width:820px){
  .on-this-day-page{padding:0 10px 84px!important}
  .on-this-day-hero{grid-template-columns:62px minmax(0,1fr);gap:11px;padding:14px!important}
  .on-this-day-calendar{width:58px;height:65px;border-radius:14px}.on-this-day-calendar b{font-size:24px}.on-this-day-calendar span{font-size:6px}
  .on-this-day-hero h1{font-size:18px;line-height:1.18}.on-this-day-hero p{font-size:9px}
  .on-this-day-hero>.btn{grid-column:1/-1;width:100%}
  .on-this-day-filter{margin:0 -1px}
  .on-this-day-year>header{padding:12px}.on-this-day-year-number{width:68px;flex-basis:68px}.on-this-day-year-number b{font-size:18px}
  .on-this-day-grid{grid-template-columns:1fr}
  .on-this-day-item{grid-template-columns:118px minmax(0,1fr);padding:9px;gap:9px}
  .on-this-day-photo{height:96px}.on-this-day-copy h3{font-size:11px}
}


/* =========================================================
   V1.9.5 · Gọn lại Phả đồ / mật khẩu / bộ lọc Tường nhà
========================================================= */
.family-desktop-zoom-slider.family-zoom-horizontal{
  display:flex!important;align-items:center!important;gap:7px!important;
  min-width:155px;padding:6px 9px!important;border:1px solid #e4cebd!important;
  border-radius:11px!important;background:#fffaf5!important;
}
.family-desktop-zoom-slider.family-zoom-horizontal input{
  writing-mode:horizontal-tb!important;direction:ltr!important;
  width:110px!important;height:auto!important;accent-color:#9d3729;
}
.family-desktop-zoom-slider.family-zoom-horizontal span{
  font-size:13px;font-weight:800;color:#805347;line-height:1;
}
.family-original-controls{gap:6px!important}

/* mắt đổi mật khẩu phải nhìn rõ trên nền sáng */
.settings-password-form .password-field-inline .password-eye{
  background:#f1dfd1!important;
  color:#7d2d21!important;
  border-left:1px solid #ddc4b1!important;
  font-weight:900!important;
}
.settings-password-form .password-field-inline .password-eye:hover,
.settings-password-form .password-field-inline .password-eye.active{
  background:#9c3528!important;color:#fff!important;
}

/* Bộ lọc Tường nhà: 2 select gọn thay cho dãy nút dài */
.wall-filter-compact{
  margin-top:10px;padding-top:10px;border-top:1px solid #ead8ca;
  display:grid;grid-template-columns:minmax(130px,.8fr) minmax(150px,1fr) minmax(170px,1fr) auto;
  gap:8px;align-items:end;
}
.wall-filter-title{display:flex;align-items:center;gap:7px;min-width:0}
.wall-filter-title>span{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:#f2dfd0;color:#8f3326;font-size:14px}
.wall-filter-title b,.wall-filter-title small{display:block}.wall-filter-title b{font-size:9px;color:#684037}.wall-filter-title small{font-size:7px;color:#9d8073;margin-top:1px}
.wall-filter-compact label>span{display:block;margin:0 0 4px;font-size:7px;font-weight:800;color:#8e6b5d;text-transform:uppercase;letter-spacing:.06em}
.wall-filter-compact select{
  width:100%;height:35px;border:1px solid #e1c9b7;border-radius:10px;background:#fffaf5;
  color:#66463d;padding:0 30px 0 9px;font-size:9px;
}
.wall-filter-reset{
  height:35px;display:flex;align-items:center;justify-content:center;padding:0 10px;
  border-radius:10px;background:#f3e4d8;color:#93372a;text-decoration:none;font-size:8px;font-weight:700;
}
.composer-filter-shell>.filter-tabs{display:none!important}

@media(max-width:820px){
  .family-desktop-zoom-slider.family-zoom-horizontal{display:none!important}
  .wall-filter-compact{
    grid-template-columns:1fr 1fr!important;gap:7px!important;
    margin-top:9px;padding-top:9px;
  }
  .wall-filter-title{grid-column:1/-1}
  .wall-filter-reset{grid-column:1/-1;height:32px}
  .wall-filter-compact select{font-size:16px!important;height:40px}
}


/* =========================================================
   V1.9.6 · Toolbar phả đồ & bộ lọc đồng bộ
========================================================= */

/* Phả đồ: slider và hai chức năng thành một cụm ngang sạch */
.family-view-tools{
  display:flex!important;
  align-items:stretch!important;
  gap:8px!important;
  flex-wrap:nowrap!important;
}
.family-zoom-control{
  min-width:185px;
  height:46px;
  display:flex!important;
  align-items:center!important;
  gap:9px!important;
  padding:6px 11px!important;
  border:1px solid #e4cebd!important;
  border-radius:13px!important;
  background:linear-gradient(180deg,#fffdf9,#fbf1e7)!important;
  box-shadow:0 4px 12px rgba(98,56,37,.05);
}
.family-zoom-icon{
  width:29px;height:29px;flex:0 0 29px;
  border-radius:9px;display:grid;place-items:center;
  background:#f0ddd0;color:#8d3428;font-size:14px;
}
.family-zoom-control>div{display:grid;gap:3px;min-width:0;flex:1}
.family-zoom-control small{
  font-size:7px;color:#89695d;font-weight:800;letter-spacing:.04em;
}
.family-zoom-control input{
  width:100%!important;height:4px!important;margin:0!important;
  writing-mode:horizontal-tb!important;direction:ltr!important;
  accent-color:#a33a2b;cursor:pointer;
}
.family-view-actions{
  display:flex;align-items:stretch;gap:6px;
}
.family-view-action{
  width:58px!important;height:46px!important;padding:5px!important;
  display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:2px!important;
  border:1px solid #e4cebd!important;border-radius:13px!important;
  background:#fffaf5!important;color:#724a3f!important;
  transition:.18s ease;
}
.family-view-action span{font-size:15px;line-height:1;color:#963628}
.family-view-action small{font-size:6.5px!important;white-space:nowrap;font-weight:700}
.family-view-action:hover{background:#a1392a!important;color:#fff!important;border-color:#a1392a!important;transform:translateY(-1px)}
.family-view-action:hover span{color:#fff}

/* Một hệ thống filter dùng chung cho Wall + Timeline */
.memory-filter-toolbar{
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
  padding:10px 12px!important;
  border-top:1px solid #ead9cb;
  background:linear-gradient(180deg,rgba(255,253,249,.72),rgba(249,239,230,.74));
}
.memory-filter-heading{
  min-width:155px;display:flex;align-items:center;gap:9px;
}
.memory-filter-icon{
  width:34px;height:34px;flex:0 0 34px;border-radius:11px;
  display:grid;place-items:center;background:#f0ddcf;color:#903427;font-size:15px;
}
.memory-filter-heading b,.memory-filter-heading small{display:block}
.memory-filter-heading b{font-size:9px;color:#603c33}
.memory-filter-heading small{font-size:7px;color:#9a7b6f;margin-top:2px;white-space:nowrap}
.memory-filter-fields{
  flex:1;min-width:0;display:grid;grid-template-columns:repeat(2,minmax(160px,1fr));gap:8px;
}
.memory-filter-field{
  min-width:0;position:relative;display:block!important;
  padding:6px 9px 7px;border:1px solid #e5d0bf;border-radius:12px;background:#fffdf9;
  transition:.18s ease;
}
.memory-filter-field:focus-within{border-color:#b66550;box-shadow:0 0 0 3px rgba(160,58,42,.07)}
.memory-filter-field>span{
  display:block!important;margin:0 0 2px!important;
  font-size:6.5px!important;font-weight:800!important;
  color:#a07868!important;text-transform:uppercase;letter-spacing:.08em;
}
.memory-filter-field select{
  width:100%!important;height:25px!important;min-height:25px!important;
  padding:0 24px 0 0!important;border:0!important;background:transparent!important;
  box-shadow:none!important;color:#5f4037!important;font-size:9px!important;font-weight:700!important;
  outline:0!important;
}
.memory-filter-clear{
  flex:0 0 auto;height:39px;display:flex;align-items:center;justify-content:center;gap:4px;
  padding:0 11px;border:1px solid #e5cbbb;border-radius:11px;
  background:#fff7f0;color:#94372a;text-decoration:none;font-size:8px;font-weight:800;
}
.memory-filter-clear:hover{background:#9e392a;color:#fff}

/* loại bỏ style V1.9.5 cũ của wall filter */
.wall-filter-compact{
  margin-top:9px!important;
  grid-template-columns:none!important;
}
.wall-filter-title,.wall-filter-reset{display:none!important}

/* Timeline: tiêu đề và filter tách nhịp rõ, không còn dãy pill dài */
.timeline-life-control{padding:0!important;overflow:hidden}
.timeline-life-heading{padding:18px 19px 12px}
.timeline-life-heading h1{margin:4px 0 4px;font-size:21px;color:#71382d}
.timeline-life-heading p{margin:0;font-size:9px;color:#927367}
.timeline-memory-filter{border-top:1px solid #e8d6c8!important}
.timeline-memory-filter .timeline-year-field{max-width:210px}
.timeline-filter-pills,.timeline-year-select{display:none!important}

@media(max-width:1050px){
  .memory-filter-toolbar{gap:8px!important}
  .memory-filter-heading{min-width:130px}
  .memory-filter-heading small{white-space:normal}
}

@media(max-width:820px){
  .family-view-tools{display:none!important}
  .memory-filter-toolbar{
    display:grid!important;grid-template-columns:1fr!important;
    gap:8px!important;padding:10px!important;
  }
  .memory-filter-heading{min-width:0;width:100%}
  .memory-filter-fields{width:100%;grid-template-columns:1fr 1fr;gap:7px}
  .memory-filter-field{padding:5px 8px 6px}
  .memory-filter-field select{font-size:16px!important;height:31px!important;min-height:31px!important}
  .memory-filter-clear{width:100%;height:34px}
  .timeline-life-heading{padding:15px 13px 9px}
  .timeline-life-heading h1{font-size:18px}
}

@media(max-width:430px){
  .memory-filter-fields{grid-template-columns:1fr}
}


/* =========================================================
   V1.9.7 · Phả đồ toolbar đúng mẫu đã chọn
   Slider + hai icon cùng chiều cao menu nhánh
========================================================= */
@media(min-width:821px){
  .family-original-toolbar{
    align-items:stretch!important;
  }
  .family-original-branches{
    align-items:stretch!important;
  }
  .family-original-branches>button,
  .family-view-tools-inline{
    height:56px!important;
    min-height:56px!important;
    max-height:56px!important;
  }
  .family-view-tools-inline{
    display:flex!important;
    align-items:stretch!important;
    gap:5px!important;
    flex:0 0 auto!important;
  }
  .family-zoom-inline{
    width:220px!important;
    height:56px!important;
    box-sizing:border-box!important;
    display:flex!important;
    align-items:center!important;
    gap:10px!important;
    padding:0 13px!important;
    margin:0!important;
    border:1px solid #e2c9b6!important;
    border-radius:13px!important;
    background:#fffaf5!important;
    box-shadow:none!important;
  }
  .family-zoom-inline>span{
    flex:0 0 auto;
    font-size:15px!important;
    line-height:1!important;
    color:#6f463b!important;
    font-weight:900!important;
  }
  .family-zoom-inline input{
    flex:1!important;
    width:auto!important;
    min-width:105px!important;
    height:5px!important;
    margin:0!important;
    writing-mode:horizontal-tb!important;
    direction:ltr!important;
    accent-color:#a33a2b!important;
    cursor:pointer;
  }
  .family-inline-icon-btn{
    width:48px!important;
    height:56px!important;
    min-width:48px!important;
    min-height:56px!important;
    max-height:56px!important;
    padding:0!important;
    margin:0!important;
    display:grid!important;
    place-items:center!important;
    border:1px solid #e2c9b6!important;
    border-radius:13px!important;
    background:#fffaf5!important;
    color:#7f3024!important;
    font-size:19px!important;
    line-height:1!important;
    box-shadow:none!important;
    transition:.16s ease!important;
  }
  .family-inline-icon-btn:hover{
    background:#a23829!important;
    color:#fff!important;
    border-color:#a23829!important;
  }

  /* vô hiệu layout toolbar V1.9.6 cũ */
  .family-zoom-control,.family-view-actions,.family-view-action{display:none!important}
}

@media(max-width:820px){
  .family-view-tools-inline{display:none!important}
}


/* =========================================================
   V1.9.8 · Family toolbar chống đè menu
========================================================= */
@media(min-width:821px){
  .family-original-toolbar{
    display:grid!important;
    grid-template-columns:minmax(180px,210px) minmax(0,1fr) auto!important;
    gap:8px!important;
    align-items:stretch!important;
    overflow:hidden!important;
  }
  .family-original-viewer{min-width:0!important}
  .family-original-branches{
    min-width:0!important;
    max-width:100%!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    flex-wrap:nowrap!important;
    scrollbar-width:none!important;
    padding:3px!important;
  }
  .family-original-branches::-webkit-scrollbar{display:none!important}
  .family-original-branches>button{
    flex:0 0 auto!important;
    white-space:nowrap!important;
    padding-left:11px!important;
    padding-right:11px!important;
  }
  .family-view-tools-inline{
    position:relative!important;
    z-index:1!important;
    width:auto!important;
    min-width:0!important;
    flex:0 0 auto!important;
    background:#fffaf4!important;
  }
  .family-zoom-inline{
    width:210px!important;
    min-width:180px!important;
  }
  .family-inline-icon-btn{
    width:46px!important;
    min-width:46px!important;
  }
}
@media(min-width:821px) and (max-width:1250px){
  .family-original-toolbar{
    grid-template-columns:150px minmax(0,1fr) auto!important;
  }
  .family-original-viewer small{display:none!important}
  .family-original-viewer img{width:34px!important;height:34px!important}
  .family-zoom-inline{width:170px!important;min-width:150px!important;padding:0 9px!important}
  .family-inline-icon-btn{width:42px!important;min-width:42px!important}
}


/* =========================================================
   V1.9.8 · Bộ lọc module đồng bộ Nhà Mình
========================================================= */
.module-filter-toolbar{
  margin:10px 0 14px!important;
  border:1px solid #e7d2c1!important;
  border-radius:16px!important;
  background:linear-gradient(180deg,#fffdf9,#fbf2e9)!important;
  padding:10px 12px!important;
}
.module-filter-toolbar .memory-filter-fields{align-items:stretch}
.module-filter-toolbar .memory-filter-field input{
  width:100%;height:25px;min-height:25px;
  padding:0;border:0;background:transparent;outline:0;
  font-size:9px;font-weight:700;color:#5f4037;
}
.directory-filter-fields{grid-template-columns:150px 145px minmax(220px,1fr)!important}
.album-filter-fields{grid-template-columns:minmax(180px,1fr) 145px 145px!important}
.ancestor-filter-fields{grid-template-columns:180px minmax(220px,1fr)!important}
.module-filter-submit{
  flex:0 0 auto;height:39px;padding:0 14px;border:0;border-radius:11px;
  background:#9d3829;color:#fff;font-size:8px;font-weight:800;cursor:pointer;
}
.directory-toolbar{grid-template-columns:1fr!important}
.directory-toolbar-copy{max-width:760px}
.directory-subtools,.album-tabs,.album-time-filter,.ancestor-directory-tools{display:none!important}

@media(max-width:1050px) and (min-width:821px){
  .directory-filter-fields{grid-template-columns:130px 130px minmax(170px,1fr)!important}
  .album-filter-fields{grid-template-columns:minmax(150px,1fr) 120px 120px!important}
  .ancestor-filter-fields{grid-template-columns:160px minmax(170px,1fr)!important}
}
@media(max-width:820px){
  .module-filter-toolbar{display:grid!important}
  .directory-filter-fields,.album-filter-fields,.ancestor-filter-fields{
    grid-template-columns:1fr 1fr!important;
  }
  .directory-search-field,.ancestor-search-field{grid-column:1/-1}
  .module-filter-toolbar .memory-filter-field input{font-size:16px!important;height:31px;min-height:31px}
  .module-filter-submit{width:100%;height:36px}
}
@media(max-width:430px){
  .directory-filter-fields,.album-filter-fields,.ancestor-filter-fields{grid-template-columns:1fr!important}
  .directory-search-field,.ancestor-search-field{grid-column:auto}
}


/* =========================================================
   V1.9.8.1 · PHẢ ĐỒ
   Dựa nguyên V1.9.8, chỉ đưa zoom + căn giữa + trợ giúp
   ra khỏi menu và nổi ở góc phải bên trong vùng phả đồ.
========================================================= */
@media(min-width:821px){

  /* menu phía trên quay lại chỉ làm nhiệm vụ menu */
  .family-original-toolbar{
    position:relative!important;
  }

  .family-original-controls,
  .family-view-tools,
  .family-view-tools-inline{
    display:none!important;
  }

  /* vùng canvas làm mốc cho cụm tool nổi */
  .family-layout{
    position:relative!important;
  }

  .family-tree-floating-tools{
    position:absolute!important;
    top:14px!important;
    right:14px!important;
    z-index:40!important;

    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    gap:7px!important;

    padding:7px!important;
    border:1px solid #e3cbb9!important;
    border-radius:15px!important;
    background:rgba(255,250,245,.94)!important;
    box-shadow:0 7px 22px rgba(78,43,29,.10)!important;
    backdrop-filter:blur(7px);
  }

  .family-zoom-vertical{
    width:42px!important;
    height:148px!important;
    margin:0!important;
    padding:7px 5px!important;

    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:5px!important;

    box-sizing:border-box!important;
    border:1px solid #e3cbb9!important;
    border-radius:11px!important;
    background:#fffaf5!important;
  }

  .family-zoom-vertical>span{
    flex:0 0 auto!important;
    font-size:14px!important;
    line-height:1!important;
    font-weight:900!important;
    color:#743f34!important;
  }

  .family-zoom-vertical input{
    width:112px!important;
    height:20px!important;
    min-width:112px!important;
    margin:0!important;

    transform:rotate(-90deg)!important;
    transform-origin:center center!important;

    accent-color:#a13a2b!important;
    cursor:pointer!important;
  }

  .family-floating-tool-btn{
    width:42px!important;
    height:42px!important;
    min-width:42px!important;
    min-height:42px!important;

    display:grid!important;
    place-items:center!important;

    margin:0!important;
    padding:0!important;
    border:1px solid #e3cbb9!important;
    border-radius:11px!important;
    background:#fffaf5!important;
    color:#803226!important;

    font-size:17px!important;
    line-height:1!important;
    box-shadow:none!important;
    cursor:pointer!important;
    transition:.16s ease!important;
  }

  .family-floating-tool-btn:hover{
    background:#a23a2b!important;
    color:#fff!important;
    border-color:#a23a2b!important;
  }
}

@media(max-width:820px){
  .family-tree-floating-tools{
    display:none!important;
  }
}


/* =========================================================
   V1.9.8.2 · Floating tools Phả đồ
   - Tắt/hiện hậu duệ nữ chuyển khỏi menu nhánh
   - Mobile hiện Căn giữa + Trợ giúp + Hậu duệ nữ
========================================================= */

.family-female-toggle-btn{
  font-size:15px!important;
}

/* Desktop: 3 nút nằm dưới slider theo một cột */
@media(min-width:821px){
  .family-tree-floating-tools .family-female-toggle-btn{
    display:grid!important;
  }
}

/* Mobile: không hiện slider, nhưng phải có đủ 3 nút chức năng */
@media(max-width:820px){
  .family-tree-floating-tools{
    position:absolute!important;
    top:10px!important;
    right:9px!important;
    z-index:45!important;

    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    gap:5px!important;

    padding:5px!important;
    border:1px solid #e3cbb9!important;
    border-radius:13px!important;
    background:rgba(255,250,245,.94)!important;
    box-shadow:0 5px 16px rgba(78,43,29,.10)!important;
    backdrop-filter:blur(6px);
  }

  .family-tree-floating-tools .family-zoom-vertical{
    display:none!important;
  }

  .family-tree-floating-tools .family-floating-tool-btn{
    width:38px!important;
    height:38px!important;
    min-width:38px!important;
    min-height:38px!important;
    padding:0!important;
    margin:0!important;

    display:grid!important;
    place-items:center!important;

    border:1px solid #e3cbb9!important;
    border-radius:10px!important;
    background:#fffaf5!important;
    color:#7f3024!important;
    font-size:16px!important;
    line-height:1!important;
    box-shadow:none!important;
  }

  .family-tree-floating-tools .family-female-toggle-btn{
    font-size:14px!important;
  }
}


/* =========================================================
   V1.9.8.3 · Family floating tools polish
========================================================= */

.family-female-toggle-btn{
  overflow:hidden!important;
}
.family-female-toggle-btn .family-female-symbol{
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
  font-family:Arial,sans-serif;
  font-size:21px;
  line-height:1;
  font-weight:700;
  color:#8f3428;
}
.family-female-toggle-btn:hover .family-female-symbol,
.family-female-toggle-btn.active .family-female-symbol{
  color:#fff;
}

/* Desktop: slider đứng, ngay dưới là Nữ, rồi Căn giữa, Trợ giúp */
@media(min-width:821px){
  .family-layout{
    position:relative!important;
  }
  .family-tree-floating-tools{
    position:absolute!important;
    top:14px!important;
    right:14px!important;
    z-index:40!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    gap:7px!important;
    padding:7px!important;
    border:1px solid #e3cbb9!important;
    border-radius:15px!important;
    background:rgba(255,250,245,.95)!important;
    box-shadow:0 7px 22px rgba(78,43,29,.10)!important;
  }
  .family-tree-floating-tools .family-zoom-vertical{order:1}
  .family-tree-floating-tools .family-female-toggle-btn{order:2}
  .family-tree-floating-tools .family-floating-tool-btn:not(.family-female-toggle-btn):nth-of-type(2){order:3}
  .family-tree-floating-tools .family-floating-tool-btn:not(.family-female-toggle-btn):nth-of-type(3){order:4}

  .family-female-toggle-btn{
    width:42px!important;
    height:42px!important;
    min-width:42px!important;
    min-height:42px!important;
  }
}

/* Mobile: cụm công cụ KHÔNG nổi đè lên cây/menu.
   Nó trở thành một hàng riêng ngay dưới menu nhánh và phía trên canvas. */
@media(max-width:820px){
  .family-layout{
    position:relative!important;
    display:flex!important;
    flex-direction:column!important;
  }

  .family-tree-floating-tools{
    position:static!important;
    inset:auto!important;
    z-index:auto!important;

    order:0!important;
    width:auto!important;
    min-height:46px!important;
    align-self:flex-end!important;

    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:6px!important;

    margin:7px 8px 5px!important;
    padding:4px!important;

    border:1px solid #e3cbb9!important;
    border-radius:13px!important;
    background:#fffaf5!important;
    box-shadow:none!important;
    backdrop-filter:none!important;
  }

  #family-tree{
    order:1!important;
  }

  .family-tree-floating-tools .family-zoom-vertical{
    display:none!important;
  }

  .family-tree-floating-tools .family-floating-tool-btn{
    width:38px!important;
    height:38px!important;
    min-width:38px!important;
    min-height:38px!important;
    padding:0!important;
    margin:0!important;
    border:1px solid #e3cbb9!important;
    border-radius:10px!important;
    background:#fffaf5!important;
    color:#7f3024!important;
    display:grid!important;
    place-items:center!important;
    font-size:16px!important;
    line-height:1!important;
    box-shadow:none!important;
  }

  /* Mobile order: Nữ | Căn giữa | Trợ giúp */
  .family-tree-floating-tools .family-female-toggle-btn{order:1!important}
  .family-tree-floating-tools .family-floating-tool-btn:not(.family-female-toggle-btn):nth-of-type(2){order:2!important}
  .family-tree-floating-tools .family-floating-tool-btn:not(.family-female-toggle-btn):nth-of-type(3){order:3!important}

  .family-female-toggle-btn .family-female-symbol{
    font-size:20px!important;
  }
}


/* =========================================================
   V1.9.8.4 · Hậu duệ nữ: chỉ dùng ký hiệu ♀ và đổi màu trạng thái
========================================================= */
.family-female-toggle-btn{
  overflow:hidden!important;
}
.family-female-toggle-btn .family-female-symbol{
  display:grid!important;
  place-items:center!important;
  width:100%!important;
  height:100%!important;
  font-family:Arial,sans-serif!important;
  font-size:22px!important;
  line-height:1!important;
  font-weight:800!important;
  color:#9b3528!important;
  transition:color .16s ease,transform .16s ease!important;
}
/* active = đang ẩn hậu duệ nữ */
.family-female-toggle-btn.active{
  background:#fffaf5!important;
  border-color:#e3cbb9!important;
}
.family-female-toggle-btn.active .family-female-symbol{
  color:#a99a92!important;
}
.family-female-toggle-btn:not(.active) .family-female-symbol{
  color:#a23829!important;
}
.family-female-toggle-btn:hover .family-female-symbol{
  transform:scale(1.08);
}

/* Desktop: không đổi nền/nội dung, chỉ đổi màu ký hiệu ♀ */
@media(min-width:821px){
  .family-tree-floating-tools .family-female-toggle-btn:hover,
  .family-tree-floating-tools .family-female-toggle-btn.active{
    background:#fffaf5!important;
    color:inherit!important;
  }
}

/* Mobile: nút ♀ rõ hơn, vẫn nằm trong hàng công cụ bên dưới menu */
@media(max-width:820px){
  .family-tree-floating-tools .family-female-toggle-btn{
    width:42px!important;
    height:42px!important;
    min-width:42px!important;
    min-height:42px!important;
    border-width:1px!important;
  }
  .family-tree-floating-tools .family-female-toggle-btn .family-female-symbol{
    font-size:24px!important;
  }
}


/* V1.9.8.5 - trạng thái nút hậu duệ nữ rõ ràng bằng cả nền + icon */
.family-female-toggle-btn{
  transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease!important;
}

/* Bình thường: đang hiện hậu duệ nữ */
.family-tree-floating-tools .family-female-toggle-btn:not(.active){
  background:#fff7f0!important;
  border-color:#dfb9a7!important;
  box-shadow:none!important;
}
.family-tree-floating-tools .family-female-toggle-btn:not(.active) .family-female-symbol{
  color:#a23829!important;
}

/* Đã bấm: đang ẩn hậu duệ nữ */
.family-tree-floating-tools .family-female-toggle-btn.active{
  background:#a83a29!important;
  border-color:#a83a29!important;
  box-shadow:0 3px 10px rgba(107,42,31,.18)!important;
}
.family-tree-floating-tools .family-female-toggle-btn.active .family-female-symbol{
  color:#ffffff!important;
}

/* Hover không được làm mất dấu trạng thái */
.family-tree-floating-tools .family-female-toggle-btn.active:hover{
  background:#a83a29!important;
  border-color:#a83a29!important;
}
.family-tree-floating-tools .family-female-toggle-btn.active:hover .family-female-symbol{
  color:#ffffff!important;
}


/* V1.9.8.6 · Phả đồ không nhảy khi cập nhật dữ liệu */
#family-tree svg,
#family-tree svg g.family-node{
  transition:none!important;
}


/* =========================================================
   V1.9.8.8 · Chọn thành viên đã tồn tại khi nối Cha/Mẹ
========================================================= */
.family-existing-member-profile{
  grid-column:1/-1;
  margin-top:8px;
  padding:10px;
  display:grid;
  grid-template-columns:52px minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  border:1px solid #dcc0ac;
  border-radius:12px;
  background:linear-gradient(180deg,#fffaf5,#f7ebe1);
}
.family-existing-member-profile[hidden]{display:none!important}
.family-existing-member-profile img{
  width:52px;height:52px;border-radius:12px;object-fit:cover;
  border:1px solid #d7b79f;background:#fff;
}
.family-existing-member-copy{min-width:0}
.family-existing-member-copy>small{
  display:block;font-size:7px;font-weight:800;letter-spacing:.12em;color:#a16a55;margin-bottom:2px
}
.family-existing-member-copy>strong{
  display:block;font-size:12px;color:#68382d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
#family-existing-member-meta{font-size:8px;color:#76574c;margin-top:2px}
#family-existing-member-status{font-size:7px;color:#9a7769;margin-top:3px}
.family-existing-member-badge{
  white-space:nowrap;padding:6px 8px;border-radius:999px;
  background:#e7f1df;color:#4c6f39;font-size:7px;font-weight:800
}

#family-add-form.existing-member-selected .nm-add-section:not(:first-of-type){
  position:relative;
}
#family-add-form.existing-member-selected input[readonly],
#family-add-form.existing-member-selected select:disabled{
  background:#f3eee9!important;
  color:#765f55!important;
  cursor:not-allowed!important;
}
#family-add-form.existing-member-selected input[type="file"]:disabled{
  opacity:.5;cursor:not-allowed
}
#family-add-form .existing-link-submit{
  background:#527a42!important;
  border-color:#527a42!important;
}

@media(max-width:820px){
  .family-existing-member-profile{
    grid-template-columns:46px minmax(0,1fr);
  }
  .family-existing-member-profile img{width:46px;height:46px}
  .family-existing-member-badge{
    grid-column:1/-1;
    justify-self:start;
  }
}


/* =========================================================
   V1.9.8.9 · Làm lại giao diện "người đã tồn tại"
   Chỉ chỉnh layout, không thay logic liên kết.
========================================================= */

/* Khi ô Cha/Mẹ có sẵn được bật, nó chiếm 2 cột còn lại của hàng Quan hệ */
.nm-add-grid-3 > #family-existing-parent-wrap{
  min-width:0;
}
.nm-add-grid-3 > #family-existing-parent-wrap[style*="display: grid"]{
  grid-column:span 2!important;
  grid-template-columns:minmax(210px,280px) minmax(280px,1fr)!important;
  gap:12px!important;
  align-items:end!important;
  padding:10px!important;
  border:1px dashed #dfc4b0!important;
  border-radius:13px!important;
  background:#fff9f3!important;
}

/* Phần select riêng, không bị profile ép lại */
#family-existing-parent-wrap > label{
  min-width:0!important;
  margin:0!important;
}
#family-existing-parent-wrap > label > span{
  display:block!important;
  margin-bottom:6px!important;
}
#family-existing-parent-wrap > label select{
  width:100%!important;
  min-width:0!important;
  height:42px!important;
}
#family-existing-parent-wrap > label small{
  display:block!important;
  margin-top:5px!important;
  line-height:1.35!important;
}

/* Card hồ sơ nằm ngang gọn, dễ đọc */
.family-existing-member-profile{
  min-width:0!important;
  width:100%!important;
  margin:0!important;
  padding:9px 11px!important;
  grid-template-columns:54px minmax(0,1fr) auto!important;
  gap:10px!important;
  align-items:center!important;
  border:1px solid #e1c6b4!important;
  border-radius:12px!important;
  background:#fffdf9!important;
  box-shadow:0 3px 12px rgba(85,48,34,.04)!important;
}
.family-existing-member-profile img{
  width:54px!important;
  height:54px!important;
  border-radius:12px!important;
}
.family-existing-member-copy{
  min-width:0!important;
}
.family-existing-member-copy>small{
  font-size:7px!important;
  letter-spacing:.12em!important;
  margin-bottom:3px!important;
}
.family-existing-member-copy>strong{
  font-size:12px!important;
  line-height:1.25!important;
  white-space:normal!important;
  overflow:visible!important;
}
#family-existing-member-meta{
  font-size:8px!important;
  line-height:1.35!important;
  margin-top:3px!important;
  white-space:normal!important;
}
#family-existing-member-status{
  font-size:7px!important;
  line-height:1.35!important;
  margin-top:3px!important;
}
.family-existing-member-badge{
  align-self:center!important;
  padding:6px 9px!important;
  font-size:7px!important;
}

/* Form dữ liệu người có sẵn: vẫn đọc rõ, không quá mờ */
#family-add-form.existing-member-selected input[readonly],
#family-add-form.existing-member-selected select:disabled{
  background:#f5f0eb!important;
  color:#694c42!important;
  opacity:1!important;
  -webkit-text-fill-color:#694c42!important;
}
#family-add-form.existing-member-selected input[type="file"]:disabled{
  opacity:.55!important;
}

/* Tablet / modal hẹp */
@media(max-width:900px){
  .nm-add-grid-3 > #family-existing-parent-wrap[style*="display: grid"]{
    grid-template-columns:minmax(190px,240px) minmax(230px,1fr)!important;
  }
}

/* Mobile: role một hàng, phần người có sẵn xuống hàng đầy đủ */
@media(max-width:820px){
  .nm-add-grid-3 > #family-existing-parent-wrap[style*="display: grid"]{
    grid-column:1/-1!important;
    grid-template-columns:1fr!important;
    gap:9px!important;
    padding:9px!important;
  }
  .family-existing-member-profile{
    grid-template-columns:48px minmax(0,1fr)!important;
    padding:9px!important;
  }
  .family-existing-member-profile img{
    width:48px!important;
    height:48px!important;
  }
  .family-existing-member-badge{
    grid-column:1/-1!important;
    justify-self:start!important;
  }
}


/* =========================================================
   V1.9.8.10 · Card hồ sơ đã tồn tại gọn hơn
========================================================= */
.nm-add-grid-3 > #family-existing-parent-wrap[style*="display: grid"]{
  grid-template-columns:minmax(0,1fr)!important;
  max-width:440px!important;
  width:100%!important;
  align-self:start!important;
}
.family-existing-member-profile{
  width:100%!important;
  max-width:420px!important;
  grid-template-columns:48px minmax(0,1fr)!important;
  gap:9px!important;
  padding:8px 9px!important;
}
.family-existing-member-profile img{
  width:48px!important;
  height:48px!important;
}
.family-existing-member-copy>strong{
  font-size:11px!important;
}
.family-existing-member-badge{
  grid-column:2!important;
  justify-self:start!important;
  margin-top:2px!important;
  padding:4px 7px!important;
}
#family-existing-parent-wrap > label select{
  max-width:330px!important;
}

@media(max-width:820px){
  .nm-add-grid-3 > #family-existing-parent-wrap[style*="display: grid"]{
    max-width:none!important;
  }
  .family-existing-member-profile{
    max-width:none!important;
  }
  #family-existing-parent-wrap > label select{
    max-width:none!important;
  }
}


/* V1.9.8.10 · Đăng ký bước 2 */
.register-personal-grid{
  margin-top:2px;
}
.auth-input-wrap select{
  width:100%;
  min-width:0;
  height:100%;
  border:0;
  outline:0;
  background:transparent;
  color:inherit;
  font:inherit;
  padding-right:10px;
}
@media(max-width:620px){
  .register-personal-grid{
    grid-template-columns:1fr!important;
  }
}


/* =========================================================
   V1.9.8.14 · Tường gia đình — trình bày bài & gallery ảnh
========================================================= */
.composer-style-row{display:grid;grid-template-columns:1.35fr 1fr;gap:14px;align-items:end}
.composer-style-label{display:block;font-size:9px;font-weight:800;color:#70453a;margin-bottom:7px}
.composer-background,.composer-text-colors{display:flex;flex-wrap:wrap;gap:7px}
.bg-swatch,.composer-text-colors label{position:relative;display:block;cursor:pointer}
.bg-swatch input,.composer-text-colors input{position:absolute;opacity:0;pointer-events:none}
.bg-swatch span,.composer-text-colors span{display:block;width:34px;height:34px;border:2px solid #fff;border-radius:10px;box-shadow:0 0 0 1px #dfc9b8;transition:.16s ease}
.bg-swatch input:checked+span,.composer-text-colors input:checked+span{box-shadow:0 0 0 2px #a33b2b;transform:translateY(-1px)}
.bg-swatch.plain span{background:#fffaf5}.bg-swatch.sepia span{background:linear-gradient(135deg,#d9c29f,#f2dfbd)}
.bg-swatch.dusk span{background:linear-gradient(135deg,#2e2034,#774355)}.bg-swatch.floral span{background:linear-gradient(135deg,#fff4e9,#f0d7c8)}
.bg-swatch.cream span{background:linear-gradient(135deg,#fff8df,#f4ddaa)}.bg-swatch.sage span{background:linear-gradient(135deg,#eaf2e6,#b8d0b4)}
.bg-swatch.rose span{background:linear-gradient(135deg,#fae7e5,#d9aaa8)}.bg-swatch.night span{background:linear-gradient(135deg,#1f2733,#4a3150)}
.composer-text-colors span{border-radius:50%;background:var(--swatch-color)}
.composer-text-colors label:first-child span{background:linear-gradient(135deg,#fff 0 45%,#8c4b3c 46% 54%,#27211f 55%)}

.memory-body.bg-sepia,.memory-body.bg-dusk,.memory-body.bg-floral,.memory-body.bg-cream,.memory-body.bg-sage,.memory-body.bg-rose,.memory-body.bg-night{padding:35px 26px;margin:0 14px 14px;border-radius:16px;text-align:center;font-size:18px}
.memory-body.bg-cream{background:linear-gradient(135deg,#fff7dd,#f7e7bd)}
.memory-body.bg-sage{background:linear-gradient(135deg,#edf4e8,#c9ddc3)}
.memory-body.bg-rose{background:linear-gradient(135deg,#fbe9e5,#e9c4bf)}
.memory-body.bg-night{color:#fff;background:radial-gradient(circle at 80% 18%,rgba(240,184,141,.3) 0 7%,transparent 8%),linear-gradient(135deg,#202734,#493047)}
.memory-body[style*="--post-text-color"]{color:var(--post-text-color)!important}
.memory-body[style*="--post-text-color"] .memory-title,.memory-body[style*="--post-text-color"] .post-text,.memory-body[style*="--post-text-color"] .story-formatted{color:var(--post-text-color)!important}
.memory-body.bg-dusk .memory-title,.memory-body.bg-night .memory-title{color:inherit}

.facebook-media-frame{padding:0!important;background:transparent!important;border:0!important;border-radius:15px!important;overflow:hidden}
.fb-media-grid{display:grid!important;gap:3px!important;width:100%!important;height:430px!important;border-radius:15px!important;overflow:hidden!important;background:#eee!important;padding:0!important}
.fb-media-grid .media-cell{position:relative!important;overflow:hidden!important;border:0!important;padding:0!important;margin:0!important;background:#eee!important;min-width:0!important;min-height:0!important}
.fb-media-grid .media-cell img{width:100%!important;height:100%!important;object-fit:cover!important;display:block!important;max-height:none!important}
.fb-media-grid .media-cell-1{grid-area:hero}
.fb-media-grid.media-visible-1{display:flex!important;height:auto!important;max-height:520px!important;background:#f1e8df!important}
.fb-media-grid.media-visible-1 .media-cell{width:100%!important;display:flex!important;justify-content:center!important}
.fb-media-grid.media-visible-1 img{width:auto!important;height:auto!important;max-width:100%!important;max-height:520px!important;object-fit:contain!important}
.fb-media-grid.media-visible-2{grid-template-columns:1.35fr .65fr;grid-template-areas:"hero side2"}
.fb-media-grid.media-visible-3{grid-template-columns:1.35fr .65fr;grid-template-rows:1fr 1fr;grid-template-areas:"hero side2" "hero side3"}
.fb-media-grid.media-visible-2 .media-cell-2,.fb-media-grid.media-visible-3 .media-cell-2{grid-area:side2}
.fb-media-grid.media-visible-3 .media-cell-3{grid-area:side3}
.fb-media-grid.media-visible-4{grid-template-columns:1.4fr .6fr;grid-template-rows:repeat(3,1fr);grid-template-areas:"hero s2" "hero s3" "hero s4"}
.fb-media-grid.media-visible-4 .media-cell-2{grid-area:s2}.fb-media-grid.media-visible-4 .media-cell-3{grid-area:s3}.fb-media-grid.media-visible-4 .media-cell-4{grid-area:s4}
.fb-media-grid.media-visible-5{grid-template-columns:repeat(4,1fr);grid-template-rows:1fr 1fr}
.fb-media-grid.media-visible-5 .media-cell-1{grid-column:1/3;grid-row:1/3}.fb-media-grid.media-visible-5 .media-cell-2{grid-column:3;grid-row:1}.fb-media-grid.media-visible-5 .media-cell-3{grid-column:4;grid-row:1}.fb-media-grid.media-visible-5 .media-cell-4{grid-column:3;grid-row:2}.fb-media-grid.media-visible-5 .media-cell-5{grid-column:4;grid-row:2}
.fb-media-grid:is(.media-visible-6,.media-visible-7,.media-visible-8,.media-visible-9){grid-template-columns:repeat(5,1fr);grid-template-rows:repeat(4,1fr)}
.fb-media-grid:is(.media-visible-6,.media-visible-7,.media-visible-8,.media-visible-9) .media-cell-1{grid-column:1/4;grid-row:1/5}
.fb-media-grid:is(.media-visible-6,.media-visible-7,.media-visible-8,.media-visible-9) .media-cell:not(.media-cell-1){grid-column:auto;grid-row:auto}
.more-media-overlay{position:absolute!important;inset:0!important;display:grid!important;place-items:center!important;background:rgba(24,18,16,.56)!important;color:#fff!important;font-size:30px!important;font-weight:800!important;text-shadow:0 2px 6px rgba(0,0,0,.4)}

.image-lightbox{overflow:hidden!important;padding:24px 72px!important;user-select:none}
.image-lightbox-stage{width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:auto;overscroll-behavior:contain}
.image-lightbox-stage img{max-width:92vw!important;max-height:88vh!important;transform-origin:center center;transition:transform .12s ease;border-radius:8px!important}
.image-lightbox .lightbox-close{right:20px!important;top:18px!important;z-index:6}
.image-lightbox .lightbox-nav{position:absolute!important;top:50%!important;transform:translateY(-50%)!important;width:52px!important;height:72px!important;border-radius:14px!important;background:rgba(255,255,255,.92)!important;color:#4b2c21!important;font-size:42px!important;z-index:5}
.image-lightbox .lightbox-prev{left:16px!important;right:auto!important}.image-lightbox .lightbox-next{right:16px!important;left:auto!important}
.image-lightbox-tools{position:absolute;left:50%;bottom:20px;transform:translateX(-50%);display:flex;align-items:center;gap:5px;padding:6px;border-radius:13px;background:rgba(255,255,255,.94);z-index:6}
.image-lightbox-tools button{position:static!important;width:38px!important;height:38px!important;border-radius:9px!important;font-size:20px!important;background:#f6ede7!important}
.image-lightbox-tools span{min-width:48px;text-align:center;color:#60392f;font-size:11px;font-weight:800}
.image-lightbox-counter{position:absolute;top:20px;left:50%;transform:translateX(-50%);padding:6px 10px;border-radius:999px;background:rgba(0,0,0,.45);color:#fff;font-size:12px;z-index:5}
.image-lightbox-caption{position:absolute;left:20px;bottom:24px;max-width:32vw;color:#fff;font-size:12px;text-shadow:0 1px 3px #000}
body.image-lightbox-open{overflow:hidden!important}

@media(max-width:820px){
 .composer-style-row{grid-template-columns:1fr!important}
 .fb-media-grid{height:300px!important}
 .fb-media-grid.media-visible-1{max-height:390px!important}.fb-media-grid.media-visible-1 img{max-height:390px!important}
 .image-lightbox{padding:60px 10px 90px!important}
 .image-lightbox .lightbox-nav{width:42px!important;height:58px!important;font-size:34px!important;background:rgba(255,255,255,.78)!important}
 .image-lightbox .lightbox-prev{left:6px!important}.image-lightbox .lightbox-next{right:6px!important}
 .image-lightbox-stage img{max-width:96vw!important;max-height:78vh!important}
 .image-lightbox-caption{display:none}
}


/* =========================================================
   V1.9.8.15 · Gallery bài viết 2 cột
   Cột trái: ảnh đại diện.
   Cột phải: tối đa 9 ảnh nhỏ.
========================================================= */
.facebook-media-frame{
  width:100%!important;
  overflow:hidden!important;
}

.fb-gallery-v2{
  width:100%!important;
  height:860px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1.62fr) minmax(250px,1fr)!important;
  gap:3px!important;
  overflow:hidden!important;
  background:#efe8e2!important;
  border-radius:14px!important;
}

.fb-gallery-v2.one-photo{
  display:block!important;
  height:auto!important;
  background:transparent!important;
}

.fb-gallery-main,
.fb-gallery-side-cell{
  position:relative!important;
  min-width:0!important;
  min-height:0!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  overflow:hidden!important;
  background:#eee7e1!important;
  cursor:zoom-in!important;
}

.fb-gallery-main{
  width:100%!important;
  height:860px!important;
}

.fb-gallery-v2.one-photo .fb-gallery-main{
  width:100%!important;
  height:auto!important;
  max-height:860px!important;
  display:flex!important;
  justify-content:flex-start!important;
  background:#f4eee9!important;
}

.fb-gallery-v2.one-photo .fb-gallery-main img{
  width:auto!important;
  max-width:100%!important;
  max-height:860px!important;
  object-fit:contain!important;
  object-position:left center!important;
}

.fb-gallery-main img,
.fb-gallery-side-cell img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
}

/* cột phải tự chia theo số ảnh */
.fb-gallery-side{
  min-width:0!important;
  min-height:0!important;
  height:860px!important;
  display:grid!important;
  gap:3px!important;
  overflow:hidden!important;
}

.fb-gallery-side.side-count-1{
  grid-template-columns:1fr!important;
  grid-template-rows:1fr!important;
}
.fb-gallery-side.side-count-2{
  grid-template-columns:1fr!important;
  grid-template-rows:repeat(2,1fr)!important;
}
.fb-gallery-side.side-count-3,
.fb-gallery-side.side-count-4{
  grid-template-columns:repeat(2,1fr)!important;
  grid-template-rows:repeat(2,1fr)!important;
}
.fb-gallery-side.side-count-5,
.fb-gallery-side.side-count-6{
  grid-template-columns:repeat(2,1fr)!important;
  grid-template-rows:repeat(3,1fr)!important;
}
.fb-gallery-side.side-count-7,
.fb-gallery-side.side-count-8,
.fb-gallery-side.side-count-9{
  grid-template-columns:repeat(3,1fr)!important;
  grid-template-rows:repeat(3,1fr)!important;
}

.fb-gallery-side.side-count-3 .fb-gallery-side-cell:last-child{
  grid-column:1/-1!important;
}
.fb-gallery-side.side-count-5 .fb-gallery-side-cell:last-child{
  grid-column:1/-1!important;
}

.fb-gallery-v2 .more-media-overlay{
  position:absolute!important;
  inset:0!important;
  display:grid!important;
  place-items:center!important;
  background:rgba(22,17,15,.54)!important;
  color:#fff!important;
  font-size:26px!important;
  font-weight:900!important;
  text-shadow:0 2px 8px rgba(0,0,0,.4)!important;
}

/* Tắt toàn bộ UI zoom. Chức năng wheel / phím +/- vẫn giữ nguyên. */
.image-lightbox-tools{
  display:none!important;
}

/* Cho ảnh zoom bằng wheel vẫn dễ quan sát khi không còn toolbar */
.image-lightbox-stage img{
  cursor:zoom-in!important;
}
.image-lightbox-stage img[style*="scale("]{
  cursor:grab!important;
}

@media(max-width:820px){
  .fb-gallery-v2{
    height:320px!important;
    grid-template-columns:minmax(0,1.55fr) minmax(105px,.95fr)!important;
    gap:2px!important;
    border-radius:12px!important;
  }
  .fb-gallery-main,
  .fb-gallery-side{
    height:320px!important;
  }
  .fb-gallery-side{
    gap:2px!important;
  }
  .fb-gallery-v2.one-photo{
    height:auto!important;
  }
  .fb-gallery-v2.one-photo .fb-gallery-main{
    height:auto!important;
    max-height:430px!important;
  }
  .fb-gallery-v2.one-photo .fb-gallery-main img{
    max-height:430px!important;
  }
  .fb-gallery-v2 .more-media-overlay{
    font-size:20px!important;
  }
}

@media(max-width:430px){
  .fb-gallery-v2{
    height:286px!important;
    grid-template-columns:minmax(0,1.5fr) minmax(92px,1fr)!important;
  }
  .fb-gallery-main,
  .fb-gallery-side{
    height:286px!important;
  }
}


/* =========================================================
   V1.9.8.17 · Gallery 2 cột vuông đúng theo chiều ngang tường
   - Toàn khung = tỷ lệ 2:1
   - Cột trái = 1 hình vuông
   - Cột phải = 1 hình vuông, chia tối đa 9 ô
========================================================= */
.facebook-media-frame{
  width:100%!important;
  max-width:100%!important;
}

/* Ghi đè hoàn toàn chiều cao cố định 860px của bản trước */
.fb-gallery-v2{
  width:100%!important;
  height:auto!important;
  aspect-ratio:2 / 1!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  grid-template-rows:1fr!important;
  gap:3px!important;
  overflow:hidden!important;
  border-radius:14px!important;
  background:#efe8e2!important;
}

.fb-gallery-main{
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  aspect-ratio:1 / 1!important;
}

.fb-gallery-side{
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  aspect-ratio:1 / 1!important;
  display:grid!important;
  gap:3px!important;
}

/*
 * Chỉ có 1 ảnh:
 * vẫn giữ đúng cột trái hình vuông, không kéo ngang cả tường.
 */
.fb-gallery-v2.one-photo{
  width:100%!important;
  height:auto!important;
  aspect-ratio:2 / 1!important;
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  grid-template-rows:1fr!important;
  gap:3px!important;
  background:transparent!important;
}

.fb-gallery-v2.one-photo .fb-gallery-main{
  width:100%!important;
  height:100%!important;
  max-height:none!important;
  aspect-ratio:1 / 1!important;
  display:block!important;
  background:#f4eee9!important;
}

.fb-gallery-v2.one-photo .fb-gallery-main img{
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:cover!important;
  object-position:center!important;
}

/* Ảnh đại diện luôn phủ kín ô vuông */
.fb-gallery-main img,
.fb-gallery-side-cell img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center!important;
}

/* Cột phải: chia đều trong đúng 1 ô vuông */
.fb-gallery-side.side-count-1{
  grid-template-columns:1fr!important;
  grid-template-rows:1fr!important;
}
.fb-gallery-side.side-count-2{
  grid-template-columns:1fr!important;
  grid-template-rows:repeat(2,minmax(0,1fr))!important;
}
.fb-gallery-side.side-count-3,
.fb-gallery-side.side-count-4{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  grid-template-rows:repeat(2,minmax(0,1fr))!important;
}
.fb-gallery-side.side-count-5,
.fb-gallery-side.side-count-6{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  grid-template-rows:repeat(3,minmax(0,1fr))!important;
}
.fb-gallery-side.side-count-7,
.fb-gallery-side.side-count-8,
.fb-gallery-side.side-count-9{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  grid-template-rows:repeat(3,minmax(0,1fr))!important;
}

/* Không kéo ô cuối spanning nữa: mọi ô phải chia đều đúng kích thước */
.fb-gallery-side.side-count-3 .fb-gallery-side-cell:last-child,
.fb-gallery-side.side-count-5 .fb-gallery-side-cell:last-child{
  grid-column:auto!important;
}

/* Mobile vẫn giữ nguyên nguyên tắc 2 cột vuông */
@media(max-width:820px){
  .fb-gallery-v2,
  .fb-gallery-v2.one-photo{
    height:auto!important;
    aspect-ratio:2 / 1!important;
    grid-template-columns:1fr 1fr!important;
    gap:2px!important;
    border-radius:11px!important;
  }
  .fb-gallery-main,
  .fb-gallery-side,
  .fb-gallery-v2.one-photo .fb-gallery-main{
    height:100%!important;
    max-height:none!important;
    aspect-ratio:1 / 1!important;
  }
  .fb-gallery-v2.one-photo .fb-gallery-main img{
    max-height:none!important;
  }
}

/* =========================================================
   Lightbox: zoom xong có thể rê/drag ảnh
========================================================= */
.image-lightbox-stage{
  overflow:hidden!important;
  touch-action:none!important;
}
.image-lightbox-stage img{
  user-select:none!important;
  -webkit-user-drag:none!important;
  touch-action:none!important;
  transform-origin:center center!important;
  will-change:transform!important;
}
.image-lightbox-stage img.is-zoomed{
  cursor:grab!important;
}
.image-lightbox-stage img.is-dragging{
  cursor:grabbing!important;
}


/* =========================================================
   V1.9.8.18 · SỬA DỨT ĐIỂM ẢNH VUÔNG TRÊN TƯỜNG
   CSS cũ đang khóa .media-frame ở max-height:170px và
   .feed-column .media-frame ở max-width:560/620px.
   Hai rule này làm gallery vuông bị cắt thành hình chữ nhật.
========================================================= */

/* Gallery mới phải dùng toàn bộ chiều ngang card bài viết */
.feed-column .facebook-media-frame,
.memory-card .facebook-media-frame{
  width:auto!important;
  max-width:none!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
  margin:8px 20px 12px!important;
}

/* Khung gallery: ngang = 2 ô vuông => tỷ lệ 2:1 */
.facebook-media-frame .fb-gallery-v2{
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  aspect-ratio:2 / 1!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  grid-template-rows:minmax(0,1fr)!important;
  overflow:hidden!important;
}

/* Cả ảnh đơn cũng phải giữ ô trái vuông, không bị rule ảnh cũ ép 158/170px */
.facebook-media-frame .fb-gallery-v2.one-photo{
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  aspect-ratio:2 / 1!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  grid-template-rows:minmax(0,1fr)!important;
}

.facebook-media-frame .fb-gallery-main,
.facebook-media-frame .fb-gallery-v2.one-photo .fb-gallery-main{
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  max-width:none!important;
  max-height:none!important;
  aspect-ratio:1 / 1!important;
  display:block!important;
  overflow:hidden!important;
}

.facebook-media-frame .fb-gallery-main img,
.facebook-media-frame .fb-gallery-v2.one-photo .fb-gallery-main img{
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  max-width:none!important;
  max-height:none!important;
  aspect-ratio:1 / 1!important;
  object-fit:cover!important;
  object-position:center!important;
  display:block!important;
}

/* Cột phải cũng là một hình vuông đúng bằng cột trái */
.facebook-media-frame .fb-gallery-side{
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  max-height:none!important;
  aspect-ratio:1 / 1!important;
}

/* Mobile vẫn 2 cột vuông; chỉ giảm margin */
@media(max-width:820px){
  .feed-column .facebook-media-frame,
  .memory-card .facebook-media-frame{
    margin:7px 10px 10px!important;
    max-height:none!important;
  }

  .facebook-media-frame .fb-gallery-v2,
  .facebook-media-frame .fb-gallery-v2.one-photo{
    aspect-ratio:2 / 1!important;
    height:auto!important;
    max-height:none!important;
  }
}


/* =========================================================
   V1.9.8.19 · Album đồng bộ gallery Tường gia đình
========================================================= */
.album-folder-grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:16px!important;
}
.album-folder-card-unified{
  min-width:0!important;
  overflow:hidden!important;
}
.album-folder-card-unified .album-folder-cover.album-wall-gallery{
  position:relative!important;
  width:100%!important;
  height:auto!important;
  aspect-ratio:2 / 1!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  grid-template-rows:1fr!important;
  gap:3px!important;
  padding:0!important;
  border:0!important;
  border-radius:13px 13px 0 0!important;
  overflow:hidden!important;
  background:#eee7e1!important;
}
.album-wall-main,
.album-wall-side,
.album-wall-cell{
  min-width:0!important;
  min-height:0!important;
  overflow:hidden!important;
}
.album-wall-main{
  display:block!important;
  width:100%!important;
  height:100%!important;
  aspect-ratio:1 / 1!important;
}
.album-wall-main img,
.album-wall-cell img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center!important;
}
.album-wall-side{
  width:100%!important;
  height:100%!important;
  aspect-ratio:1 / 1!important;
  display:grid!important;
  gap:3px!important;
}
.album-wall-side.side-count-1{grid-template-columns:1fr!important;grid-template-rows:1fr!important}
.album-wall-side.side-count-2{grid-template-columns:1fr!important;grid-template-rows:repeat(2,minmax(0,1fr))!important}
.album-wall-side.side-count-3,
.album-wall-side.side-count-4{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-template-rows:repeat(2,minmax(0,1fr))!important}
.album-wall-side.side-count-5,
.album-wall-side.side-count-6{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-template-rows:repeat(3,minmax(0,1fr))!important}
.album-wall-side.side-count-7,
.album-wall-side.side-count-8,
.album-wall-side.side-count-9{grid-template-columns:repeat(3,minmax(0,1fr))!important;grid-template-rows:repeat(3,minmax(0,1fr))!important}

.album-wall-more{
  position:absolute!important;
  inset:0!important;
  display:grid!important;
  place-items:center!important;
  background:rgba(24,18,15,.5)!important;
  color:#fff!important;
  font-size:22px!important;
  font-style:normal!important;
  font-weight:900!important;
}
.album-wall-cell{position:relative!important}
.album-folder-card-unified .album-folder-count{
  position:absolute!important;
  right:9px!important;
  bottom:9px!important;
  z-index:3!important;
  background:rgba(28,20,17,.68)!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.22)!important;
  border-radius:999px!important;
  padding:5px 8px!important;
}
.album-folder-card-unified .album-folder-stack{display:none!important}

@media(max-width:820px){
  .album-folder-grid{
    grid-template-columns:1fr!important;
    gap:12px!important;
  }
}


/* =========================================================
   V1.9.8.20 · Album mở ảnh trực tiếp bằng lightbox
========================================================= */
.album-wall-gallery{
  position:relative!important;
}
.album-wall-gallery .album-wall-main,
.album-wall-gallery .album-wall-cell{
  appearance:none!important;
  -webkit-appearance:none!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  background:transparent!important;
  border-radius:0!important;
  cursor:zoom-in!important;
}
.album-wall-gallery .album-wall-main{
  display:block!important;
}
.album-wall-gallery .album-wall-cell{
  display:block!important;
  position:relative!important;
}
.album-wall-gallery .album-wall-main:focus-visible,
.album-wall-gallery .album-wall-cell:focus-visible{
  outline:2px solid #a93a28!important;
  outline-offset:-2px!important;
}


/* =========================================================
   V1.9.8.21 · Sidebar gia đình mới
========================================================= */
.family-sidebar-v2{
  display:flex!important;
  flex-direction:column!important;
  gap:12px!important;
  padding:12px!important;
}
.family-sidebar-v2 .family-sidebar-brand,
.family-sidebar-v2>.family-sidebar-title,
.family-sidebar-v2>.family-sidebar-menu{display:none!important}

.family-sidebar-person{
  display:grid!important;
  grid-template-columns:48px minmax(0,1fr) 18px!important;
  align-items:center!important;
  gap:10px!important;
  padding:11px!important;
  text-decoration:none!important;
  color:#4d3028!important;
  border:1px solid #ead3c2!important;
  border-radius:16px!important;
  background:
    radial-gradient(circle at 88% 5%,rgba(244,195,114,.20),transparent 34%),
    linear-gradient(145deg,#fffdf9,#fff5e9)!important;
  box-shadow:0 8px 22px rgba(92,52,32,.05)!important;
}
.family-sidebar-person-avatar{position:relative;width:48px;height:48px}
.family-sidebar-person-avatar img{width:48px;height:48px;border-radius:50%;object-fit:cover;border:3px solid #f6dec1}
.family-sidebar-person-avatar i{position:absolute;right:-1px;bottom:0;width:16px;height:16px;border-radius:50%;display:grid;place-items:center;background:#278bea;color:#fff;font-size:9px;border:2px solid #fff;font-style:normal}
.family-sidebar-person span:nth-child(2){min-width:0;display:flex;flex-direction:column}
.family-sidebar-person b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.family-sidebar-person small{font-size:9px;color:#9b7a6b;margin-top:2px}
.family-sidebar-person em{font-style:normal;color:#a9755c;font-size:18px}

.family-sidebar-core-shell{
  border:1px solid #ead0bc!important;
  border-radius:17px!important;
  padding:11px!important;
  background:linear-gradient(180deg,#fffdf9,#fff9f0)!important;
  box-shadow:0 10px 26px rgba(88,53,37,.06)!important;
}
.family-sidebar-core-title{
  height:30px;display:flex;align-items:center;justify-content:center;gap:7px;
  margin:-2px 8px 12px;color:#fff;
  background:linear-gradient(90deg,#965026,#c97b2d,#965026);
  border-radius:999px;font-size:9px;letter-spacing:.08em;font-weight:900;
  box-shadow:0 5px 12px rgba(123,61,27,.15)
}
.family-sidebar-core-title span{font-size:13px}
.family-sidebar-core-list{display:grid;gap:8px}
.family-sidebar-core-item{
  min-height:72px;display:grid!important;grid-template-columns:48px minmax(0,1fr) 18px!important;
  align-items:center!important;gap:10px!important;padding:10px 11px!important;
  border:1px solid transparent!important;border-radius:14px!important;text-decoration:none!important;
  transition:transform .15s ease,box-shadow .15s ease!important;
}
.family-sidebar-core-item:hover{transform:translateY(-1px);box-shadow:0 7px 16px rgba(73,44,29,.08)}
.family-sidebar-core-icon{
  width:46px;height:46px;border-radius:50%;display:grid;place-items:center;
  color:#fff;font-size:21px;font-weight:900;box-shadow:0 5px 12px rgba(0,0,0,.12)
}
.family-sidebar-core-copy{display:flex;flex-direction:column;min-width:0}
.family-sidebar-core-copy b{font-size:12px;line-height:1.15}
.family-sidebar-core-copy small{font-size:8px;line-height:1.4;margin-top:4px;color:#755e54}
.family-sidebar-core-arrow{font-size:19px}
.family-sidebar-core-item.core-tree{background:linear-gradient(100deg,#f0f8e9,#fbfdf8);border-color:#d8e6cd!important}
.family-sidebar-core-item.core-tree .family-sidebar-core-icon{background:linear-gradient(145deg,#4b9c4c,#28732f)}
.family-sidebar-core-item.core-tree b,.family-sidebar-core-item.core-tree .family-sidebar-core-arrow{color:#2d7133}
.family-sidebar-core-item.core-time{background:linear-gradient(100deg,#fff2df,#fffaf2);border-color:#f0d7b5!important}
.family-sidebar-core-item.core-time .family-sidebar-core-icon{background:linear-gradient(145deg,#dc8425,#a95316)}
.family-sidebar-core-item.core-time b,.family-sidebar-core-item.core-time .family-sidebar-core-arrow{color:#a55518}
.family-sidebar-core-item.core-book{background:linear-gradient(100deg,#eef6fb,#fbfdff);border-color:#d2e3ee!important}
.family-sidebar-core-item.core-book .family-sidebar-core-icon{background:linear-gradient(145deg,#477c9d,#24516d)}
.family-sidebar-core-item.core-book b,.family-sidebar-core-item.core-book .family-sidebar-core-arrow{color:#285873}
.family-sidebar-core-item.active{box-shadow:inset 0 0 0 2px rgba(128,62,31,.18),0 7px 16px rgba(73,44,29,.08)}

.family-sidebar-simple-menu{
  display:grid;gap:2px;padding:3px 2px
}
.family-sidebar-simple-menu a{
  min-height:38px;display:grid!important;grid-template-columns:29px minmax(0,1fr) auto 16px!important;
  align-items:center!important;gap:6px!important;padding:5px 8px!important;border-radius:10px!important;
  color:#51362f!important;text-decoration:none!important;background:transparent!important
}
.family-sidebar-simple-menu a:hover,.family-sidebar-simple-menu a.active{background:#fff0df!important}
.family-sidebar-simple-menu a.active{color:#9b3527!important}
.family-sidebar-simple-icon{font-size:15px;text-align:center;color:#8a4d38}
.family-sidebar-simple-menu b{font-size:10px}
.family-sidebar-simple-menu em{font-style:normal;color:#a07969}
.family-sidebar-nav-badge{
  min-width:19px;height:19px;padding:0 5px;border-radius:999px;display:grid;place-items:center;
  background:#c92e25;color:#fff;font-size:8px;font-style:normal;font-weight:900
}
.family-sidebar-divider{height:19px;display:flex;align-items:center;gap:7px;color:#bd7a43;padding:0 10px}
.family-sidebar-divider:before,.family-sidebar-divider:after{content:"";height:1px;background:#e8cdb6;flex:1}
.family-sidebar-divider span{font-size:9px}
.family-sidebar-utility .danger{margin-top:5px;border:1px solid #f0cabc!important;background:#fff7f2!important;color:#c23a2b!important}
.sidebar-v2-reminder{margin-top:2px!important}

.top-actions-logo-only{
  min-width:74px!important;
  width:auto!important;
  padding:5px!important;
  border-radius:18px!important;
  background:rgba(255,250,244,.92)!important;
  border:1px solid rgba(126,69,42,.18)!important;
  box-shadow:0 6px 20px rgba(60,38,27,.08)!important;
}
.header-home-logo{
  width:58px!important;height:48px!important;display:grid!important;place-items:center!important;
  border-radius:13px!important;background:#fffaf3!important;text-decoration:none!important
}
.header-home-logo img{max-width:50px!important;max-height:40px!important;object-fit:contain!important}

/* Notification center */
.notification-center-page{max-width:1060px;margin:20px auto;padding:0 18px 40px}
.notification-center-hero{display:flex;gap:14px;align-items:center;padding:22px;border:1px solid #ead2bf;border-radius:20px;background:linear-gradient(135deg,#fffaf3,#fff3e6)}
.notification-center-symbol{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#9f3927;color:#fff;font-size:22px}
.notification-center-hero small{font-size:8px;letter-spacing:.16em;color:#a16d58;font-weight:900}
.notification-center-hero h1{margin:4px 0 5px;font-size:25px;color:#713327}
.notification-center-hero p{margin:0;font-size:10px;color:#8e7063}
.notification-center-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:14px 0}
.notification-center-card{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:9px;padding:14px;border:1px solid #ead5c5;border-radius:15px;background:#fffdf9;text-decoration:none;color:#5d3b32}
.notification-center-card>span{width:42px;height:42px;border-radius:12px;background:#f8e9dc;display:grid;place-items:center;font-size:18px}
.notification-center-card div{display:flex;flex-direction:column}.notification-center-card b{font-size:11px}.notification-center-card small{font-size:8px;color:#9c7b6c;margin-top:3px}
.notification-center-card strong{font-size:22px;color:#9d3527}
.notification-center-section{margin-top:14px;padding:18px;border:1px solid #ead4c2;border-radius:18px;background:#fffdf9}
.notification-center-section-head{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:1px solid #edd9ca;padding-bottom:11px}
.notification-center-section-head small{font-size:8px;letter-spacing:.14em;color:#a36c56;font-weight:900}.notification-center-section-head h2{margin:3px 0 0;font-size:17px;color:#71362c}.notification-center-section-head a{font-size:9px;color:#a03929;text-decoration:none}
.notification-center-list{display:grid}.notification-center-list>a{display:grid;grid-template-columns:48px 1fr 18px;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #f0e2d7;text-decoration:none;color:#553930}.notification-center-list>a:last-child{border-bottom:0}
.notification-date{width:44px;height:44px;border-radius:10px;background:#a33b2b;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center}.notification-date b{font-size:14px}.notification-date small{font-size:6px}
.notification-center-list div{display:flex;flex-direction:column}.notification-center-list div b{font-size:10px}.notification-center-list div small{font-size:8px;color:#9b7d70;margin-top:3px}.notification-center-list em{font-style:normal}
.notification-memory-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px}.notification-memory-row a{display:flex;gap:8px;align-items:center;text-decoration:none;color:#553930;background:#fff7ef;border-radius:12px;padding:8px}.notification-memory-row img{width:48px;height:48px;border-radius:10px;object-fit:cover}.notification-memory-row span{display:flex;flex-direction:column;min-width:0}.notification-memory-row small{font-size:7px;color:#9b7b6d}.notification-memory-row b{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px}

@media(max-width:820px){
  .family-sidebar-v2{padding:10px!important;gap:10px!important}
  .family-sidebar-person{grid-template-columns:44px minmax(0,1fr) 16px!important}
  .family-sidebar-person-avatar,.family-sidebar-person-avatar img{width:44px;height:44px}
  .family-sidebar-core-item{min-height:66px!important;grid-template-columns:43px minmax(0,1fr) 16px!important;padding:9px!important}
  .family-sidebar-core-icon{width:42px;height:42px;font-size:19px}
  .family-sidebar-core-copy b{font-size:11px}.family-sidebar-core-copy small{font-size:7px}
  .top-actions-logo-only{min-width:66px!important;padding:4px!important}.header-home-logo{width:54px!important;height:44px!important}.header-home-logo img{max-width:46px!important;max-height:36px!important}
  .notification-center-page{padding:0 10px 90px}.notification-center-grid{grid-template-columns:1fr}.notification-memory-row{grid-template-columns:1fr 1fr}.notification-center-hero{padding:16px}.notification-center-hero h1{font-size:20px}
}

.family-sidebar-v3{padding:10px!important;gap:9px!important}
.family-sidebar-v3>.family-sidebar-brand,.family-sidebar-v3>.family-sidebar-title,.family-sidebar-v3>.family-sidebar-menu{display:none!important}
.family-sidebar-profile-cover{min-height:150px;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:14px;border:1px solid #ead8c7;border-radius:16px;text-decoration:none;color:#4b3028;background-image:linear-gradient(rgba(255,250,243,.17),rgba(255,250,243,.17)),var(--sidebar-profile-cover)!important;background-size:cover!important;background-position:center!important;box-shadow:0 8px 22px rgba(90,55,35,.06)}
.family-sidebar-profile-avatar{position:relative;width:58px;height:58px}.family-sidebar-profile-avatar img{width:58px;height:58px;border-radius:50%;object-fit:cover;border:3px solid #fff4e8;box-shadow:0 4px 12px rgba(80,43,27,.16)}.family-sidebar-profile-avatar i{position:absolute;right:0;bottom:0;width:17px;height:17px;border-radius:50%;display:grid;place-items:center;background:#2989e8;color:#fff;border:2px solid #fff;font-size:9px;font-style:normal}
.family-sidebar-profile-cover>b{font-size:13px}.family-sidebar-profile-cover>small{font-size:8px;color:#886b5f}.family-sidebar-profile-cover>em{margin-top:4px;padding:4px 9px;border-radius:999px;background:rgba(255,249,239,.87);border:1px solid #e4cdb6;font-size:7px;font-style:normal}
.family-sidebar-v3 .family-sidebar-core-shell{padding:9px!important;border-radius:15px!important}.family-sidebar-v3 .family-sidebar-core-title{height:25px!important;margin:-1px 8px 8px!important;font-size:8px!important}.family-sidebar-v3 .family-sidebar-core-list{gap:5px!important}.family-sidebar-v3 .family-sidebar-core-item{min-height:60px!important;grid-template-columns:40px minmax(0,1fr) 14px!important;gap:8px!important;padding:7px 8px!important;border-radius:12px!important}.family-sidebar-v3 .family-sidebar-core-icon{width:38px;height:38px;font-size:17px}.family-sidebar-v3 .family-sidebar-core-copy b{font-size:10px!important}.family-sidebar-v3 .family-sidebar-core-copy small{font-size:6.6px!important}.family-sidebar-v3 .family-sidebar-simple-menu a{min-height:31px!important;padding:3px 7px!important;grid-template-columns:24px minmax(0,1fr) auto 13px!important}.family-sidebar-v3 .family-sidebar-simple-menu b{font-size:8.5px!important}.family-sidebar-v3 .family-sidebar-simple-icon{font-size:12px!important}.family-sidebar-v3 .family-sidebar-divider{height:12px!important}
.notification-center-hero form{margin-left:auto}.notification-center-hero form button{border:1px solid #d8bba4;background:#fff9f1;color:#84382b;border-radius:10px;padding:8px 11px;font-size:8px;font-weight:800}
.notification-filter-tabs{display:flex;gap:7px;overflow-x:auto;padding:12px 0 3px}.notification-filter-tabs a{white-space:nowrap;text-decoration:none;border:1px solid #e5cdbb;background:#fffaf4;color:#71493e;border-radius:999px;padding:7px 11px;font-size:8px;font-weight:800}.notification-filter-tabs a.active{background:#9e3828;color:#fff;border-color:#9e3828}.notification-stream{display:grid;gap:7px;margin-top:10px}.notification-stream-item{display:grid;grid-template-columns:34px 48px minmax(0,1fr) 10px 14px;gap:9px;align-items:center;padding:10px 12px;border:1px solid #ead7c8;border-radius:14px;background:#fffdf9;color:#563a32;text-decoration:none}.notification-stream-item.unread{background:linear-gradient(90deg,#fff3e6,#fffdf9);border-color:#e5bfa3}.notification-kind-icon{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#f5e5d8;color:#9c3829}.notification-stream-item>img{width:48px;height:48px;border-radius:11px;object-fit:cover}.notification-stream-copy{display:flex;flex-direction:column;min-width:0}.notification-stream-copy b{font-size:10px}.notification-stream-copy small{font-size:8px;color:#856b60;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notification-stream-copy em{font-size:7px;color:#b19385;font-style:normal;margin-top:4px}.notification-unread-dot{width:8px;height:8px;border-radius:50%;background:#d3322a}.notification-empty-state{min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px dashed #dfc6b3;border-radius:16px;background:#fffaf4}.sidebar-cover-setting{display:grid;gap:14px}.sidebar-cover-preview{min-height:180px;border-radius:16px;border:1px solid #ead3c2;background-image:linear-gradient(rgba(255,250,243,.15),rgba(255,250,243,.15)),var(--sidebar-profile-cover);background-size:cover;background-position:center;display:flex;flex-direction:column;align-items:center;justify-content:center}.sidebar-cover-preview img{width:66px;height:66px;border-radius:50%;object-fit:cover;border:3px solid #fff4e6}.sidebar-cover-preview b{font-size:13px;margin-top:5px}.sidebar-cover-preview small{font-size:8px}.settings-secondary-btn{border:1px solid #d7bba7;background:#fff8f0;color:#7b4939;border-radius:10px;padding:8px 12px;font-size:8px;font-weight:800}


/* =========================================================
   V1.9.8.23 · Sidebar width + menu fidelity
========================================================= */
@media(min-width:1160px){
  .family-desktop-layout{
    grid-template-columns:280px minmax(0,1fr)!important;
    gap:22px!important;
  }
  .family-desktop-sidebar{
    width:280px!important;
    min-width:280px!important;
  }
}
@media(min-width:821px) and (max-width:1159px){
  .family-desktop-layout{
    grid-template-columns:250px minmax(0,1fr)!important;
  }
  .family-desktop-sidebar{width:250px!important;min-width:250px!important}
}

.family-sidebar-v3{
  width:100%!important;
  box-sizing:border-box!important;
  padding:11px!important;
}

/* Profile cover giống mẫu: nền nhẹ, avatar giữa, tên + vai trò */
.family-sidebar-profile-cover{
  min-height:165px!important;
  border-radius:18px!important;
  padding:18px 14px 13px!important;
  background-image:
    linear-gradient(rgba(255,250,243,.08),rgba(255,250,243,.12)),
    var(--sidebar-profile-cover)!important;
}
.family-sidebar-profile-cover>b{font-size:14px!important;margin-top:3px!important}
.family-sidebar-profile-cover>small{font-size:8.5px!important}
.family-sidebar-profile-cover>em{font-size:7.5px!important;padding:5px 10px!important}

/* Tiêu đề danh mục: vòng tim phía trên + ribbon giữa, đúng mẫu hình 3 */
.family-sidebar-v3 .family-sidebar-core-shell{
  position:relative!important;
  margin-top:9px!important;
  padding:28px 10px 10px!important;
  overflow:visible!important;
}
.family-sidebar-v3 .family-sidebar-core-title{
  position:absolute!important;
  top:10px!important;
  left:50%!important;
  transform:translate(-50%,-50%)!important;
  width:22px!important;
  height:22px!important;
  min-width:22px!important;
  margin:0!important;
  padding:0!important;
  border-radius:50%!important;
  display:grid!important;
  place-items:center!important;
  background:#fffaf3!important;
  color:#a95b2d!important;
  border:1px solid #e4c7ab!important;
  box-shadow:0 2px 7px rgba(91,52,31,.06)!important;
  font-size:0!important;
  z-index:3!important;
}
.family-sidebar-v3 .family-sidebar-core-title:before{
  content:"♡"!important;
  font-size:12px!important;
  line-height:1!important;
}
.family-sidebar-v3 .family-sidebar-core-title b{
  position:absolute!important;
  top:20px!important;
  left:50%!important;
  transform:translateX(-50%)!important;
  width:178px!important;
  height:27px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:999px!important;
  background:linear-gradient(90deg,#ad531f,#c97827,#ad531f)!important;
  color:#fff!important;
  font-size:8px!important;
  letter-spacing:.06em!important;
  white-space:nowrap!important;
  box-shadow:0 4px 10px rgba(111,56,26,.13)!important;
}
.family-sidebar-v3 .family-sidebar-core-title b:before,
.family-sidebar-v3 .family-sidebar-core-title b:after{
  position:absolute!important;
  color:#c98845!important;
  font-size:12px!important;
  top:4px!important;
}
.family-sidebar-v3 .family-sidebar-core-title b:before{content:"❧"!important;left:-25px!important}
.family-sidebar-v3 .family-sidebar-core-title b:after{content:"❧"!important;right:-25px!important;transform:scaleX(-1)!important}
.family-sidebar-v3 .family-sidebar-core-list{margin-top:17px!important}

/* icon phả đồ là sơ đồ nhánh, không dùng cây */
.family-sidebar-v3 .core-tree .family-sidebar-core-icon svg{
  width:22px!important;height:22px!important;
  fill:none!important;stroke:currentColor!important;stroke-width:1.8!important;
  stroke-linecap:round!important;stroke-linejoin:round!important;
}
.family-sidebar-v3 .core-tree .family-sidebar-core-icon{
  color:#fff!important;
}

/* Menu phụ trở lại kích thước menu cũ: icon riêng, chữ rõ, dễ bấm */
.family-sidebar-v3 .family-sidebar-simple-menu{
  display:grid!important;
  gap:4px!important;
  padding:4px 2px!important;
}
.family-sidebar-v3 .family-sidebar-simple-menu a{
  min-height:46px!important;
  grid-template-columns:38px minmax(0,1fr) auto 14px!important;
  gap:8px!important;
  padding:5px 7px!important;
  border-radius:12px!important;
}
.family-sidebar-v3 .family-sidebar-simple-icon{
  width:34px!important;height:34px!important;
  display:grid!important;place-items:center!important;
  border-radius:10px!important;
  background:#f3e4d6!important;
  color:#984333!important;
  font-size:15px!important;
}
.family-sidebar-v3 .family-sidebar-simple-menu b{
  font-size:11px!important;
  font-weight:700!important;
}
.family-sidebar-v3 .family-sidebar-simple-menu em{
  font-size:15px!important;
}
.family-sidebar-v3 .family-sidebar-divider{height:19px!important;margin:2px 6px!important}

/* Notification badge dễ thấy hơn */
.family-sidebar-v3 .family-sidebar-nav-badge{
  min-width:21px!important;height:21px!important;font-size:8px!important;
}

/* Mobile drawer vẫn full width panel, menu đủ lớn */
@media(max-width:820px){
  .family-sidebar-v3 .family-sidebar-simple-menu a{min-height:48px!important}
  .family-sidebar-profile-cover{min-height:150px!important}
}

/* Settings preview / form */
.sidebar-cover-setting input[type=file]{
  width:100%!important;
  padding:10px!important;
  border:1px solid #e1c7b3!important;
  border-radius:11px!important;
  background:#fffdf9!important;
}


/* =========================================================
   V1.9.8.24 · Sidebar thống nhất 1 khối theo mẫu đã chốt
========================================================= */

/* Sidebar ngoài không còn cảm giác nhiều card rời rạc */
.family-sidebar-v3{
  padding:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  overflow:visible!important;
}

/* Toàn bộ nội dung nằm trong MỘT khối nền xuyên suốt */
.family-sidebar-unified-skin{
  position:relative!important;
  display:flex!important;
  flex-direction:column!important;
  gap:10px!important;
  width:100%!important;
  padding:10px!important;
  box-sizing:border-box!important;
  border:1px solid #ead7c6!important;
  border-radius:20px!important;
  background:
    linear-gradient(rgba(255,250,244,.90),rgba(255,250,244,.94)),
    url("../images/sidebar-profile-default.svg") center top / cover no-repeat!important;
  box-shadow:
    0 14px 34px rgba(81,48,31,.07),
    inset 0 1px 0 rgba(255,255,255,.85)!important;
  overflow:hidden!important;
}

/* Một lớp họa tiết rất nhẹ chạy xuyên suốt toàn menu */
.family-sidebar-unified-skin:before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  pointer-events:none!important;
  opacity:.28!important;
  background:
    radial-gradient(circle at 12% 10%,rgba(216,161,103,.20),transparent 18%),
    radial-gradient(circle at 88% 18%,rgba(216,161,103,.14),transparent 16%),
    linear-gradient(180deg,rgba(255,255,255,.15),rgba(255,255,255,0) 28%)!important;
}
.family-sidebar-unified-skin>*{
  position:relative!important;
  z-index:1!important;
}

/* Profile đầu menu hòa luôn vào nền chung, không còn card tách biệt */
.family-sidebar-unified-skin .family-sidebar-profile-cover{
  min-height:164px!important;
  margin:0!important;
  border:0!important;
  border-radius:15px!important;
  box-shadow:none!important;
  background-image:
    linear-gradient(rgba(255,250,244,.08),rgba(255,250,244,.16)),
    var(--sidebar-profile-cover)!important;
  background-size:cover!important;
  background-position:center!important;
}
.family-sidebar-unified-skin .family-sidebar-profile-cover:after{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  border-radius:15px!important;
  pointer-events:none!important;
  background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,248,239,.16))!important;
}

/* Khối 3 danh mục nòng cốt liền mạch, giữ nguyên kiểu đẹp đã chốt */
.family-sidebar-unified-skin .family-sidebar-core-shell{
  margin:0!important;
  border:1px solid rgba(226,201,177,.92)!important;
  border-radius:15px!important;
  background:rgba(255,250,244,.82)!important;
  box-shadow:none!important;
}

/* Các menu phụ không còn rời thành từng nhóm trắng riêng.
   Tất cả nằm trực tiếp trên cùng một nền, giống hình mẫu 1. */
.family-sidebar-unified-skin .family-sidebar-simple-menu{
  margin:0!important;
  padding:3px 4px!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
}

/* Menu phụ trở về kiểu menu cũ: icon vuông kem + 2 dòng/1 dòng rõ ràng */
.family-sidebar-unified-skin .family-sidebar-simple-menu a{
  min-height:48px!important;
  margin:2px 0!important;
  padding:6px 8px!important;
  border-radius:12px!important;
  grid-template-columns:38px minmax(0,1fr) auto 15px!important;
  gap:9px!important;
  color:#51362f!important;
  transition:background .15s ease,color .15s ease,transform .15s ease!important;
}
.family-sidebar-unified-skin .family-sidebar-simple-menu a:hover{
  background:rgba(255,240,223,.72)!important;
  transform:translateX(1px)!important;
}
.family-sidebar-unified-skin .family-sidebar-simple-icon{
  width:34px!important;
  height:34px!important;
  border-radius:10px!important;
  background:#f3e4d6!important;
  color:#954534!important;
  border:1px solid rgba(221,190,166,.55)!important;
  font-size:15px!important;
}
.family-sidebar-unified-skin .family-sidebar-simple-menu b{
  font-size:11px!important;
  font-weight:700!important;
  color:inherit!important;
}
.family-sidebar-unified-skin .family-sidebar-simple-menu em{
  font-size:15px!important;
  color:#a47763!important;
}

/* Active/submitted menu giống menu cũ ở hình 3:
   nền đỏ nâu, icon nền sáng hơn, chữ trắng. */
.family-sidebar-unified-skin .family-sidebar-simple-menu a.active{
  background:linear-gradient(135deg,#a23827,#b44831)!important;
  color:#fff!important;
  box-shadow:0 7px 16px rgba(126,50,35,.16)!important;
}
.family-sidebar-unified-skin .family-sidebar-simple-menu a.active .family-sidebar-simple-icon{
  background:rgba(255,255,255,.16)!important;
  color:#fff!important;
  border-color:rgba(255,255,255,.12)!important;
}
.family-sidebar-unified-skin .family-sidebar-simple-menu a.active em{
  color:#fff!important;
}
.family-sidebar-unified-skin .family-sidebar-simple-menu a.active .family-sidebar-nav-badge{
  background:#fff!important;
  color:#a23827!important;
}

/* Các đường phân nhóm mảnh, cùng một nền, không tạo card mới */
.family-sidebar-unified-skin .family-sidebar-divider{
  height:20px!important;
  margin:1px 9px!important;
  color:#b97848!important;
}
.family-sidebar-unified-skin .family-sidebar-divider:before,
.family-sidebar-unified-skin .family-sidebar-divider:after{
  background:#e2c9b5!important;
}

/* Đăng xuất cùng style block cuối */
.family-sidebar-unified-skin .family-sidebar-utility .danger{
  margin-top:4px!important;
  background:rgba(255,245,239,.72)!important;
  border:1px solid #efc9ba!important;
  color:#c13a2d!important;
}
.family-sidebar-unified-skin .family-sidebar-utility .danger:hover{
  background:#fff0e9!important;
}

/* Desktop: sidebar vẫn bằng cột phải của index */
@media(min-width:1160px){
  .family-desktop-layout{
    grid-template-columns:300px minmax(0,1fr)!important;
    gap:22px!important;
  }
  .family-desktop-sidebar{
    width:300px!important;
    min-width:300px!important;
  }
}

/* Header logo: tăng rõ rệt kích thước nhưng vẫn nằm gọn trong capsule */
.top-actions-logo-only{
  min-width:94px!important;
  padding:6px 8px!important;
  border-radius:20px!important;
}
.header-home-logo{
  width:78px!important;
  height:58px!important;
  border-radius:15px!important;
}
.header-home-logo img{
  width:auto!important;
  height:auto!important;
  max-width:70px!important;
  max-height:52px!important;
}

/* Mobile drawer vẫn giữ đúng 1 khối thống nhất */
@media(max-width:820px){
  .mobile-family-sidebar-content .family-sidebar-unified-skin{
    border-radius:16px!important;
    padding:9px!important;
  }
  .family-sidebar-unified-skin .family-sidebar-profile-cover{
    min-height:150px!important;
  }
  .top-actions-logo-only{
    min-width:82px!important;
    padding:5px!important;
  }
  .header-home-logo{
    width:68px!important;
    height:50px!important;
  }
  .header-home-logo img{
    max-width:62px!important;
    max-height:45px!important;
  }
}


/* =========================================================
   V1.9.8.25 · Footer + sidebar navigation stability
========================================================= */

/* Xóa hoàn toàn ribbon/tiêu đề "DANH MỤC GIA ĐÌNH" */
.family-sidebar-core-title{
  display:none!important;
}
.family-sidebar-v3 .family-sidebar-core-shell,
.family-sidebar-unified-skin .family-sidebar-core-shell{
  padding-top:10px!important;
  margin-top:0!important;
}
.family-sidebar-v3 .family-sidebar-core-list,
.family-sidebar-unified-skin .family-sidebar-core-list{
  margin-top:0!important;
}

/*
 * Trang ngắn (Thông báo, Cài đặt...) trước đây khiến footer đi lên
 * trong khi sidebar sticky vẫn còn trên viewport.
 */
.family-desktop-layout{
  position:relative!important;
  min-height:calc(100dvh - 210px)!important;
  margin-bottom:24px!important;
}
.family-footer{
  position:relative!important;
  z-index:30!important;
  clear:both!important;
  margin-top:0!important;
}
.family-footer-v1850{
  margin-top:0!important;
}

/* Sidebar giữ vị trí ổn định, không chạy hiệu ứng reload */
.family-desktop-sidebar,
.family-sidebar-unified-skin{
  animation:none!important;
  transition:none!important;
}
.family-sidebar-unified-skin{
  scroll-behavior:auto!important;
}

/* Notification page */
.notification-page-layout{
  min-height:calc(100dvh - 205px)!important;
}
.notification-soft-error{
  margin:12px 0 0!important;
  padding:10px 12px!important;
  border:1px solid #eac8b9!important;
  border-radius:12px!important;
  background:#fff1eb!important;
  color:#a03d2f!important;
  font-size:9px!important;
}
.notification-image-placeholder{
  width:48px!important;
  height:48px!important;
  border-radius:11px!important;
  display:grid!important;
  place-items:center!important;
  text-align:center!important;
  line-height:1.05!important;
  background:linear-gradient(145deg,#fff1da,#f6dfc2)!important;
  color:#9b4c31!important;
  font-size:7px!important;
  font-weight:900!important;
  border:1px solid #e9ceb5!important;
}

/* Mobile footer/menu vẫn tách đúng luồng */
@media(max-width:820px){
  .family-desktop-layout{
    min-height:0!important;
    margin-bottom:0!important;
  }
}


/* =========================================================
   V1.9.8.26 · Footer triệt để
========================================================= */
@media(min-width:821px){
  html,body{min-height:100%!important}
  body{
    min-height:100vh!important;
    display:flex!important;
    flex-direction:column!important;
  }
  .topbar{
    flex:0 0 auto!important;
  }
  .app-shell{
    flex:1 0 auto!important;
    width:100%!important;
  }
  .family-footer{
    flex:0 0 auto!important;
    width:100%!important;
    margin-top:28px!important;
    position:relative!important;
    left:auto!important;
    right:auto!important;
    bottom:auto!important;
    transform:none!important;
  }
  .family-footer-one-card{
    width:min(1450px,calc(100% - 36px))!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
}

/* Trang thông báo */
.notification-page-layout{
  min-height:620px!important;
}
.notification-image-placeholder{
  width:48px!important;height:48px!important;border-radius:11px!important;
  display:grid!important;place-items:center!important;text-align:center!important;
  background:#f7e7d6!important;color:#91442f!important;font-size:7px!important;font-weight:900!important;
  border:1px solid #e8cdb7!important;
}


/* =========================================================
   V1.9.8.27 · Footer tách khỏi sidebar thật sự
========================================================= */
@media(min-width:1151px){
  /*
   * Bỏ sticky khỏi sidebar.
   * Sidebar phải nằm trong normal flow để chiều cao thật của nó
   * được tính vào family-desktop-layout. Đây là nguyên nhân footer
   * trước đây chạy lên đè menu.
   */
  .family-desktop-sidebar{
    position:relative!important;
    top:auto!important;
    bottom:auto!important;
    max-height:none!important;
    height:auto!important;
    overflow:visible!important;
    overscroll-behavior:auto!important;
    align-self:start!important;
  }

  .family-desktop-layout{
    align-items:start!important;
    min-height:0!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
    margin-bottom:0!important;
  }

  .app-shell{
    display:block!important;
    flex:0 0 auto!important;
    min-height:0!important;
    height:auto!important;
    overflow:visible!important;
  }

  .family-footer{
    display:block!important;
    position:relative!important;
    inset:auto!important;
    clear:both!important;
    width:100%!important;
    max-width:none!important;
    margin:30px 0 0!important;
    padding:0 0 18px!important;
    transform:none!important;
    z-index:1!important;
  }

  .family-footer-one-card{
    width:min(1450px,calc(100% - 40px))!important;
    margin:0 auto!important;
  }
}

/* =========================================================
   V1.9.8.27 · Trang Thông báo mới
========================================================= */
.notifications-v19827{
  max-width:1050px;
  margin:18px auto 30px;
  padding:0 18px;
}
.notifications-v19827-head{
  display:flex;
  align-items:center;
  gap:18px;
  padding:22px;
  border:1px solid #ead2bf;
  border-radius:20px;
  background:linear-gradient(135deg,#fffaf3,#fff2e4);
}
.notifications-v19827-head>div{min-width:0;flex:1}
.notifications-v19827-head small{font-size:8px;letter-spacing:.16em;font-weight:900;color:#a06b56}
.notifications-v19827-head h1{margin:4px 0 5px;font-size:24px;color:#74362b}
.notifications-v19827-head p{margin:0;font-size:10px;color:#8d7064}
.notifications-v19827-head button{
  border:1px solid #d7b59e;background:#fff9f2;color:#8d3a2c;
  border-radius:11px;padding:9px 12px;font-size:8px;font-weight:900;cursor:pointer
}
.notifications-v19827-summary{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin:13px 0;
}
.notifications-v19827-summary>a{
  display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:9px;
  min-height:66px;padding:11px 13px;border:1px solid #ead6c6;border-radius:15px;
  background:#fffdf9;text-decoration:none;color:#583b32;
}
.notifications-v19827-summary>a>span{
  width:42px;height:42px;border-radius:12px;background:#f6e8db;
  display:grid;place-items:center;color:#9a4635;font-size:17px
}
.notifications-v19827-summary div{display:flex;flex-direction:column}
.notifications-v19827-summary b{font-size:10px}
.notifications-v19827-summary small{font-size:7px;color:#94796d;margin-top:3px}
.notifications-v19827-summary strong{font-size:20px;color:#a23b2c}
.notifications-v19827-section{
  margin-top:12px;padding:15px;border:1px solid #ead5c5;border-radius:18px;background:#fffdf9
}
.notifications-v19827-title{display:flex;align-items:center;gap:9px;padding-bottom:10px;border-bottom:1px solid #efe0d5}
.notifications-v19827-title>span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#f7e8db;color:#9f4533}
.notifications-v19827-title div{display:flex;flex-direction:column}
.notifications-v19827-title b{font-size:11px;color:#673d33}
.notifications-v19827-title small{font-size:7px;color:#9b7c6e;margin-top:2px}
.notifications-v19827-list{display:grid}
.notifications-v19827-list>a,.notifications-v19827-single{
  display:grid;grid-template-columns:48px minmax(0,1fr) auto 15px;gap:9px;align-items:center;
  padding:10px 3px;border-bottom:1px solid #f0e2d8;text-decoration:none;color:#543830
}
.notifications-v19827-list>a:last-child{border-bottom:0}
.notifications-v19827-list>a.unread{background:linear-gradient(90deg,#fff4e9,transparent)}
.notifications-v19827-list img{width:48px;height:48px;border-radius:12px;object-fit:cover}
.notifications-v19827-list div,.notifications-v19827-single div{display:flex;flex-direction:column;min-width:0}
.notifications-v19827-list b,.notifications-v19827-single b{font-size:10px}
.notifications-v19827-list small,.notifications-v19827-single small{font-size:7px;color:#92776b;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.notifications-v19827-list i{width:8px;height:8px;border-radius:50%;background:#d2342b}
.notifications-v19827-list em,.notifications-v19827-single em{font-style:normal;color:#a17867}
.notifications-v19827-round{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#f7e5d8;color:#9a402f}
.notifications-v19827-memory-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:11px}
.notifications-v19827-memory-grid a{display:flex;align-items:center;gap:7px;padding:7px;border-radius:12px;background:#fff6ec;text-decoration:none;color:#593a31;min-width:0}
.notifications-v19827-memory-grid img{width:48px;height:48px;border-radius:10px;object-fit:cover}
.notifications-v19827-memory-grid span{display:flex;flex-direction:column;min-width:0}
.notifications-v19827-memory-grid small{font-size:7px;color:#967567}
.notifications-v19827-memory-grid b{font-size:8px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.notifications-v19827-empty{
  min-height:240px;margin-top:14px;border:1px dashed #e0c7b5;border-radius:18px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:#fffaf4;color:#87695c;text-align:center;padding:20px
}
.notifications-v19827-empty span{font-size:30px;color:#b76c4f}
.notifications-v19827-empty b{font-size:12px;margin-top:6px}
.notifications-v19827-empty small{max-width:430px;font-size:8px;line-height:1.5;margin-top:5px}
.notifications-v19827-error{margin-top:10px;padding:9px 11px;border-radius:10px;background:#fff0e9;color:#a13f31;font-size:8px}

@media(max-width:820px){
  .notifications-v19827{padding:0 10px 90px;margin-top:10px}
  .notifications-v19827-head{padding:15px;flex-wrap:wrap}
  .notifications-v19827-head h1{font-size:20px}
  .notifications-v19827-head form{width:100%}
  .notifications-v19827-summary{grid-template-columns:1fr}
  .notifications-v19827-memory-grid{grid-template-columns:1fr 1fr}
}


/* =========================================================
   V1.9.8.28 · Cài đặt 3 cột không đè cột giữa
========================================================= */
@media(min-width:1151px){
  .settings-three-columns{
    width:min(1540px,calc(100% - 36px))!important;
    grid-template-columns:300px minmax(0,1fr) 270px!important;
    gap:20px!important;
    align-items:start!important;
  }

  .settings-col-app{
    width:300px!important;
    min-width:300px!important;
    position:relative!important;
    z-index:1!important;
  }

  .settings-three-columns .settings-col-app .family-desktop-sidebar{
    width:300px!important;
    min-width:300px!important;
    max-width:300px!important;
    position:relative!important;
    top:auto!important;
    max-height:none!important;
    overflow:visible!important;
  }

  .settings-col-content{
    min-width:0!important;
    width:100%!important;
    position:relative!important;
    z-index:2!important;
  }

  .settings-col-nav{
    width:270px!important;
    min-width:270px!important;
    position:relative!important;
    z-index:1!important;
  }
}

/* =========================================================
   V1.9.8.28 · 3 cột cùng chiều cao menu trái rồi mới scroll
========================================================= */
@media(min-width:1151px){
  body{
    --nh-sidebar-equal-height:auto;
  }

  /* Trang chủ / tường / các trang dùng feed 3 cột */
  .family-desktop-content .family-feed-layout{
    height:var(--nh-sidebar-equal-height)!important;
    min-height:var(--nh-sidebar-equal-height)!important;
    max-height:var(--nh-sidebar-equal-height)!important;
    overflow:hidden!important;
    align-items:stretch!important;
  }

  .family-desktop-content .family-feed-layout>.feed-column,
  .family-desktop-content .family-feed-layout>.right-rail{
    height:100%!important;
    min-height:0!important;
    max-height:none!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    padding-bottom:24px!important;
  }

  /* Cài đặt: cột 2 + cột 3 cao bằng cột 1 */
  .settings-col-content,
  .settings-col-nav{
    height:var(--nh-sidebar-equal-height)!important;
    min-height:var(--nh-sidebar-equal-height)!important;
    max-height:var(--nh-sidebar-equal-height)!important;
  }

  .settings-col-content{
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    scrollbar-width:thin!important;
  }

  .settings-col-nav{
    overflow:hidden!important;
  }

  .settings-col-nav .settings-nav-card{
    position:relative!important;
    top:auto!important;
    height:100%!important;
    max-height:none!important;
    overflow-y:auto!important;
    box-sizing:border-box!important;
  }
}

/* =========================================================
   V1.9.8.28 · Footer full width
========================================================= */
@media(min-width:821px){
  .family-footer-v1850,
  .family-footer{
    width:100%!important;
    max-width:none!important;
    margin:30px 0 0!important;
    padding:0!important;
  }

  .family-footer-one-card{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    border-left:0!important;
    border-right:0!important;
    border-radius:0!important;
    box-sizing:border-box!important;
    min-height:160px!important;
  }
}

/* =========================================================
   V1.9.8.28 · Header logo lớn hơn
========================================================= */
@media(min-width:821px){
  .top-actions-logo-only{
    min-width:126px!important;
    min-height:88px!important;
    padding:7px 10px!important;
    border-radius:22px!important;
  }

  .header-home-logo{
    width:108px!important;
    height:74px!important;
    border-radius:16px!important;
  }

  .header-home-logo img{
    max-width:100px!important;
    max-height:68px!important;
  }
}

/* =========================================================
   V1.9.8.28 · Notification safe page
========================================================= */
.notifications-safe-page{
  max-width:1050px!important;
  margin:18px auto 34px!important;
  padding:0 18px!important;
}
.notifications-safe-head{
  display:flex!important;
  align-items:center!important;
  gap:18px!important;
  padding:22px!important;
  border:1px solid #ead3c1!important;
  border-radius:20px!important;
  background:linear-gradient(135deg,#fffaf3,#fff1e1)!important;
}
.notifications-safe-head>div{flex:1;min-width:0}
.notifications-safe-head small{font-size:8px;letter-spacing:.16em;font-weight:900;color:#a16c57}
.notifications-safe-head h1{margin:4px 0 5px;font-size:25px;color:#713327}
.notifications-safe-head p{margin:0;font-size:10px;color:#8f7265}
.notifications-safe-head button{
  border:1px solid #d9b9a1;background:#fff9f2;color:#8f3b2d;
  border-radius:11px;padding:9px 12px;font-size:8px;font-weight:900;cursor:pointer
}
.notifications-safe-summary{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:12px!important;
  margin:13px 0!important;
}
.notifications-safe-summary>a{
  display:grid!important;grid-template-columns:44px minmax(0,1fr) auto!important;
  align-items:center!important;gap:10px!important;padding:13px!important;
  border:1px solid #ead7c7!important;border-radius:15px!important;
  background:#fffdf9!important;text-decoration:none!important;color:#573a32!important;
}
.notifications-safe-summary>a>span{
  width:44px;height:44px;border-radius:12px;display:grid;place-items:center;
  background:#f5e6d8;color:#984232;font-size:18px
}
.notifications-safe-summary div{display:flex;flex-direction:column}
.notifications-safe-summary b{font-size:10px}
.notifications-safe-summary small{font-size:7px;color:#94796d;margin-top:3px}
.notifications-safe-summary strong{font-size:21px;color:#a23b2b}
.notifications-safe-block{
  margin-top:12px!important;padding:16px!important;border:1px solid #ead5c4!important;
  border-radius:18px!important;background:#fffdf9!important
}
.notifications-safe-title{display:flex;align-items:center;gap:9px;padding-bottom:10px;border-bottom:1px solid #efdfd3}
.notifications-safe-title>span{width:35px;height:35px;border-radius:50%;display:grid;place-items:center;background:#f6e6d9;color:#9b4332}
.notifications-safe-title div{display:flex;flex-direction:column}
.notifications-safe-title b{font-size:11px}.notifications-safe-title small{font-size:7px;color:#97786a;margin-top:2px}
.notifications-safe-reminders{display:grid}
.notifications-safe-reminders>a{
  display:grid!important;grid-template-columns:48px minmax(0,1fr) 14px!important;
  gap:9px!important;align-items:center!important;padding:10px 2px!important;
  border-bottom:1px solid #f0e1d6!important;text-decoration:none!important;color:#54382f!important
}
.notifications-safe-reminders>a:last-child{border-bottom:0!important}
.notifications-safe-reminders img,.notifications-safe-reminders i{
  width:48px;height:48px;border-radius:11px;object-fit:cover;display:grid;place-items:center;background:#f5e5d7;font-style:normal
}
.notifications-safe-reminders div{display:flex;flex-direction:column;min-width:0}
.notifications-safe-reminders b{font-size:10px}
.notifications-safe-reminders small{font-size:7px;color:#93776b;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.notifications-safe-reminders em{font-style:normal;color:#a37866}
.notifications-safe-memories{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:11px}
.notifications-safe-memories a{display:flex;align-items:center;gap:8px;padding:8px;border-radius:12px;background:#fff5ea;text-decoration:none;color:#573a31;min-width:0}
.notifications-safe-memories img{width:52px;height:52px;border-radius:10px;object-fit:cover}
.notifications-safe-memories span{display:flex;flex-direction:column;min-width:0}
.notifications-safe-memories small{font-size:7px;color:#967568}
.notifications-safe-memories b{font-size:8px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.notifications-safe-empty{
  min-height:250px;margin-top:13px;border:1px dashed #dfc5b2;border-radius:18px;
  background:#fffaf4;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#86695c;padding:20px
}
.notifications-safe-empty span{font-size:30px;color:#b66b4e}
.notifications-safe-empty b{font-size:12px;margin-top:6px}
.notifications-safe-empty small{font-size:8px;line-height:1.5;margin-top:5px;max-width:430px}

@media(max-width:820px){
  .notifications-safe-page{padding:0 10px 92px!important;margin-top:10px!important}
  .notifications-safe-head{padding:15px!important;flex-wrap:wrap!important}
  .notifications-safe-head h1{font-size:20px!important}
  .notifications-safe-head form{width:100%!important}
  .notifications-safe-summary{grid-template-columns:1fr!important}
  .notifications-safe-memories{grid-template-columns:1fr 1fr!important}
}


/* =========================================================
   V1.9.8.29 · Notification shell
========================================================= */
.notifications-v19829{
  max-width:1050px!important;
  margin:18px auto 34px!important;
  padding:0 18px!important;
}
.notifications-v19829-head{
  display:flex!important;align-items:center!important;gap:18px!important;
  padding:22px!important;border:1px solid #ead3c1!important;border-radius:20px!important;
  background:linear-gradient(135deg,#fffaf3,#fff1e1)!important;
}
.notifications-v19829-head>div{flex:1;min-width:0}
.notifications-v19829-head small{font-size:8px;letter-spacing:.16em;font-weight:900;color:#a16c57}
.notifications-v19829-head h1{margin:4px 0 5px;font-size:25px;color:#713327}
.notifications-v19829-head p{margin:0;font-size:10px;color:#8f7265}
.notifications-v19829-head button,
.notifications-v19829-title button{
  border:1px solid #d8b9a2;background:#fff9f2;color:#8e3b2d;border-radius:10px;
  padding:8px 11px;font-size:8px;font-weight:900;cursor:pointer
}
.notifications-v19829-summary{
  display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:12px!important;margin:13px 0!important
}
.notifications-v19829-summary>a{
  display:grid!important;grid-template-columns:44px minmax(0,1fr) auto!important;
  gap:10px!important;align-items:center!important;padding:13px!important;
  border:1px solid #ead7c7!important;border-radius:15px!important;
  background:#fffdf9!important;color:#573a32!important;text-decoration:none!important
}
.notifications-v19829-summary>a>span{
  width:44px;height:44px;border-radius:12px;display:grid;place-items:center;
  background:#f5e6d8;color:#984232;font-size:18px
}
.notifications-v19829-summary div{display:flex;flex-direction:column}
.notifications-v19829-summary b{font-size:10px}
.notifications-v19829-summary small{font-size:7px;color:#94796d;margin-top:3px}
.notifications-v19829-summary strong{font-size:21px;color:#a23b2b}

.notifications-v19829-block{
  margin-top:12px!important;padding:16px!important;
  border:1px solid #ead5c4!important;border-radius:18px!important;background:#fffdf9!important
}
.notifications-v19829-title{
  display:flex;align-items:center;gap:9px;padding-bottom:10px;border-bottom:1px solid #efdfd3
}
.notifications-v19829-title>span{
  width:35px;height:35px;border-radius:50%;display:grid;place-items:center;background:#f6e6d9;color:#9b4332
}
.notifications-v19829-title>div{display:flex;flex-direction:column;flex:1}
.notifications-v19829-title b{font-size:11px}
.notifications-v19829-title small{font-size:7px;color:#97786a;margin-top:2px}

.notifications-v19829-list{display:grid}
.notifications-v19829-list>a{
  display:grid!important;grid-template-columns:48px minmax(0,1fr) auto 14px!important;
  gap:9px!important;align-items:center!important;padding:10px 2px!important;
  border-bottom:1px solid #f0e1d6!important;text-decoration:none!important;color:#54382f!important
}
.notifications-v19829-list>a:last-child{border-bottom:0!important}
.notifications-v19829-list img,
.notifications-v19829-fallback{
  width:48px;height:48px;border-radius:11px;object-fit:cover;
  display:grid;place-items:center;background:#f5e5d7;color:#9e4735
}
.notifications-v19829-list div{display:flex;flex-direction:column;min-width:0}
.notifications-v19829-list b{font-size:10px}
.notifications-v19829-list small{font-size:7px;color:#93776b;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.notifications-v19829-list em{font-style:normal;color:#a37866}
.notifications-v19829-unread{width:8px;height:8px;border-radius:50%;background:#d23129}

.notifications-v19829-memory-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:11px
}
.notifications-v19829-memory-grid>a{
  display:flex;align-items:center;gap:8px;padding:8px;border-radius:12px;
  background:#fff5ea;text-decoration:none;color:#573a31;min-width:0
}
.notifications-v19829-memory-grid img{width:52px;height:52px;border-radius:10px;object-fit:cover}
.notifications-v19829-memory-grid span{display:flex;flex-direction:column;min-width:0}
.notifications-v19829-memory-grid small{font-size:7px;color:#967568}
.notifications-v19829-memory-grid b{font-size:8px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.notifications-v19829-state{
  min-height:240px;margin-top:13px;border:1px dashed #dfc5b2;border-radius:18px;
  background:#fffaf4;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;color:#86695c;padding:20px
}
.notifications-v19829-state>span{font-size:28px;color:#b66b4e}
.notifications-v19829-state b{font-size:12px;margin-top:6px}
.notifications-v19829-state small{font-size:8px;line-height:1.5;margin-top:5px}
.notifications-loading-dot{
  width:22px!important;height:22px!important;border-radius:50%!important;
  border:3px solid #ead0bc!important;border-top-color:#a43d2c!important;
  animation:nhSpin .8s linear infinite!important
}
@keyframes nhSpin{to{transform:rotate(360deg)}}

@media(max-width:820px){
  .notifications-v19829{padding:0 10px 92px!important;margin-top:10px!important}
  .notifications-v19829-head{padding:15px!important;flex-wrap:wrap!important}
  .notifications-v19829-head h1{font-size:20px!important}
  .notifications-v19829-summary{grid-template-columns:1fr!important}
  .notifications-v19829-memory-grid{grid-template-columns:1fr 1fr!important}
}


/* =========================================================
   V1.9.8.30 · Trung tâm Thông báo mới hoàn toàn
========================================================= */
.notification-hub-v19830{
  max-width:1080px!important;
  margin:18px auto 34px!important;
  padding:0 18px!important;
}
.notification-hub-head{
  padding:22px!important;
  border:1px solid #ead2bf!important;
  border-radius:20px!important;
  background:
    radial-gradient(circle at 88% 12%,rgba(232,181,109,.18),transparent 28%),
    linear-gradient(135deg,#fffaf3,#fff2e3)!important;
}
.notification-hub-head .eyebrow{
  font-size:8px!important;
  letter-spacing:.16em!important;
  font-weight:900!important;
  color:#a26c56!important;
}
.notification-hub-head h1{
  margin:5px 0 6px!important;
  font-size:25px!important;
  color:#713327!important;
}
.notification-hub-head p{
  margin:0!important;
  font-size:10px!important;
  color:#8d7064!important;
}

.notification-hub-summary{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:12px!important;
  margin:13px 0!important;
}
.notification-summary-card{
  display:grid!important;
  grid-template-columns:44px minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:10px!important;
  min-height:70px!important;
  padding:13px!important;
  border:1px solid #ead7c7!important;
  border-radius:15px!important;
  background:#fffdf9!important;
  text-decoration:none!important;
  color:#573a32!important;
}
.notification-summary-icon{
  width:44px!important;
  height:44px!important;
  border-radius:12px!important;
  display:grid!important;
  place-items:center!important;
  background:#f5e6d8!important;
  color:#984232!important;
  font-size:18px!important;
}
.notification-summary-card div{display:flex!important;flex-direction:column!important}
.notification-summary-card b{font-size:10px!important}
.notification-summary-card small{font-size:7px!important;color:#94796d!important;margin-top:3px!important}
.notification-summary-card strong{font-size:21px!important;color:#a23b2b!important}

.notification-hub-section{
  margin-top:12px!important;
  padding:16px!important;
  border:1px solid #ead5c4!important;
  border-radius:18px!important;
  background:#fffdf9!important;
}
.notification-section-title{
  display:flex!important;
  align-items:center!important;
  gap:9px!important;
  padding-bottom:10px!important;
  border-bottom:1px solid #efdfd3!important;
}
.notification-section-title>span{
  width:35px!important;
  height:35px!important;
  border-radius:50%!important;
  display:grid!important;
  place-items:center!important;
  background:#f6e6d9!important;
  color:#9b4332!important;
}
.notification-section-title>div{
  display:flex!important;
  flex-direction:column!important;
  flex:1!important;
}
.notification-section-title b{font-size:11px!important}
.notification-section-title small{font-size:7px!important;color:#97786a!important;margin-top:2px!important}
.notification-section-title form{margin-left:auto!important}
.notification-section-title button{
  border:1px solid #d8b9a2!important;
  background:#fff9f2!important;
  color:#8e3b2d!important;
  border-radius:10px!important;
  padding:8px 11px!important;
  font-size:8px!important;
  font-weight:900!important;
  cursor:pointer!important;
}

.notification-person-list,
.notification-reminder-list{
  display:grid!important;
}
.notification-person-list>a,
.notification-reminder-list>a,
.notification-big-link{
  display:grid!important;
  grid-template-columns:48px minmax(0,1fr) auto 14px!important;
  align-items:center!important;
  gap:9px!important;
  padding:10px 2px!important;
  border-bottom:1px solid #f0e1d6!important;
  text-decoration:none!important;
  color:#54382f!important;
}
.notification-person-list>a:last-child,
.notification-reminder-list>a:last-child{
  border-bottom:0!important;
}
.notification-person-list>a.unread{
  background:linear-gradient(90deg,#fff3e7,transparent)!important;
}
.notification-person-list img,
.notification-reminder-list img,
.notification-avatar-fallback{
  width:48px!important;
  height:48px!important;
  border-radius:11px!important;
  object-fit:cover!important;
}
.notification-avatar-fallback{
  display:grid!important;
  place-items:center!important;
  background:#f5e5d7!important;
  color:#9e4735!important;
}
.notification-person-list div,
.notification-reminder-list div,
.notification-big-link div{
  display:flex!important;
  flex-direction:column!important;
  min-width:0!important;
}
.notification-person-list b,
.notification-reminder-list b,
.notification-big-link b{
  font-size:10px!important;
}
.notification-person-list small,
.notification-reminder-list small,
.notification-big-link small{
  font-size:7px!important;
  color:#93776b!important;
  margin-top:3px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.notification-person-list i{
  width:8px!important;
  height:8px!important;
  border-radius:50%!important;
  background:#d23129!important;
}
.notification-person-list em,
.notification-reminder-list em,
.notification-big-link em{
  font-style:normal!important;
  color:#a37866!important;
}

.notification-memory-grid-v19830{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:9px!important;
  margin-top:11px!important;
}
.notification-memory-grid-v19830>a{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  min-width:0!important;
  padding:8px!important;
  border-radius:12px!important;
  background:#fff5ea!important;
  text-decoration:none!important;
  color:#573a31!important;
}
.notification-memory-grid-v19830 img{
  width:52px!important;
  height:52px!important;
  border-radius:10px!important;
  object-fit:cover!important;
}
.notification-memory-grid-v19830 span{
  display:flex!important;
  flex-direction:column!important;
  min-width:0!important;
}
.notification-memory-grid-v19830 small{
  font-size:7px!important;
  color:#967568!important;
}
.notification-memory-grid-v19830 b{
  font-size:8px!important;
  margin-top:2px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}

.notification-hub-empty{
  min-height:250px!important;
  margin-top:13px!important;
  padding:20px!important;
  border:1px dashed #dfc5b2!important;
  border-radius:18px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  background:#fffaf4!important;
  color:#86695c!important;
}
.notification-hub-empty span{font-size:30px!important;color:#b66b4e!important}
.notification-hub-empty b{font-size:12px!important;margin-top:6px!important}
.notification-hub-empty small{font-size:8px!important;line-height:1.5!important;margin-top:5px!important;max-width:430px!important}

@media(max-width:820px){
  .notification-hub-v19830{padding:0 10px 92px!important;margin-top:10px!important}
  .notification-hub-head{padding:15px!important}
  .notification-hub-head h1{font-size:20px!important}
  .notification-hub-summary{grid-template-columns:1fr!important}
  .notification-memory-grid-v19830{grid-template-columns:1fr 1fr!important}
}


/* =========================================================
   V1.9.8.32 · Notification Center trực quan + badge rõ
========================================================= */
.family-sidebar-nav-badge{
  min-width:22px!important;
  height:22px!important;
  padding:0 6px!important;
  border-radius:999px!important;
  display:grid!important;
  place-items:center!important;
  background:#d22f27!important;
  color:#fff!important;
  border:2px solid #fff7ef!important;
  box-shadow:0 2px 7px rgba(170,45,34,.22)!important;
  font-size:8px!important;
  font-weight:900!important;
  line-height:1!important;
}
.family-sidebar-simple-menu a.active .family-sidebar-nav-badge{
  background:#fff!important;
  color:#a43c2d!important;
  border-color:rgba(255,255,255,.72)!important;
}
.family-sidebar-nav-badge-messages{background:#2f79bb!important}
.family-sidebar-simple-menu a.active .family-sidebar-nav-badge-messages{color:#2f79bb!important}

.nh-notify-page{
  max-width:1120px;
  margin:18px auto 34px;
  padding:0 18px;
}
.nh-notify-hero{
  display:grid;
  grid-template-columns:52px minmax(0,1fr) auto;
  align-items:center;
  gap:14px;
  padding:20px;
  border:1px solid #e8cfbb;
  border-radius:20px;
  background:
    radial-gradient(circle at 88% 12%,rgba(239,188,113,.20),transparent 27%),
    linear-gradient(135deg,#fffaf2,#fff2e3);
}
.nh-notify-hero-icon{
  width:52px;height:52px;border-radius:15px;display:grid;place-items:center;
  background:#9f3828;color:#fff;font-size:20px;box-shadow:0 7px 16px rgba(128,54,37,.16)
}
.nh-notify-hero-copy small{font-size:8px;letter-spacing:.16em;font-weight:900;color:#a26d58}
.nh-notify-hero-copy h1{margin:4px 0 5px;font-size:25px;color:#6f3328}
.nh-notify-hero-copy p{margin:0;font-size:10px;color:#8d7063}
.nh-notify-hero form button{
  border:0;background:#a43b2b;color:#fff;border-radius:11px;padding:10px 13px;
  font-size:8px;font-weight:900;cursor:pointer;box-shadow:0 5px 12px rgba(133,53,38,.13)
}

.nh-notify-stats{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin:12px 0;
}
.nh-notify-stats>a,.nh-notify-stats>div{
  display:grid;grid-template-columns:44px minmax(0,1fr) 16px;align-items:center;gap:10px;
  min-height:67px;padding:11px 13px;border:1px solid #ead6c5;border-radius:15px;
  background:#fffdf9;text-decoration:none;color:#573b32
}
.nh-notify-stats>*>span{
  width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-size:17px
}
.nh-notify-stats .message>span{background:#e9f2fa;color:#2f79bb}
.nh-notify-stats .notice>span{background:#f8e5dc;color:#a43b2d}
.nh-notify-stats .memory>span{background:#fff0da;color:#b46d25}
.nh-notify-stats div div{display:flex;flex-direction:column}
.nh-notify-stats b{font-size:19px;line-height:1;color:#79372c}
.nh-notify-stats small{font-size:7px;color:#91766a;margin-top:4px}
.nh-notify-stats em{font-style:normal;color:#a47b69}

.nh-notify-grid{
  display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:12px;align-items:start
}
.nh-notify-main,.nh-notify-side-card{
  border:1px solid #ead5c4;border-radius:18px;background:#fffdf9
}
.nh-notify-main{padding:16px}
.nh-notify-section-head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:10px;
  padding-bottom:11px;border-bottom:1px solid #eee0d5
}
.nh-notify-section-head small{font-size:7px;letter-spacing:.14em;font-weight:900;color:#aa7059}
.nh-notify-section-head h2{margin:3px 0 0;font-size:16px;color:#683b31}
.nh-notify-pill{
  padding:6px 9px;border-radius:999px;background:#fff0e7;color:#a43c2d;font-size:7px;font-weight:900
}
.nh-notify-feed{display:grid}
.nh-notify-item{
  display:grid;grid-template-columns:50px minmax(0,1fr) auto 14px;gap:10px;align-items:center;
  min-height:70px;padding:10px 4px;border-bottom:1px solid #f0e2d7;text-decoration:none;color:#563a31
}
.nh-notify-item:last-child{border-bottom:0}
.nh-notify-item.unread{
  margin:0 -8px;padding-left:12px;padding-right:12px;
  background:linear-gradient(90deg,#fff1e6,rgba(255,250,244,.15));
  border-radius:12px;border-bottom-color:transparent
}
.nh-notify-avatar,.nh-notify-type{
  width:50px;height:50px;border-radius:13px;display:grid;place-items:center;overflow:hidden;
  background:#f4e6da;color:#984432;font-size:18px
}
.nh-notify-avatar img{width:100%;height:100%;object-fit:cover}
.nh-notify-type.birthday{background:#fff0e7;color:#bd5360}
.nh-notify-type.death{background:#efe5da;color:#744632}
.nh-notify-type.event{background:#edf3e9;color:#4a7542}
.nh-notify-type.memory{background:#fff0db;color:#b06a26}
.nh-notify-item-copy{display:flex;flex-direction:column;min-width:0}
.nh-notify-item-copy b{font-size:10px}
.nh-notify-item-copy small{font-size:8px;color:#8e7367;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nh-notify-item-copy em{font-size:7px;color:#b09386;font-style:normal;margin-top:4px}
.nh-notify-dot{width:9px;height:9px;border-radius:50%;background:#d32f27;box-shadow:0 0 0 3px #fff2e9}
.nh-notify-item strong{font-size:17px;color:#a47c6b}
.nh-notify-empty{
  min-height:230px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#886c60
}
.nh-notify-empty span{font-size:28px;color:#b76e51}
.nh-notify-empty b{font-size:11px;margin-top:6px}
.nh-notify-empty small{font-size:8px;margin-top:4px;max-width:360px;line-height:1.45}

.nh-notify-side{display:grid;gap:12px}
.nh-notify-side-card{padding:14px}
.nh-notify-side-card.warm{background:linear-gradient(180deg,#fffaf1,#fff6e8)}
.nh-notify-side-title{display:flex;align-items:center;gap:8px;padding-bottom:10px;border-bottom:1px solid #efe0d4}
.nh-notify-side-title>span{
  width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#f5e4d7;color:#994232
}
.nh-notify-side-title div{display:flex;flex-direction:column}
.nh-notify-side-title b{font-size:10px}
.nh-notify-side-title small{font-size:7px;color:#987a6c;margin-top:2px}
.nh-notify-side-number{font-size:32px;font-weight:900;color:#9d392b;margin:12px 0 2px}
.nh-notify-side-card p{font-size:8px;color:#8c7165;line-height:1.45}
.nh-notify-side-card>a{display:inline-block;margin-top:7px;color:#9e3b2e;font-size:8px;font-weight:800;text-decoration:none}
.nh-notify-feature-img{width:100%;height:120px;object-fit:cover;border-radius:12px;margin-top:10px}
.nh-notify-feature-title{display:block;font-size:9px;margin-top:8px;color:#6d4035}
.nh-notify-side-card>small{font-size:7px;color:#98796b}

@media(max-width:900px){
  .nh-notify-grid{grid-template-columns:1fr}
  .nh-notify-side{grid-template-columns:1fr 1fr}
}
@media(max-width:820px){
  .nh-notify-page{padding:0 10px 92px;margin-top:10px}
  .nh-notify-hero{grid-template-columns:44px minmax(0,1fr);padding:15px}
  .nh-notify-hero-icon{width:44px;height:44px}
  .nh-notify-hero-copy h1{font-size:20px}
  .nh-notify-hero form{grid-column:1/-1}
  .nh-notify-stats{grid-template-columns:1fr}
  .nh-notify-grid{grid-template-columns:1fr}
  .nh-notify-side{grid-template-columns:1fr}
  .nh-notify-item{grid-template-columns:46px minmax(0,1fr) auto 12px}
  .nh-notify-avatar,.nh-notify-type{width:46px;height:46px}
}


/* =========================================================
   V1.9.8.33 · Ngày này năm xưa = trang gợi nhớ, không phải Timeline
========================================================= */
.on-this-day-v19833{display:grid!important;gap:13px!important;min-width:0!important}
.otd33-hero{
  display:grid;grid-template-columns:82px minmax(0,1fr) auto;gap:17px;align-items:center;
  padding:20px;border:1px solid #e8cfbb;border-radius:20px;
  background:
    radial-gradient(circle at 87% 18%,rgba(235,184,108,.17),transparent 26%),
    linear-gradient(135deg,#fffaf3,#fff1e1);
}
.otd33-calendar{
  width:72px;height:78px;border-radius:17px;background:#9f3829;color:#fff;
  display:grid;place-items:center;align-content:center;box-shadow:0 9px 20px rgba(120,47,33,.17)
}
.otd33-calendar b{font-size:28px;line-height:1}.otd33-calendar span{font-size:7px;margin-top:5px;font-weight:900}
.otd33-hero-copy small,.otd33-featured-copy>small,.otd33-card-head small,.otd33-around-head small,.otd33-then-now header small{
  font-size:7px;letter-spacing:.15em;font-weight:900;color:#a46e58
}
.otd33-hero-copy h1{margin:4px 0 5px;font-size:23px;color:#6e3429}
.otd33-hero-copy p{margin:0;font-size:9px;line-height:1.5;color:#8d7063}
.otd33-write{
  border:0;border-radius:11px;background:#9f3829;color:#fff;padding:10px 13px;
  font-size:8px;font-weight:900;cursor:pointer;white-space:nowrap
}

.otd33-featured{
  display:grid;grid-template-columns:minmax(290px,.9fr) minmax(0,1.1fr);
  min-height:310px;border:1px solid #e7cfbc;border-radius:20px;overflow:hidden;background:#fffdf9
}
.otd33-featured-media{position:relative;display:block;min-height:310px;background:#efe4da;overflow:hidden}
.otd33-featured-media img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover}
.otd33-featured-media:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(55,28,21,.48))}
.otd33-featured-media>span{
  position:absolute;left:16px;bottom:15px;z-index:2;padding:7px 10px;border-radius:999px;
  background:rgba(255,249,240,.94);color:#83382b;font-size:8px;font-weight:900
}
.otd33-featured-copy{padding:28px;display:flex;flex-direction:column;justify-content:center}
.otd33-featured-copy h2{margin:6px 0 7px;font-size:22px;line-height:1.28;color:#63372e}
.otd33-featured-copy p{margin:0;font-size:9px;line-height:1.6;color:#866b60;max-width:640px}
.otd33-featured-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.otd33-featured-meta span{padding:5px 8px;border-radius:999px;background:#f6e8dc;color:#8c5748;font-size:7px}
.otd33-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:18px}
.otd33-actions a,.otd33-actions button{
  min-height:34px;padding:0 11px;border-radius:10px;font-size:8px;font-weight:900;display:inline-flex;align-items:center;text-decoration:none
}
.otd33-actions a{background:#9d382a;color:#fff}
.otd33-actions button{border:1px solid #dfc4b0;background:#fff8f0;color:#8b3c2f;cursor:pointer}

.otd33-section-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.otd33-card{border:1px solid #ead5c5;border-radius:18px;background:#fffdf9;padding:15px;min-width:0}
.otd33-card-head{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:9px;align-items:center;padding-bottom:10px;border-bottom:1px solid #efe0d4}
.otd33-head-icon{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:#f6e6da;color:#a14332;font-size:16px}
.otd33-head-icon.story{background:#eaf2f8;color:#38769e}.otd33-head-icon.life{background:#edf2e9;color:#55764a}
.otd33-card-head h2{margin:3px 0 0;font-size:13px;color:#653d34}
.otd33-card-head>b{font-size:20px;color:#a13b2c}

.otd33-people,.otd33-story-list{display:grid}
.otd33-people>a,.otd33-story-list>a{
  display:grid;grid-template-columns:48px minmax(0,1fr) 12px;gap:9px;align-items:center;
  min-height:67px;padding:9px 2px;border-bottom:1px solid #f0e2d7;text-decoration:none;color:#563a31
}
.otd33-people>a:last-child,.otd33-story-list>a:last-child{border-bottom:0}
.otd33-people img,.otd33-story-list img{width:48px;height:48px;border-radius:12px;object-fit:cover}
.otd33-people span,.otd33-story-list span{display:flex;flex-direction:column;min-width:0}
.otd33-people small,.otd33-story-list small{font-size:7px;color:#9b796b}
.otd33-people b,.otd33-story-list b{font-size:9px;margin-top:2px}
.otd33-people em,.otd33-story-list em{font-size:7px;color:#a08579;font-style:normal;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.otd33-people strong,.otd33-story-list strong{color:#a47a68;font-size:15px}
.otd33-people>a.memorial{background:linear-gradient(90deg,rgba(242,235,227,.55),transparent)}
.otd33-people>a.birthday{background:linear-gradient(90deg,rgba(255,240,235,.55),transparent)}

.otd33-life-card{padding-bottom:10px}
.otd33-life-strip{display:flex;gap:10px;overflow-x:auto;padding:12px 2px 4px;scrollbar-width:thin}
.otd33-life-strip>a{
  flex:0 0 255px;display:grid;grid-template-columns:52px 12px minmax(0,1fr);align-items:start;gap:8px;
  padding:10px;border-radius:13px;background:#fff7ee;text-decoration:none;color:#583a31
}
.otd33-life-year{font-size:18px;font-weight:900;color:#9c392b}
.otd33-life-dot{width:9px;height:9px;border-radius:50%;background:#c76d47;margin-top:6px;box-shadow:0 0 0 4px #f8e1d4}
.otd33-life-copy{display:flex;flex-direction:column;min-width:0}
.otd33-life-copy small{font-size:7px;color:#9b7869}.otd33-life-copy b{font-size:9px;margin-top:3px}.otd33-life-copy em{font-size:7px;font-style:normal;color:#9b8176;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.otd33-then-now{
  display:grid;grid-template-columns:250px minmax(0,1fr);gap:14px;padding:16px;border:1px solid #e8d0bc;border-radius:18px;
  background:linear-gradient(135deg,#fff8ef,#fbf0e4)
}
.otd33-then-now header{align-self:center}.otd33-then-now header h2{margin:4px 0;font-size:16px;color:#6a3c32}.otd33-then-now header p{font-size:8px;color:#907267;line-height:1.5}
.otd33-then-now-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.otd33-then-now-grid a{display:grid;grid-template-columns:86px minmax(0,1fr);gap:8px;align-items:center;padding:7px;border-radius:12px;background:#fffdf9;text-decoration:none;color:#573a31}
.otd33-then-now-grid img{width:86px;height:72px;border-radius:10px;object-fit:cover}
.otd33-then-now-grid span{display:flex;flex-direction:column;min-width:0}.otd33-then-now-grid small{font-size:7px;color:#9a7768}.otd33-then-now-grid b{font-size:9px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.otd33-around{padding:16px;border:1px solid #ead6c5;border-radius:18px;background:#fffdf9}
.otd33-around-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;padding-bottom:11px;border-bottom:1px solid #efe0d5}
.otd33-around-head h2{margin:3px 0;font-size:14px;color:#663d34}.otd33-around-head p{margin:0;font-size:8px;color:#917468}
.otd33-around-head>a{font-size:8px;font-weight:900;color:#9a3b2d;text-decoration:none;white-space:nowrap}
.otd33-around-row{display:flex;gap:9px;overflow-x:auto;padding-top:11px;scrollbar-width:thin}
.otd33-around-row>a{flex:0 0 210px;display:grid;grid-template-columns:62px minmax(0,1fr);gap:8px;align-items:center;padding:7px;border-radius:12px;background:#fff5e9;text-decoration:none;color:#573a31}
.otd33-around-row img{width:62px;height:58px;border-radius:10px;object-fit:cover}
.otd33-around-row span{display:flex;flex-direction:column;min-width:0}.otd33-around-row small{font-size:7px;color:#977568}.otd33-around-row b{font-size:8px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.otd33-mini-empty{padding:24px 12px;text-align:center;color:#987c70;font-size:8px}.otd33-mini-empty.wide{padding:26px}
.otd33-empty-today{
  padding:28px 20px;border:1px dashed #ddc3af;border-radius:18px;background:#fff9f2;text-align:center;color:#86695d
}
.otd33-empty-today>span{font-size:30px;color:#ae6e52}.otd33-empty-today h2{font-size:16px;color:#6c3b31}.otd33-empty-today p{max-width:620px;margin:7px auto 14px;font-size:9px;line-height:1.6}
.otd33-empty-today button{border:0;background:#9e382a;color:#fff;border-radius:10px;padding:9px 12px;font-size:8px;font-weight:900;cursor:pointer}

@media(max-width:900px){
  .otd33-featured{grid-template-columns:1fr}.otd33-featured-media{min-height:250px}.otd33-section-grid{grid-template-columns:1fr}
  .otd33-then-now{grid-template-columns:1fr}
}
@media(max-width:820px){
  .on-this-day-v19833{padding:0 10px 90px!important}
  .otd33-hero{grid-template-columns:62px minmax(0,1fr);gap:10px;padding:14px}
  .otd33-calendar{width:58px;height:63px;border-radius:14px}.otd33-calendar b{font-size:23px}.otd33-calendar span{font-size:6px}
  .otd33-hero-copy h1{font-size:17px;line-height:1.2}.otd33-hero-copy p{font-size:8px}
  .otd33-write{grid-column:1/-1;width:100%}
  .otd33-featured-media{min-height:220px}.otd33-featured-copy{padding:18px}.otd33-featured-copy h2{font-size:18px}
  .otd33-then-now-grid{grid-template-columns:1fr 1fr}.otd33-then-now-grid a{grid-template-columns:1fr}.otd33-then-now-grid img{width:100%;height:105px}
  .otd33-around-head{align-items:flex-start;flex-direction:column}
}


/* =========================================================
   V1.9.8.34 · Menu chữ lớn + mobile dock/logo + gallery touch
========================================================= */

/* Chữ menu danh mục rõ hơn, cả 3 mục lõi lẫn menu phụ */
.family-sidebar-v3 .family-sidebar-core-copy b{
  font-size:12px!important;
  line-height:1.18!important;
}
.family-sidebar-v3 .family-sidebar-core-copy small{
  font-size:7.6px!important;
  line-height:1.35!important;
}
.family-sidebar-v3 .family-sidebar-simple-menu b{
  font-size:12px!important;
  line-height:1.2!important;
}
.family-sidebar-v3 .family-sidebar-simple-menu a{
  min-height:50px!important;
}

/* Logo riêng trên header mobile */
.mobile-header-home-logo{display:none}

@media(max-width:820px){
  .mobile-header-home-logo{
    position:absolute!important;
    top:8px!important;
    right:10px!important;
    width:64px!important;
    height:52px!important;
    z-index:38!important;
    display:grid!important;
    place-items:center!important;
    border-radius:15px!important;
    background:rgba(255,250,244,.95)!important;
    border:1px solid rgba(126,69,42,.16)!important;
    box-shadow:0 5px 16px rgba(61,38,27,.10)!important;
    text-decoration:none!important;
  }
  .mobile-header-home-logo img{
    display:block!important;
    width:auto!important;
    height:auto!important;
    max-width:58px!important;
    max-height:46px!important;
    object-fit:contain!important;
  }

  /* Dock còn đúng 5 mục: Danh mục / Phả đồ / Dòng thời gian / Tin nhắn / Danh bạ */
  .family-mobile-dock{
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
  }

  /* Chữ trong drawer mobile cũng lớn, dễ đọc */
  .mobile-family-sidebar-content .family-sidebar-core-copy b{
    font-size:12px!important;
  }
  .mobile-family-sidebar-content .family-sidebar-core-copy small{
    font-size:7.6px!important;
  }
  .mobile-family-sidebar-content .family-sidebar-simple-menu b{
    font-size:12px!important;
  }

  /* Lightbox mobile: ảnh nhận pinch/pan/swipe, không bị browser kéo ảnh mặc định */
  .image-lightbox-stage{
    touch-action:none!important;
    overflow:hidden!important;
  }
  .image-lightbox-stage img{
    touch-action:none!important;
    user-select:none!important;
    -webkit-user-select:none!important;
    -webkit-user-drag:none!important;
  }

  /*
   * Trên mobile mũi tên vẫn tồn tại nhưng thu nhỏ/mờ hơn vì giờ vuốt được.
   * Không che ảnh, người dùng có thể vuốt ở gần như toàn bộ màn hình.
   */
  .image-lightbox .lightbox-nav{
    opacity:.45!important;
    width:38px!important;
    height:52px!important;
  }
  .image-lightbox .lightbox-prev{left:4px!important}
  .image-lightbox .lightbox-next{right:4px!important}

  /* Tool zoom cũ không cần hiện trên mobile: pinch trực tiếp bằng hai ngón */
  .image-lightbox .image-lightbox-tools{
    display:none!important;
  }
}


/* V1.9.8.35 · Ký ức / Cuộc đời tôi */
.life-memory-page{display:flex;flex-direction:column;gap:16px}
.life-hero,.life-prompt,.life-progress,.life-journey,.life-book-teaser{background:#fffaf4;border:1px solid #ead2bb;border-radius:22px;box-shadow:0 12px 30px rgba(91,48,28,.06)}
.life-hero{display:flex;align-items:center;gap:18px;padding:24px 26px;background:linear-gradient(115deg,#fff8ef,#fff2e3)}
.life-hero-mark{width:66px;height:66px;border-radius:20px;background:#fff;border:1px solid #efd7bd;display:grid;place-items:center;font-size:30px;box-shadow:0 8px 20px #8b4c2520;flex:0 0 auto}
.life-hero-copy{flex:1}.life-hero small,.life-prompt small,.life-journey>header small,.life-book-teaser small{font-size:11px;font-weight:800;letter-spacing:1.7px;color:#a65b39}
.life-hero h1{margin:5px 0 7px;font-size:27px;color:#6e2d20}.life-hero p,.life-prompt p,.life-progress p,.life-journey>header p,.life-book-teaser p{margin:0;color:#80685a;line-height:1.65}
.life-today-link{white-space:nowrap;padding:12px 15px;border-radius:13px;border:1px solid #dfbda0;color:#8e3926;background:#fff;text-decoration:none;font-weight:700}
.life-prompt{padding:20px 22px;display:grid;grid-template-columns:52px 1fr auto;gap:16px;align-items:center;border-color:#e6b77f;background:linear-gradient(100deg,#fff7e8,#fffaf5)}
.life-prompt-icon{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:#9d3825;color:#fff;font-size:23px}
.life-prompt h2{margin:3px 0 4px;color:#6f3024;font-size:21px}.life-prompt-actions{display:flex;gap:8px}.life-prompt-actions button,.life-write-btn{border:0;border-radius:12px;background:#97321f;color:#fff;padding:11px 14px;font-weight:800;cursor:pointer}.life-prompt-actions .ghost{background:#fff;color:#8d4b35;border:1px solid #e5c6aa}
.life-progress{padding:17px 21px}.life-progress>div:first-child{display:flex;justify-content:space-between;align-items:center}.life-progress small{font-size:10px;font-weight:800;color:#a46c51;letter-spacing:1px}.life-progress b{color:#753326}.life-progress-bar{height:9px;background:#f2e2d3;border-radius:20px;margin:11px 0 7px;overflow:hidden}.life-progress-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#bd5a2d,#7e9d53)}
.life-journey{padding:25px}.life-journey>header{padding:0 0 20px 72px}.life-journey>header h2{margin:4px 0 5px;color:#6c3025;font-size:24px}
.life-line{position:relative}.life-line:before{content:"";position:absolute;left:27px;top:10px;bottom:20px;width:2px;background:linear-gradient(#d79b67,#e9d4c0)}
.life-stage{display:grid;grid-template-columns:56px 1fr;gap:16px;position:relative;padding-bottom:17px}.life-stage-dot{z-index:1;padding-top:13px}.life-stage-dot span{width:55px;height:55px;border-radius:50%;display:grid;place-items:center;background:#fff5e9;border:2px solid #cf8a54;color:#9a3c25;font-size:22px;box-shadow:0 5px 12px #78411d15}
.life-stage.has-memory .life-stage-dot span{background:#6f8f4a;border-color:#6f8f4a;color:#fff}
.life-stage-card{border:1px solid #ead3bd;border-radius:18px;padding:17px 18px;background:#fffdf9}.life-stage-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}.life-stage-head small{color:#a36a4c;font-size:11px;font-weight:800}.life-stage-head h3{margin:2px 0 0;color:#643026;font-size:19px}.life-stage-card>p{color:#80685c;margin:8px 0 13px;line-height:1.55}
.life-count{background:#edf5e6;color:#547438;border-radius:20px;padding:6px 10px;font-size:11px;white-space:nowrap}.life-count.empty{background:#f8eee4;color:#a66c4e}
.life-memory-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:11px 0}.life-memory-strip a{min-width:0;display:flex;gap:8px;align-items:center;background:#fff6ec;border-radius:12px;padding:7px;text-decoration:none;color:#613126}.life-memory-strip img,.life-memory-noimg{width:43px;height:43px;border-radius:9px;object-fit:cover;display:grid;place-items:center;background:#ead8c6;flex:0 0 auto}.life-memory-strip span span{min-width:0}.life-memory-strip small{display:block;color:#a37864;font-size:9px}.life-memory-strip b{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.life-write-btn{background:#fff4e9;color:#8f3926;border:1px solid #e6c4a6;padding:9px 12px}
.life-book-teaser{display:flex;gap:17px;align-items:center;padding:21px 24px;background:linear-gradient(110deg,#f9ecda,#fffaf4)}.life-book-teaser>span{font-size:36px}.life-book-teaser h2{margin:3px 0 5px;color:#6d3025}
@media(max-width:760px){
 .life-memory-page{gap:10px}.life-hero{padding:17px;align-items:flex-start;flex-wrap:wrap}.life-hero-mark{width:52px;height:52px;border-radius:15px}.life-hero-copy{min-width:calc(100% - 72px)}.life-hero h1{font-size:21px}.life-today-link{margin-left:70px;padding:9px 11px}
 .life-prompt{grid-template-columns:45px 1fr;padding:15px;gap:10px}.life-prompt-icon{width:45px;height:45px}.life-prompt-actions{grid-column:1/-1}.life-prompt-actions button{flex:1}
 .life-journey{padding:17px 13px}.life-journey>header{padding:0 0 16px 54px}.life-line:before{left:21px}.life-stage{grid-template-columns:44px 1fr;gap:9px}.life-stage-dot span{width:43px;height:43px;font-size:17px}.life-stage-card{padding:13px}.life-stage-head h3{font-size:16px}.life-stage-head{display:block}.life-count{display:inline-block;margin-top:6px}.life-memory-strip{grid-template-columns:1fr 1fr}.life-book-teaser{padding:16px}
}


/* =========================================================
 V1.9.8.36 · Hộp ký ức / Lời nhắn cho mai sau
========================================================= */
.future-page{display:flex;flex-direction:column;gap:14px;min-width:0}
.future-hero,.future-create-card,.future-panel,.future-opened{background:#fffaf4;border:1px solid #ead2bd;border-radius:20px}
.future-hero{padding:22px;display:flex;gap:15px;align-items:center;background:linear-gradient(120deg,#fff8ed,#fff1e3)}
.future-hero-icon{width:58px;height:58px;border-radius:17px;background:#9b3524;color:#fff;display:grid;place-items:center;font-size:25px}
.future-hero small,.future-form-head small,.future-panel header small,.future-opened>small{font-size:9px;font-weight:900;letter-spacing:1.4px;color:#a5684d}
.future-hero h1{font-size:24px;color:#6b3025;margin:4px 0 5px}.future-hero p{margin:0;color:#846b5e;line-height:1.55}
.future-alert{padding:11px 14px;border-radius:12px;font-weight:700}.future-alert.error{background:#fff0ed;color:#a33a2e}.future-alert.success{background:#edf7e9;color:#537741}
.future-type-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.future-type{text-align:left;border:1px solid #ead3be;background:#fffdf9;border-radius:18px;padding:16px;display:flex;gap:13px;cursor:pointer;color:#63392f}.future-type>span{font-size:29px}.future-type h2{font-size:16px;margin:3px 0 4px}.future-type p{margin:0;color:#8d7569;line-height:1.45}.future-type small{font-size:9px;font-weight:900;color:#a56548}.future-type.active{border-color:#bd7955;box-shadow:0 0 0 2px #f0d7c2;background:#fff7ed}
.future-create-card{padding:20px}.future-form-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #efdfd2;padding-bottom:12px}.future-form-head h2{font-size:19px;color:#6c3126;margin:3px 0}.future-form-head>span{font-size:9px;background:#f7e9dd;border-radius:999px;padding:7px 10px;color:#8d4b38}
.future-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:15px}.future-form-grid label{display:flex;flex-direction:column;gap:6px;font-size:10px;font-weight:800;color:#70463a}.future-form-grid .wide{grid-column:1/-1}.future-form-grid input,.future-form-grid select,.future-form-grid textarea{width:100%;box-sizing:border-box;border:1px solid #e4c8b0;border-radius:11px;background:#fffdf9;padding:10px;color:#573a31;font:inherit}.future-form-grid textarea{resize:vertical;min-height:130px}.future-form-grid select[multiple]{min-height:94px}.future-form-grid small{font-size:8px;color:#9c7e70;font-weight:500}.future-media{padding:12px;border:1px dashed #dfbea3;border-radius:12px;background:#fff8ef}
.future-safety{display:flex;gap:9px;align-items:center;margin:14px 0;padding:11px;background:#f8eee3;border-radius:12px}.future-safety>span{font-size:22px}.future-safety div{display:flex;flex-direction:column}.future-safety b{font-size:10px}.future-safety small{font-size:8px;color:#927469;margin-top:2px}
.future-submit{border:0;border-radius:12px;background:#973321;color:#fff;padding:12px 16px;font-weight:900;cursor:pointer}
.future-dashboard{display:grid;grid-template-columns:1fr 1fr;gap:12px}.future-panel{padding:15px}.future-panel>header{display:flex;justify-content:space-between;align-items:end;border-bottom:1px solid #efdfd3;padding-bottom:10px}.future-panel h2{font-size:16px;color:#6a392f;margin:3px 0}.future-panel>header>b{font-size:22px;color:#9d3929}
.future-list{display:grid}.future-list article{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:9px;align-items:center;padding:10px 2px;border-bottom:1px solid #f0e2d7}.future-list article:last-child{border-bottom:0}.future-list article.ready{background:linear-gradient(90deg,#edf7e8,transparent);border-radius:12px;padding-left:8px}.future-sender img,.future-own-icon{width:48px;height:48px;border-radius:12px;object-fit:cover;display:grid;place-items:center;background:#f5e5d8;font-size:22px}.future-list article>div{min-width:0}.future-list small{font-size:8px;color:#9a786a}.future-list h3{font-size:11px;margin:2px 0;color:#5f3930;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.future-list p{font-size:8px;color:#8c7267;margin:2px 0}.future-list button{border:0;border-radius:9px;background:#9c3928;color:#fff;padding:8px 10px;font-size:8px;font-weight:900;cursor:pointer}.future-list button.danger{background:#fff0ea;color:#a03b2f;border:1px solid #e7c4b5}.future-list i{font-style:normal;font-size:18px}.future-empty{text-align:center;padding:28px 10px;color:#9a8074;font-size:9px}
.future-opened{padding:27px;text-align:center;background:linear-gradient(145deg,#fff8ec,#fffdf8)}.future-opened-lock{font-size:36px}.future-opened h2{font-size:24px;color:#6d3025;margin:5px 0 9px}.future-opened>p{max-width:720px;margin:0 auto 15px;line-height:1.75;color:#73584e}.future-opened>button{border:0;background:#9b3827;color:#fff;border-radius:11px;padding:10px 13px;font-weight:800}
.future-media-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:15px 0}.future-media-grid img,.future-media-grid video{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:12px}.future-media-grid audio{width:100%}.future-media-grid a{padding:14px;background:#fff;border-radius:10px;color:#843d2e;text-decoration:none}
@media(max-width:820px){.future-page{padding:0 10px 90px}.future-type-grid,.future-dashboard{grid-template-columns:1fr}.future-form-grid{grid-template-columns:1fr}.future-form-grid .wide{grid-column:auto}.future-form-head{align-items:flex-start;gap:8px;flex-direction:column}.future-media-grid{grid-template-columns:1fr 1fr}.future-hero{align-items:flex-start}.future-hero h1{font-size:20px}}


/* =========================================================
   V1.9.8.37 · Composer Ký ức 2 phần
========================================================= */
.composer-step-tabs.composer-tabs-two{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:8px!important;
}
.composer-step-tabs.composer-tabs-two button{
  min-height:54px!important;
}
@media(max-width:820px){
  .composer-step-tabs.composer-tabs-two{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    overflow:visible!important;
  }
  .composer-step-tabs.composer-tabs-two button{
    min-width:0!important;
    width:100%!important;
    flex:none!important;
  }
}


/* =========================================================
   V1.9.8.39 · Menu phụ dễ đọc — giữ nguyên 3 ô lõi V1.9.8.37
========================================================= */

/* Chỉ tăng cỡ chữ menu phụ, tuyệt đối không ép font-weight */
.family-sidebar-v3 .family-sidebar-simple-menu b{
  font-size:14px!important;
  line-height:1.35!important;
}
.family-sidebar-v3 .family-sidebar-simple-menu small{
  font-size:10px!important;
  line-height:1.4!important;
}

/* Tăng vùng bấm/chiều cao nhưng giữ bố cục cũ */
.family-sidebar-v3 .family-sidebar-simple-menu a{
  min-height:56px!important;
  padding-top:9px!important;
  padding-bottom:9px!important;
}

/* Icon chỉ tăng rất nhẹ, không làm menu nặng nề */
.family-sidebar-v3 .family-sidebar-simple-menu .family-sidebar-nav-icon{
  width:36px!important;
  height:36px!important;
  min-width:36px!important;
  font-size:15px!important;
}

@media(max-width:820px){
  .mobile-family-sidebar-content .family-sidebar-simple-menu b{
    font-size:14px!important;
    line-height:1.35!important;
  }
  .mobile-family-sidebar-content .family-sidebar-simple-menu small{
    font-size:10px!important;
  }
  .mobile-family-sidebar-content .family-sidebar-simple-menu a{
    min-height:56px!important;
  }
}


/* =========================================================
   V1.9.8.40 · Composer submit + Timeline mobile
========================================================= */
/* form-grid từng làm input Khoảng thời gian hiện dù đang chọn Chỉ nhớ năm */
#composerForm .time-fields[hidden]{display:none!important}
#composerForm .time-fields:not([hidden]){display:block}
#composerForm .time-fields.form-grid.two:not([hidden]){display:grid!important}
#composerForm .btn.primary.is-loading{opacity:.72;cursor:wait;pointer-events:none}
/* lỗi submit phải nổi trên modal, không nằm mờ phía sau */
#appToast{z-index:5000!important}

@media(max-width:820px){
  /* Các nhãn Kỷ niệm / Bên nội / Đăng bởi... gọn hơn */
  .timeline-entry-meta{gap:3px!important;min-height:14px!important;flex-wrap:wrap!important}
  .timeline-entry-type,
  .timeline-entry-group,
  .timeline-entry-author,
  .timeline-event-alert{
    font-size:6.2px!important;
    line-height:1.15!important;
    padding:2px 5px!important;
    border-radius:999px!important;
    font-weight:600!important;
  }
  /* Tiêu đề ký ức là nội dung chính nên phải nổi bật hơn */
  .timeline-content h3{
    font-size:14px!important;
    line-height:1.28!important;
    font-weight:800!important;
    margin:7px 0 4px!important;
    color:#4c2d25!important;
  }
  .timeline-content p{font-size:8.6px!important;line-height:1.45!important}
  .timeline-open-link{font-size:7.5px!important}
}


/* =========================================================
   V1.9.8.43 · Gửi lại cho mai sau — chọn người, điều kiện, trình bày
========================================================= */
.future-form-grid [hidden],
.future-create-card [hidden]{display:none!important}
.future-field,.future-person-picker,.future-content-editor{display:flex;flex-direction:column;gap:7px}
.future-label{font-size:10px;font-weight:800;color:#70463a}

.future-scope-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.future-scope-choice{
  display:grid!important;grid-template-columns:36px minmax(0,1fr) 20px!important;
  align-items:center!important;gap:8px!important;min-height:62px!important;padding:9px!important;
  border:1px solid #ead3be!important;border-radius:13px!important;background:#fffdf9!important;cursor:pointer!important
}
.future-scope-choice>input{position:absolute;opacity:0;pointer-events:none}
.future-scope-icon{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:#f6e7da;font-size:16px}
.future-scope-choice span:nth-of-type(2){display:flex;flex-direction:column;min-width:0}
.future-scope-choice b{font-size:10px;color:#633b31}
.future-scope-choice small{font-size:7px!important;color:#96776a!important;margin-top:2px}
.future-scope-choice>i{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:#eee2d7;color:transparent;font-style:normal;font-size:8px}
.future-scope-choice:has(input:checked){border-color:#b96c48!important;background:#fff5e9!important;box-shadow:0 0 0 2px #f3ddca}
.future-scope-choice:has(input:checked)>i{background:#a6402e;color:#fff}
.future-scope-note{font-size:8px!important;color:#95776a!important}

.future-person-picker{padding:12px;border:1px dashed #dfbea3;border-radius:14px;background:#fff9f2}
.future-person-search{display:flex;align-items:center;gap:7px;border:1px solid #e2c6ae;border-radius:11px;padding:0 10px;background:#fff}
.future-person-search input{border:0!important;outline:0!important;background:transparent!important;padding-left:0!important}
.future-person-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:230px;overflow:auto;padding:2px}
.future-person-list>label{
 display:grid!important;grid-template-columns:22px 38px minmax(0,1fr) 18px!important;gap:7px!important;align-items:center!important;
 min-height:52px!important;border:1px solid #ead8c9!important;border-radius:11px!important;padding:7px!important;background:#fff!important;cursor:pointer!important
}
.future-person-list>label[hidden]{display:none!important}
.future-person-list input{width:16px!important;height:16px!important}
.future-person-list img{width:38px;height:38px;border-radius:10px;object-fit:cover}
.future-person-list span{display:flex;flex-direction:column;min-width:0}
.future-person-list b{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.future-person-list small{font-size:7px!important;color:#98796b!important}
.future-person-list i{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:#efe4da;color:transparent;font-style:normal;font-size:8px}
.future-person-list>label:has(input:checked){background:#fff3e6!important;border-color:#bd7d5e!important}
.future-person-list>label:has(input:checked) i{background:#a33e2d;color:#fff}

.future-unlock-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.future-unlock-options label{
 display:flex!important;align-items:center!important;gap:7px!important;min-height:48px!important;
 border:1px solid #e9d2be!important;border-radius:12px!important;padding:8px 10px!important;background:#fffdf9!important;cursor:pointer!important
}
.future-unlock-options input{width:16px!important;height:16px!important}
.future-unlock-options b{font-size:9px;color:#654037}
.future-unlock-options label:has(input:checked){background:#fff2e5!important;border-color:#b86c49!important;box-shadow:0 0 0 2px #f3ddcb}
.future-after-death-info{grid-column:1/-1;padding:11px 13px;border-radius:12px;background:#f6efe8;color:#79594d;font-size:9px;line-height:1.5}

.future-content-editor textarea{transition:.18s ease;border:1px solid #dfc1a8!important}
.future-style-tools{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:9px 11px;border:1px solid #ead3be;border-radius:12px;background:#fff8ef}
.future-style-tools>div{display:flex;align-items:center;gap:6px}
.future-style-tools small{font-size:8px;font-weight:800;color:#8b685a;margin-right:3px}
.future-style-tools label{display:block!important}
.future-style-tools input{position:absolute;opacity:0;pointer-events:none;width:0!important;height:0!important}
.future-style-tools i{display:block;width:25px;height:25px;border-radius:8px;border:2px solid #fff;box-shadow:0 0 0 1px #d8c1af;cursor:pointer}
.future-style-tools input:checked+i{box-shadow:0 0 0 2px #a94430}
.bg-plain{background:#fffdf9}.bg-warm{background:linear-gradient(135deg,#fff3d8,#f4c478)}.bg-paper{background:#f4eadc}
.bg-sage{background:#dbe8d4}.bg-rose{background:#f1d7dc}.bg-night{background:#3b3238}.bg-sunset{background:linear-gradient(135deg,#f1b76e,#b65d4c)}
.future-color-dot{background:var(--c)!important;border-radius:50%!important;width:22px!important;height:22px!important}
.future-bg-plain{background:#fffdf9!important}.future-bg-warm{background:linear-gradient(135deg,#fff3d8,#f4c478)!important}
.future-bg-paper{background:#f4eadc!important}.future-bg-sage{background:#dbe8d4!important}.future-bg-rose{background:#f1d7dc!important}
.future-bg-night{background:#3b3238!important}.future-bg-sunset{background:linear-gradient(135deg,#f1b76e,#b65d4c)!important}
.future-opened-message{padding:22px;border-radius:16px;margin:10px auto 16px;max-width:760px;color:var(--future-text)}
.future-opened-message h2,.future-opened-message p{color:inherit!important}

.future-ready-notification{background:linear-gradient(90deg,#fff0d7,#fffaf3)!important}
.future-ready-card{background:linear-gradient(180deg,#fff8e8,#fffdf8)!important}

@media(max-width:820px){
 .future-scope-options{grid-template-columns:1fr 1fr}
 .future-person-list{grid-template-columns:1fr}
 .future-unlock-options{grid-template-columns:1fr}
}

/* V1.9.8.44 · trạng thái khóa + chia sẻ khoảnh khắc mở hộp */
.future-share-note{display:block;margin:8px auto 0;color:#8d7266;font-size:8px;text-align:center}
.future-list article.locked p{color:#9a6857!important;font-weight:700}
.future-list article.ready p{color:#557542!important;font-weight:800}
