/* ===== V1.4 — Khu vực quản trị cặp đôi + tối ưu điện thoại/máy tính bảng ===== */
.cp{--bg:#f6f2ee;--card:#fff;--line:#e8ddd3;--ink:#34262a;--mute:#85736f;--acc:#7b2434;--acc2:#a3475a;--gold:#b08d57;--ok:#2f7a4b;--bad:#b3392f;
 display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh;min-height:100dvh;background:var(--bg);color:var(--ink);font-size:15px;line-height:1.5}
.cp *{box-sizing:border-box}
.cp h1,.cp h2,.cp h3{font-family:'Playfair Display',serif;margin:0}
.cp .muted{color:var(--mute)}

/* khung */
.cp-side{position:sticky;top:0;height:100vh;height:100dvh;display:flex;flex-direction:column;padding:24px 16px;background:linear-gradient(180deg,#4b1d29,#3a1620);color:#fff;overflow:auto}
.cp-brand b{display:block;font:700 21px 'Playfair Display',serif}.cp-brand small{display:block;margin-top:4px;color:#e6c8a1;font-size:11px;letter-spacing:.14em}
.cp-who{margin:22px 4px 18px;padding:14px;border:1px solid rgba(255,255,255,.16);border-radius:12px;font:italic 17px/1.4 'Playfair Display',serif;color:#f6e6d0;text-align:center}
.cp-sidenav{display:grid;gap:3px}
.cp-nav{display:flex;align-items:center;gap:12px;min-height:46px;padding:0 14px;border:0;border-radius:10px;background:transparent;color:#ecdcd8;font:inherit;font-size:14px;text-align:left;cursor:pointer}
.cp-nav:hover{background:rgba(255,255,255,.08)}.cp-nav.on{background:#fff;color:var(--acc);font-weight:600}
.cp-side-foot{margin-top:auto;display:grid;gap:8px;padding-top:18px}
.cp-main{padding:28px clamp(16px,3vw,40px) 60px;min-width:0;max-width:1180px;width:100%}
.cp-top{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:22px}
.cp-top h1{font-size:clamp(24px,3.4vw,32px);font-weight:600;color:var(--acc)}.cp-top p{margin:4px 0 0;font-size:13.5px}
.cp-view{display:none;white-space:nowrap}
.cp-pane{display:grid;gap:18px}
#profileForm{display:block}#profileForm>.cp-pane{margin-bottom:0}

/* nút */
.cp-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 18px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--acc);font:600 14px 'DM Sans',sans-serif;text-decoration:none;cursor:pointer;transition:background .15s,transform .1s;-webkit-tap-highlight-color:transparent}
.cp-btn:hover{background:#faf3ee}.cp-btn:active{transform:scale(.98)}
.cp-btn.primary{background:var(--acc);border-color:var(--acc);color:#fff}.cp-btn.primary:hover{background:#6a1d2c}
.cp-btn.light{background:#f5e9de;border-color:#f5e9de}.cp-btn.ghost{background:transparent;border-color:rgba(255,255,255,.28);color:#fff}.cp-btn.ghost:hover{background:rgba(255,255,255,.1)}
.cp-btn.danger{color:var(--bad);border-color:#efc9c4}.cp-btn.danger:hover{background:#fdf0ee}
.cp-btn.sm{min-height:38px;padding:0 12px;font-size:13px}
.cp-btn:disabled{opacity:.55;cursor:not-allowed}
.cp-btn:focus-visible,.cp-nav:focus-visible,.chip:focus-visible,.cp-opt:has(input:focus-visible),.cp-drop:focus-within{outline:2px solid var(--gold);outline-offset:2px}
.cp-row-btns{display:flex;flex-wrap:wrap;gap:8px}
.cp-link{border:0;background:none;color:var(--acc);font:600 13px 'DM Sans';text-decoration:underline;cursor:pointer;min-height:36px}

/* thẻ */
.cp-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:clamp(16px,2.4vw,24px);box-shadow:0 6px 22px rgba(80,40,30,.05)}
.cp-card-h{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px}
.cp-card-h h2{font-size:19px;font-weight:600}.cp-card-h small{color:var(--mute);font:400 12.5px 'DM Sans'}
.cp-sub{font:600 14px 'DM Sans',sans-serif!important;color:var(--acc);margin:18px 0 8px!important}.cp-sub:first-of-type{margin-top:4px!important}
.cp-note{font-size:12.5px;margin:12px 0 0}
.cp-empty{padding:26px 14px;text-align:center;color:var(--mute);font-size:14px}

/* tổng quan */
.cp-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:18px;padding:clamp(18px,3vw,28px);border-radius:18px;background:linear-gradient(135deg,#4b1d29,#7b2434);color:#fff}
.cp-eye{font-size:12px;letter-spacing:.16em;color:#e6c8a1;text-transform:uppercase}.cp-big{font:600 clamp(34px,6vw,52px)/1.1 'Playfair Display',serif;margin:6px 0}.cp-hero .muted{color:#e8d5cc}
.cp-share label{font-size:12px;letter-spacing:.1em;color:#e6c8a1}
.cp-url{margin:6px 0 12px;padding:11px 12px;border:1px dashed rgba(255,255,255,.4);border-radius:10px;background:rgba(255,255,255,.08);font-size:13px;word-break:break-all}
.cp-hero .cp-btn{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.3);color:#fff}.cp-hero .cp-btn.primary{background:#fff;color:var(--acc);border-color:#fff}
.cp-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.cp-stats div{padding:16px;background:#fff;border:1px solid var(--line);border-radius:14px}.cp-stats b{display:block;font:600 30px 'Playfair Display',serif;color:var(--acc)}.cp-stats span{font-size:12.5px;color:var(--mute)}
.cp-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.cp-pct{font:600 18px 'Playfair Display';color:var(--acc)}
.cp-meter{height:8px;border-radius:99px;background:#f0e6dd;overflow:hidden;margin-bottom:12px}.cp-meter i{display:block;height:100%;background:linear-gradient(90deg,var(--acc),var(--gold));border-radius:99px;transition:width .5s}
.cp-steps{list-style:none;margin:0;padding:0}.cp-steps li{display:flex;align-items:center;gap:10px;min-height:46px;border-bottom:1px solid #f1e8e0;font-size:14px}.cp-steps li:last-child{border:0}
.cp-steps .tick{flex:none;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1.5px solid #d9c8bb;font-size:13px;color:#fff}.cp-steps li.ok .tick{background:var(--ok);border-color:var(--ok)}.cp-steps li.ok span:nth-child(2){color:var(--mute)}.cp-steps .cp-link{margin-left:auto}
.cp-wish{padding:10px 0;border-bottom:1px solid #f1e8e0}.cp-wish:last-child{border:0}.cp-wish p{margin:2px 0 0;font:italic 14px/1.6 'Playfair Display',serif;color:#5b4a4d}

/* hình ảnh */
.cp-ph-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.cp-ph.wide{grid-column:span 2}
.cp-ph-box{position:relative;width:100%;border-radius:12px;overflow:hidden;background:#f4ece5;border:1px solid var(--line)}
.cp-ph-box img{width:100%;height:100%;object-fit:cover;display:block}
.cp-ph-empty{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:6px;color:#b6a69b;font-size:13px}
.cp-ph-ttl{font-weight:600;margin:10px 0 2px;font-size:14px}.cp-ph-d{margin:0 0 8px;font-size:12.5px}
.cp-ph .cp-row-btns{margin-top:8px}.cp-ph .cp-btn{min-height:42px;padding:0 14px;flex:1 1 auto}
.cp-drop{display:grid;justify-items:center;gap:4px;text-align:center;padding:26px 16px;border:2px dashed #d8c3b3;border-radius:14px;background:#fffaf6;cursor:pointer;transition:.15s;color:var(--acc)}
.cp-drop span{font-size:12.5px;color:var(--mute);max-width:420px}.cp-drop:hover,.cp-drop.over{background:#fbeee4;border-color:var(--acc)}
.cp-gal-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:16px 0 12px;font-size:13.5px;color:var(--mute)}
.cp-gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.cp-gi{position:relative;margin:0;aspect-ratio:1/1;border-radius:12px;overflow:hidden;background:#f4ece5;border:2px solid transparent}
.cp-gi img{width:100%;height:100%;object-fit:cover}.cp-gi.sel{border-color:var(--acc)}.cp-gi.sel img{opacity:.78}
.cp-gi .chk{position:absolute;left:6px;top:6px;width:30px;height:30px;display:grid;place-items:center;border:2px solid #fff;border-radius:8px;background:rgba(0,0,0,.28);color:#fff;font-size:16px;cursor:pointer}.cp-gi.sel .chk{background:var(--acc)}
.cp-gi .no{position:absolute;right:8px;top:8px;min-width:22px;height:22px;padding:0 6px;border-radius:99px;background:rgba(0,0,0,.45);color:#fff;font-size:11px;display:grid;place-items:center}
.cp-gi .acts{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:center;gap:4px;padding:18px 6px 6px;background:linear-gradient(transparent,rgba(0,0,0,.6))}
.cp-gi .acts button{width:36px;height:36px;border:0;border-radius:9px;background:rgba(255,255,255,.92);color:var(--ink);font-size:17px;line-height:1;cursor:pointer}.cp-gi .acts button:disabled{opacity:.35}.cp-gi .acts .del{background:#fff;color:var(--bad)}
.cp-progress{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(86px + env(safe-area-inset-bottom));z-index:80;width:min(420px,92vw);padding:12px 14px;border-radius:14px;background:#2f1c22;color:#fff;font-size:13px;box-shadow:0 12px 30px rgba(0,0,0,.3)}
.cp-progress .bar{height:6px;border-radius:99px;background:rgba(255,255,255,.2);margin-bottom:8px;overflow:hidden}.cp-progress i{display:block;height:100%;width:0;background:#e6c8a1;transition:width .2s}

/* thiết kế */
.cp-design{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start;flex-direction:row-reverse}
.cp-prevcol{order:2;position:sticky;top:16px}.cp-optcol{order:1;display:grid;gap:18px;min-width:0}
.cp-opts{display:grid;gap:10px}
.cp-opts.themes{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.cp-opts.fonts{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}.cp-opts.scales{grid-template-columns:repeat(4,1fr)}.cp-opts.two{grid-template-columns:repeat(2,1fr)}.cp-opts.three{grid-template-columns:repeat(3,1fr)}
.cp-opt{position:relative;display:grid;align-content:center;justify-items:center;gap:4px;min-height:74px;padding:12px 10px;text-align:center;border:1.5px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.cp-opt:hover{border-color:#d3b9a4}.cp-opt.on{border-color:var(--acc);box-shadow:0 0 0 3px rgba(123,36,52,.12);background:#fffaf8}
.cp-opt input{position:absolute;opacity:0;inset:0;cursor:pointer;margin:0}
.cp-opt b{font-size:13.5px}.cp-opt small{font-size:11.5px;color:var(--mute);line-height:1.3}
.cp-opt .sw{display:flex;border-radius:8px;overflow:hidden;border:1px solid var(--line)}.cp-opt .sw i{width:26px;height:26px}
.cp-opt .cp-fs{font-size:18px;line-height:1.25;color:var(--ink);overflow-wrap:anywhere}.cp-opt .aa{font-family:'Playfair Display',serif;line-height:1;color:var(--acc)}
.cp-mini{border-radius:14px;overflow:hidden;border:1px solid var(--c-line);--fs:1}
.cp-mini .mini-hero{position:relative;display:grid;place-items:center;text-align:center;min-height:150px;padding:18px 12px;color:#fff;background:linear-gradient(135deg,rgba(var(--deep-rgb),.9),var(--c-deep));overflow:hidden;isolation:isolate}
.cp-mini .mini-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.cp-mini .mini-hero:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(rgba(var(--deep-rgb),.45),rgba(var(--deep-rgb),.7))}
.cp-mini .lux-hero-kicker{font-size:.8em}.cp-mini .lux-names{font-size:calc(42px*var(--fs)*var(--names-scale));margin:.1em 0}.cp-mini .lux-hero-date{font-size:.85em;letter-spacing:.08em}
.cp-mini .mini-body{padding:16px 16px 18px;text-align:center;background:var(--c-bg)}.cp-mini .mini-body .lux-title{font-size:1.35em;margin:0 0 .3em!important}.cp-mini .mini-body p{font-size:.85em;color:var(--c-mute)}

/* biểu mẫu nội dung */
.cp-content{display:grid;gap:12px}
.cp-acc{background:#fff;border:1px solid var(--line);border-radius:14px;padding:0 clamp(14px,2vw,22px)}
.cp-acc>summary{display:flex;justify-content:space-between;align-items:center;min-height:56px;cursor:pointer;list-style:none;font:600 17px 'Playfair Display',serif;color:var(--acc)}
.cp-acc>summary::-webkit-details-marker{display:none}.cp-acc>summary:after{content:"+";font:300 26px 'DM Sans';color:var(--gold);transition:transform .2s}.cp-acc[open]>summary:after{transform:rotate(45deg)}
.cp-acc[open]{padding-bottom:18px}.cp-acc[open]>summary{margin-bottom:6px}
.cp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.cp-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.cp-f{display:grid;gap:6px;align-content:start}.cp-f.full,.cp-grid>.full{grid-column:1/-1}
.cp-f label{font-size:13px;font-weight:600;color:#6c4d47}.cp-f small{font-size:12px;color:var(--mute)}
.cp input[type=text],.cp input[type=url],.cp input[type=tel],.cp input[type=email],.cp input[type=date],.cp input[type=time],.cp input[type=password],.cp input[type=search],.cp input:not([type]),.cp textarea{width:100%;min-height:46px;padding:10px 12px;border:1px solid #e2d3c7;border-radius:10px;background:#fffdfb;color:var(--ink);font:16px 'DM Sans',sans-serif;-webkit-appearance:none;appearance:none}
.cp textarea{min-height:92px;resize:vertical;line-height:1.55}
.cp input:focus,.cp textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(176,141,87,.2)}
.cp-check{display:flex;align-items:center;gap:10px;min-height:44px;font-size:14px;cursor:pointer}.cp-check input{width:20px;height:20px;accent-color:var(--acc)}
.cp-rows{display:grid;gap:12px;margin-bottom:12px}
.cp-rowed{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:8px;padding:12px;border:1px solid #efe4da;border-radius:12px;background:#fffaf6}
.cp-rowed .g{display:grid;grid-template-columns:110px minmax(0,1fr);gap:8px}.cp-rowed .g.one{grid-template-columns:1fr}.cp-rowed .g .wide{grid-column:1/-1}
.cp-rowed .g input:nth-child(3),.cp-rowed .g input:nth-child(4){grid-column:auto}
.cp-x{width:44px;height:44px;border:1px solid #efc9c4;border-radius:10px;background:#fff;color:var(--bad);font-size:16px;cursor:pointer}
.cp-savebar{position:sticky;bottom:0;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:18px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 -6px 24px rgba(60,30,20,.1)}
.cp-dirty{font-size:13px;color:var(--mute)}.cp-dirty.on{color:var(--bad);font-weight:600}

/* khách mời */
.cp-filter{display:grid;gap:10px;margin-bottom:12px}
.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}
.chip{flex:none;min-height:40px;padding:0 14px;border:1px solid var(--line);border-radius:99px;background:#fff;color:#6c4d47;font:500 13.5px 'DM Sans';cursor:pointer}.chip b{margin-left:4px;color:var(--acc)}.chip.on{background:var(--acc);border-color:var(--acc);color:#fff}.chip.on b{color:#fff}
.cp-guests{display:grid;gap:10px}
.cp-g{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px;border:1px solid #efe4da;border-radius:12px;background:#fffdfb}
.cp-g .av{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#f3e4d8;color:var(--acc);font:600 18px 'Playfair Display'}
.cp-g .nm{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.cp-g small{display:block;color:var(--mute);margin-top:2px}
.cp-g .wish{margin:6px 0 0;font-size:13px;color:#5b4a4d;overflow-wrap:anywhere}
.st{display:inline-block;padding:3px 10px;border-radius:99px;font-size:11.5px;font-weight:600}.st.yes{background:#e6f3ea;color:var(--ok)}.st.no{background:#fbe9e6;color:var(--bad)}.st.wait{background:#f3ece5;color:#8a7569}
.cp-g .ac{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;max-width:360px}

/* điều hướng dưới (điện thoại, máy tính bảng) */
.cp-bottom{display:none}

/* ===== Máy tính bảng (<= 1024px): sidebar thu gọn, 2 cột ===== */
@media(max-width:1024px){
 .cp{grid-template-columns:76px minmax(0,1fr)}
 .cp-side{padding:16px 8px;align-items:center}.cp-brand small,.cp-who,.cp-nav span,.cp-side-foot .cp-btn.light{display:none}.cp-brand b{font-size:0}.cp-brand b:before{content:"♡";font-size:26px;color:#f1d7b0}
 .cp-nav{justify-content:center;padding:0;width:52px;min-height:52px}
 .cp-side-foot{width:100%}.cp-side-foot .ghost{padding:0;font-size:11px}
 .cp-design{grid-template-columns:1fr}.cp-prevcol{order:0;position:sticky;top:0;z-index:15;margin:-4px -4px 0}
 .cp-ph-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.cp-ph.wide{grid-column:span 3}
 .cp-g{grid-template-columns:44px minmax(0,1fr)}.cp-g .ac{grid-column:1/-1;justify-content:flex-start;max-width:none}
}
/* ===== Điện thoại (<= 760px): thanh điều hướng dưới, 1 cột ===== */
@media(max-width:760px){
 .cp{grid-template-columns:1fr;padding-bottom:calc(64px + env(safe-area-inset-bottom))}
 .cp-side{display:none}
 .cp-view{display:inline-flex;min-height:40px;padding:0 12px;font-size:13px}
 .cp-main{padding:16px 14px 40px}
 .cp-top{margin-bottom:14px}.cp-top h1{font-size:23px}.cp-top p{font-size:13px}
 .cp-bottom{position:fixed;left:0;right:0;bottom:0;z-index:40;display:grid;grid-template-columns:repeat(7,1fr);padding:4px 2px calc(4px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line)}
 .cp-bottom .cp-nav{flex-direction:column;justify-content:center;gap:2px;min-height:54px;padding:4px 0;width:auto;color:#8a7569;font-size:10.5px;border-radius:10px}
 .cp-bottom .cp-nav svg{width:22px;height:22px}.cp-bottom .cp-nav span{display:block}.cp-bottom .cp-nav.on{background:transparent;color:var(--acc)}
 .cp-bottom .cp-nav.on svg{stroke-width:2.2}
 .cp-hero{grid-template-columns:1fr}.cp-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.cp-cols{grid-template-columns:1fr}
 .cp-ph-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.cp-ph.wide{grid-column:span 2}
 .cp-ph .cp-row-btns .cp-btn{flex:1 1 100%}
 .cp-gal{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
 .cp-gi .acts{padding-top:14px;gap:3px}.cp-gi .acts button{width:30px;height:30px;font-size:15px}
 .cp-opts.themes,.cp-opts.fonts{grid-template-columns:repeat(2,minmax(0,1fr))}
 .cp-opts.three{grid-template-columns:1fr}.cp-opts.three .cp-opt{min-height:60px}
 .cp-prevcol{top:0;margin:-14px -14px 0}.cp-prevcard{border-radius:0;padding:8px 12px 10px;border-width:0 0 1px}.cp-prevcard .cp-card-h{margin-bottom:6px}.cp-prevcard .cp-card-h h2{font-size:15px}
 .cp-mini{border-radius:10px}.cp-mini .mini-hero{min-height:96px;padding:10px}.cp-mini .lux-names{font-size:calc(30px*var(--fs)*var(--names-scale))}.cp-mini .lux-hero-kicker,.cp-mini .lux-hero-date{font-size:.7em}.cp-mini .mini-body{padding:8px 12px}.cp-mini .mini-body .lux-title{font-size:1.05em}.cp-mini .mini-body p{font-size:.75em}
 .cp-grid,.cp-grid.three{grid-template-columns:1fr}
 .cp-rowed .g{grid-template-columns:96px minmax(0,1fr)}
 .cp-savebar{bottom:calc(60px + env(safe-area-inset-bottom));margin-inline:-4px}
 .cp-g .ac .cp-btn{flex:1 1 calc(50% - 6px)}
 .cp-progress{bottom:calc(140px + env(safe-area-inset-bottom))}
}
@media(max-width:380px){.cp-bottom .cp-nav{font-size:9px}.cp-stats b{font-size:26px}.cp-gal{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.cp *{transition:none!important}}

/* ===== Cải thiện dùng chung trên điện thoại / máy tính bảng (cả trang quản trị tổng) ===== */
.toast{left:50%;right:auto;transform:translateX(-50%);max-width:min(92vw,520px);text-align:center;bottom:max(20px,env(safe-area-inset-bottom));z-index:200}
body:has(.cp) .toast{bottom:calc(84px + env(safe-area-inset-bottom))}
.modal-back{z-index:120}
.modal{-webkit-overflow-scrolling:touch}
.admin-table{width:100%}
.modal .admin-table,.panel .admin-table{display:block;overflow-x:auto;white-space:nowrap}
.close,.small-btn,.btn,.nav-btn{min-height:40px}
input,textarea,select{font-size:16px}
@media(max-width:640px){
 .modal-back{align-items:end;padding:0}
 .modal{width:100%;max-height:92vh;max-height:92dvh;border-radius:20px 20px 0 0;padding:20px 16px calc(20px + env(safe-area-inset-bottom))}
 .guest-actions .small-btn,.card-actions .small-btn{min-height:40px}
 .stats{grid-template-columns:repeat(2,1fr)}
 .panel{padding:16px}
}
@media(min-width:951px) and (max-width:1100px){.couple-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stats{grid-template-columns:repeat(2,1fr)}}

/* ===== Danh sách phản hồi ===== */
.cp-rs-sum{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.cp-rs-sum button{display:grid;gap:2px;justify-items:start;text-align:left;padding:16px 18px;border:2px solid transparent;border-radius:14px;background:#fff;box-shadow:0 6px 18px rgba(80,40,30,.06);font:inherit;color:var(--ink);cursor:pointer;min-height:96px}
.cp-rs-sum b{font:600 34px/1 'Playfair Display',serif}.cp-rs-sum span{font-weight:600;font-size:14px}.cp-rs-sum small{font-size:12.5px;color:var(--mute)}
.cp-rs-sum .yes b{color:var(--ok)}.cp-rs-sum .no b{color:var(--bad)}.cp-rs-sum .wait b{color:#8a7569}
.cp-rs-sum .yes.on{border-color:var(--ok);background:#f4fbf6}.cp-rs-sum .no.on{border-color:var(--bad);background:#fff6f4}.cp-rs-sum .wait.on{border-color:#a8968a;background:#faf6f2}
.cp-export{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:2px 0 14px;padding:12px 14px;border:1px dashed #dcc7b6;border-radius:12px;background:#fffaf6;font-size:13.5px;color:#6c4d47}
.cp-tblwrap{overflow-x:auto}
.cp-tbl{width:100%;border-collapse:collapse;font-size:14px}
.cp-tbl th{padding:10px 12px;text-align:left;font-size:12px;letter-spacing:.04em;color:var(--mute);border-bottom:2px solid var(--line);white-space:nowrap}
.cp-tbl td{padding:12px;border-bottom:1px solid #f1e8e0;vertical-align:top}
.cp-tbl td small{display:block;color:var(--mute);margin-top:2px;font-size:12px}
.cp-tbl td.wish{max-width:280px;font:italic 14px/1.5 'Playfair Display',serif;color:#5b4a4d;overflow-wrap:anywhere}
.cp-tbl td a{color:var(--acc);text-decoration:none}
.cp-tbl td.act{text-align:right;white-space:nowrap}
@media(max-width:760px){
 .cp-rs-sum{gap:8px}.cp-rs-sum button{padding:12px;min-height:88px}.cp-rs-sum b{font-size:28px}.cp-rs-sum span{font-size:12.5px}.cp-rs-sum small{font-size:11.5px}
 .cp-export{flex-direction:column;align-items:stretch}.cp-export .cp-row-btns .cp-btn{flex:1 1 auto}
 .cp-tbl,.cp-tbl tbody,.cp-tbl tr,.cp-tbl td{display:block}.cp-tbl thead{display:none}
 .cp-tbl tr{margin-bottom:10px;padding:10px 12px;border:1px solid #efe4da;border-radius:12px;background:#fffdfb}
 .cp-tbl td{display:grid;grid-template-columns:96px minmax(0,1fr);gap:8px;padding:6px 0;border:0}
 .cp-tbl td:before{content:attr(data-l);font-size:12px;color:var(--mute)}
 .cp-tbl td[data-l="#"]{display:none}.cp-tbl td.act{display:block;text-align:left;white-space:normal}.cp-tbl td.act:before{content:none}.cp-tbl td.act .cp-btn{width:100%}
 .cp-tbl td.wish{max-width:none}
 .cp-tbl td:before{font:400 12px 'DM Sans',sans-serif;font-style:normal}
 .cp-tbl td[data-l="Khách mời"]{display:block;padding-bottom:8px;margin-bottom:4px;border-bottom:1px solid #f1e8e0}.cp-tbl td[data-l="Khách mời"]:before{content:none}
 .cp-tbl td .st{justify-self:start}
}

/* V1.6 — nhắc hạn sử dụng */
.cp-expiry{border-radius:12px;padding:11px 14px;font-size:13px;line-height:1.6;margin-bottom:16px;border:1px solid}
.cp-expiry.ok{background:#f1f7f1;border-color:#d6e8d8;color:#3d6b47}
.cp-expiry.warn{background:#fdf3dc;border-color:#f0dca8;color:#7a5a12}
.cp-expiry.danger{background:#fbe9e6;border-color:#efc3bd;color:#9b2f27}
