/* MODULE Album sau cưới + Đồng ý dữ liệu (S7) — tiền tố .al- */
.alp{min-height:100vh;background:var(--ivory);color:var(--text,var(--ink))}
.alp.al-policy{padding:40px 18px 80px}
.al-inapp{min-height:0;background:none}
.al-load{display:grid;place-items:center;min-height:50vh;font:500 26px 'Cormorant Garamond',serif;color:var(--accent,var(--wine));text-align:center;padding:20px}
.al-eyebrow{letter-spacing:.3em;text-transform:uppercase;font-size:11.5px;color:var(--gold);font-weight:600}
.al-mut{color:var(--text-2,var(--muted));font-size:14.5px;margin:6px 0}.al-small{font-size:13px}
.al-err{color:#a02828;font-size:13.5px;min-height:20px;margin:6px 0}
.al-warn{color:#8a5a12;background:#fbf0d8;border-radius:12px;padding:8px 12px;font-size:13.5px}
.al-h2{font:600 34px/1.1 'Cormorant Garamond',serif;color:var(--accent,var(--wine));margin:4px 0 10px}
.al-orn{display:flex;align-items:center;gap:14px;justify-content:center;color:var(--gold);margin:12px 0}.al-orn:before,.al-orn:after{content:"";height:1px;width:56px;background:linear-gradient(90deg,transparent,var(--gold))}.al-orn:after{transform:scaleX(-1)}
.al-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:16px}
.al-link{border:0;background:none;color:var(--gold);text-decoration:underline;cursor:pointer;font:inherit;padding:0}
.al-in{width:100%;box-sizing:border-box;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;font:15px 'Be Vietnam Pro',sans-serif;color:var(--text,var(--ink));margin:6px 0}
.al-in:focus{outline:2px solid var(--gold2);border-color:var(--gold)}
.al-ta{min-height:84px;resize:vertical}
/* nút */
.al-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:999px;border:1px solid var(--accent,var(--wine));background:transparent;color:var(--accent,var(--wine));font:600 14.5px 'Be Vietnam Pro',sans-serif;cursor:pointer;text-decoration:none;transition:.2s;min-height:44px;box-sizing:border-box}
.al-btn.gold{background:var(--accent,var(--wine));color:#fff;box-shadow:0 8px 20px -10px var(--accent,var(--wine))}.al-btn.gold:hover{background:var(--accent-2,var(--wine2))}
.al-btn.wine{background:#8c2230;border-color:#8c2230;color:#fff}
.al-btn.ghost:hover{background:var(--accent,var(--wine));color:#fff}
.al-btn.sm{padding:7px 16px;min-height:36px;font-size:13px}.al-btn.wide{width:100%}
.al-btn[disabled]{opacity:.5;cursor:not-allowed}
label.al-btn input{display:none}
/* ô đồng ý */
.al-ck{display:flex;gap:10px;align-items:flex-start;cursor:pointer;margin:12px 0;font-size:13.5px;line-height:1.5;color:var(--text,var(--ink))}
.al-ck input{width:20px;height:20px;flex:none;margin:2px 0 0;accent-color:var(--accent,var(--wine))}
.al-ck a{color:var(--accent,var(--wine));text-decoration:underline}
/* trạng thái */
.al-st{display:inline-block;padding:3px 12px;border-radius:999px;font-size:12px;font-weight:600;background:#f2e6cd;color:#7a5a1d}
.al-st-sent{background:#e4ecf7;color:#2b4a7a}.al-st-reviewed{background:#e6f1e3;color:#2f6a2a}.al-st-revising{background:#f6e3d3;color:#8a4a12}.al-st-final{background:#6d1f2e;color:#fff}
.al-rd{font-size:12px;color:var(--text-2,var(--muted));margin-left:8px}
.al-pill{display:inline-block;padding:2px 10px;border-radius:999px;font-size:11.5px;font-weight:600}
.al-pill.p-pending{background:#f2e6cd;color:#7a5a1d}.al-pill.p-approved{background:#dcefd8;color:#2f6a2a}.al-pill.p-rejected{background:#f6d9dc;color:#8c2230}
/* cổng / rút lại */
.al-lock{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(900px 500px at 80% -10%,#5a1a28 0,transparent 60%),linear-gradient(160deg,#3b1019,#1d070c)}
.al-inapp .al-lock{min-height:60vh;border-radius:22px}
.al-lockbox{background:var(--surface,var(--paper));border-radius:24px;max-width:460px;width:100%;padding:34px 26px;text-align:center;box-shadow:0 30px 80px -20px rgba(0,0,0,.5);box-sizing:border-box}
.al-lockbox .al-ck{text-align:left}
.al-lockbox .al-foot{margin-top:18px}
/* đầu trang album */
.al-head{text-align:center;padding:46px 18px 18px;max-width:760px;margin:0 auto}
.al-title{font:600 clamp(34px,8vw,56px)/1.05 'Cormorant Garamond',serif;color:var(--accent,var(--wine));margin:6px 0}
.al-couple{font:italic 500 22px 'Cormorant Garamond',serif;color:var(--gold);margin:0 0 6px}
.al-meta{margin:10px 0}
.al-note{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 16px;font-size:14.5px;text-align:left;white-space:pre-line}
.al-prog{height:6px;border-radius:99px;background:#eadfcc;overflow:hidden;margin:14px auto 4px;max-width:360px}.al-prog i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--accent,var(--wine)))}
.al-banner{max-width:760px;margin:10px auto;background:#fbf3df;border:1px solid #ecd9a8;color:#6b4d12;border-radius:14px;padding:12px 16px;font-size:14.5px;text-align:center}
.al-banner.ok{background:#e7f2e3;border-color:#bfdcb7;color:#2f6a2a}
.al-tabs{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;margin:14px auto;padding:0 12px;overflow-x:auto}
.al-tabs button{border:1px solid var(--line);background:#fff;padding:9px 16px;border-radius:999px;cursor:pointer;font:500 13.5px 'Be Vietnam Pro',sans-serif;color:var(--text,var(--ink));min-height:40px}
.al-tabs button.on{background:var(--accent,var(--wine));color:#fff;border-color:var(--accent,var(--wine))}.al-tabs button b{font-weight:600;opacity:.8}
/* lưới ảnh */
.al-grid{columns:2;column-gap:8px;padding:6px 8px 110px;max-width:1280px;margin:0 auto}
.al-grid.studio{padding-bottom:30px}
.al-ph{position:relative;display:block;width:100%;break-inside:avoid;margin:0 0 8px;padding:0;border:0;border-radius:12px;overflow:hidden;background:#efe5d4;cursor:pointer}
.al-ph img{display:block;width:100%;height:auto;object-fit:cover}
.al-ph.s-approved{outline:3px solid #5f9a55;outline-offset:-3px}.al-ph.s-rejected{outline:3px solid #b2394a;outline-offset:-3px}
.al-badge{position:absolute;right:8px;top:8px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:15px;color:#fff}
.al-badge.b-approved{background:#4f8a45}.al-badge.b-rejected{background:#b2394a}.al-badge.b-pending{display:none}
.al-ver{position:absolute;left:8px;top:8px;background:var(--gold);color:#fff;font-size:11px;font-weight:700;padding:2px 9px;border-radius:99px}
.al-ver.in{position:static;display:inline-block}
.al-has{position:absolute;left:8px;bottom:8px;font-size:14px;background:#fff;border-radius:99px;padding:0 6px}
.al-empty{text-align:center;color:var(--text-2,var(--muted));padding:40px 16px;column-span:all}
.al-bar{position:fixed;left:0;right:0;bottom:0;z-index:40;background:rgba(255,253,249,.96);backdrop-filter:blur(8px);border-top:1px solid var(--line);padding:10px 14px calc(10px + env(safe-area-inset-bottom));display:flex;gap:12px;align-items:center;justify-content:space-between;font-size:13.5px}
.al-bar .al-btn{flex:none}
.al-foot{text-align:center;font-size:12.5px;color:var(--text-2,var(--muted));padding:16px 12px 110px}.al-foot a{color:var(--text-2,var(--muted))}
/* lightbox */
.al-lock-scroll{overflow:hidden}
.al-lb{position:fixed;inset:0;z-index:300;background:#14080b;display:flex;flex-direction:column}
.al-lb-x{position:absolute;right:10px;top:8px;z-index:3;width:44px;height:44px;border:0;border-radius:50%;background:rgba(0,0,0,.45);color:#fff;font-size:28px;cursor:pointer;line-height:1}
.al-lb-stage{flex:1;min-height:0;display:grid;place-items:center;position:relative;padding:8px}
.al-lb-stage img{max-width:100%;max-height:100%;object-fit:contain;border-radius:6px}
.al-lb-n{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:64px;border:0;background:rgba(0,0,0,.35);color:#fff;font-size:34px;cursor:pointer;z-index:2}.al-lb-n.prev{left:0;border-radius:0 12px 12px 0}.al-lb-n.next{right:0;border-radius:12px 0 0 12px}
.al-lb-info{background:var(--surface,var(--paper));padding:12px 14px calc(12px + env(safe-area-inset-bottom));max-height:46vh;overflow:auto}
.al-lb-top{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px;color:var(--text-2,var(--muted))}
.al-dl{margin-left:auto;color:var(--accent,var(--wine));font-weight:600;text-decoration:none}
.al-acts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0 4px}
.al-prev{font-size:13.5px;color:#6b4d12;background:#fbf3df;border-radius:10px;padding:8px 12px;margin:8px 0}
.al-save{font-size:12.5px;color:var(--text-2,var(--muted));min-height:16px}
/* modal + toast */
.al-modal{position:fixed;inset:0;background:rgba(30,10,15,.6);display:grid;place-items:center;z-index:350;padding:16px;backdrop-filter:blur(4px)}
.al-mbox{background:var(--surface,var(--paper));border-radius:22px;max-width:520px;width:100%;max-height:92vh;overflow:auto;padding:28px 24px;position:relative;box-sizing:border-box;box-shadow:0 30px 80px -20px rgba(0,0,0,.5)}
.al-x{position:absolute;right:14px;top:10px;border:0;background:none;font-size:28px;line-height:1;cursor:pointer;color:var(--text-2,var(--muted))}
.al-toast{position:fixed;left:50%;bottom:90px;transform:translate(-50%,20px);opacity:0;background:#2a1f1c;color:#fff;padding:12px 22px;border-radius:999px;font-size:14px;z-index:400;transition:.3s;max-width:90vw;text-align:center}.al-toast.in{opacity:1;transform:translate(-50%,0)}.al-toast.bad{background:#8c2230}
/* chính sách */
.al-pol{max-width:760px;margin:0 auto;background:var(--surface,var(--paper));border:1px solid var(--line);border-radius:22px;padding:34px 28px;box-shadow:var(--shadow)}
.al-pol h1{font:600 clamp(32px,7vw,46px)/1.1 'Cormorant Garamond',serif;color:var(--accent,var(--wine));margin:6px 0}
.al-pol h2{font:600 24px 'Cormorant Garamond',serif;color:var(--accent,var(--wine));margin:26px 0 6px;display:flex;gap:10px;align-items:center}
.al-pol h2 span{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--gold);color:#fff;font:600 14px 'Be Vietnam Pro',sans-serif;flex:none}
.al-pol p,.al-pol li{font-size:15px;line-height:1.7}.al-pol .orn{text-align:center;color:var(--gold)}.al-fine{font-size:12.5px!important;margin-top:28px}
/* trong ứng dụng: studio / cặp đôi / admin */
.al-ph-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap;margin-bottom:18px}
.al-ph-head h1{font-size:38px;color:var(--accent,var(--wine));margin:0;line-height:1.1}.al-ph-head p{color:var(--text-2,var(--muted));margin:4px 0 0}
.al-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.al-card{background:var(--surface,var(--paper));border:1px solid var(--line);border-radius:18px;overflow:hidden;cursor:pointer;box-shadow:0 8px 28px -22px rgba(80,50,30,.5);transition:.2s}.al-card:hover{transform:translateY(-2px)}
.al-cv{aspect-ratio:4/3;display:grid;place-items:center;font-size:42px;overflow:hidden}.al-cv img{width:100%;height:100%;object-fit:cover}
.al-cb{padding:14px 16px 16px}.al-cb h3{margin:0 0 2px;font:600 22px 'Cormorant Garamond',serif;color:var(--accent,var(--wine))}
.al-ds{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.al-ds-r{display:flex;gap:8px;flex-wrap:wrap}
.al-drop{border:2px dashed var(--gold2);border-radius:18px;padding:22px;text-align:center;background:#fffaf0;margin-bottom:16px;transition:.2s}.al-drop.on{background:#f8ecce;border-color:var(--gold)}
.al-up{font-size:13px;color:var(--accent,var(--wine));margin-top:8px;min-height:18px}
.al-grid.studio{columns:2;padding:0}
.al-grid.studio .al-ph{cursor:default}
.al-pa{display:flex;gap:6px;flex-wrap:wrap;padding:8px;background:var(--surface,var(--paper))}
.al-pn{font-size:12.5px;padding:6px 10px;background:#fbf3df;color:#6b4d12}
.al-grid.studio .al-pill{position:absolute;right:8px;top:8px}
.al-two{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.al-sec h3{font-size:24px;color:var(--accent,var(--wine));margin:0 0 6px}
.al-linkrow{display:flex;gap:8px;align-items:center}.al-linkrow .al-in{flex:1;font-size:13px}
.al-qrwrap{display:grid;place-items:center;margin:8px 0}
.al-tl{border-left:2px solid var(--line);margin-left:6px;padding-left:16px}.al-tli{position:relative;margin-bottom:14px}.al-tli:before{content:"";position:absolute;left:-23px;top:6px;width:10px;height:10px;border-radius:50%;background:var(--gold)}
.al-tli time{display:block;font-size:12px;color:var(--text-2,var(--muted))}.al-tli p{margin:2px 0 0;font-size:14px}
.al-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:16px}
.al-ver-b{font-size:26px!important;font-family:'Be Vietnam Pro',sans-serif!important}
.al-kpis .kpi b{font-family:'Be Vietnam Pro',sans-serif}
.al-filter{display:grid;grid-template-columns:2fr 2fr 1fr;gap:10px;margin-bottom:12px}
.al-tbl td,.al-tbl th{vertical-align:top;white-space:nowrap}.al-tbl td small{color:var(--text-2,var(--muted));white-space:normal}
.al-pager{display:flex;gap:14px;align-items:center;justify-content:center;margin:14px 0;font-size:14px;color:var(--text-2,var(--muted))}
@media(min-width:700px){.al-grid{columns:3;column-gap:12px;padding:6px 14px 110px}.al-ph{margin-bottom:12px}.al-grid.studio{columns:3;padding:0}.al-lb{flex-direction:row}.al-lb-stage{flex:1}.al-lb-info{width:340px;max-height:none;flex:none}}
@media(min-width:1100px){.al-grid{columns:4}}
@media(max-width:699px){.al-two{grid-template-columns:1fr}.al-filter{grid-template-columns:1fr}.al-kpis{grid-template-columns:1fr 1fr 1fr}.al-kpis .kpi b{font-size:26px!important}.al-ph-head h1{font-size:30px}.al-bar{flex-direction:row}.al-bar div{font-size:12.5px}.al-pol{padding:26px 18px}.al-btn{padding:11px 18px}}
.al-title,.al-h2,.al-couple,.al-pol h1,.al-pol h2,.al-ph-head h1,.al-cb h3,.al-sec h3,.al-load{font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1}
.al-why{font-size:13px;color:var(--text-2,var(--muted));background:#fbf3df;border-radius:12px;padding:10px 12px;margin:12px 0 0;text-align:left;line-height:1.5}
.al-sum{background:#fbf3df;border:1px solid #ecd9a8;border-radius:18px;padding:18px 20px;margin:18px 0}.al-sum h2{margin:0 0 10px!important}.al-sum dl{margin:0}.al-sum dt{font-weight:600;color:var(--accent,var(--wine));margin-top:10px}.al-sum dd{margin:2px 0 0;font-size:15px;line-height:1.6}
.al-full{margin-top:30px;padding-top:6px;border-top:1px solid var(--line)}
/* mobile-first: chữ nhập ≥16px (tránh iOS zoom), 1 cột, chạm ≥44px */
.al-in,.al-ta{font-size:16px}.al-ck{font-size:15px}.al-mut{font-size:15px}.al-why{font-size:14px}
@media(max-width:480px){.al-btn{min-height:44px}.al-btn.sm{min-height:44px}.al-head{padding-top:30px}.al-lockbox{padding:28px 18px}}
.al-qs .al-lb-stage{position:relative;height:42vh;background:#14080b;border-radius:14px;margin-bottom:10px}.al-qs .al-lb-info{background:none;padding:0;max-height:none;width:auto}.al-fs{margin-left:auto;font-size:14px;min-height:44px}.al-qs .al-lb-n{height:56px}
