:root{
  --ink:#171816;--ink-2:#252823;--muted:#797b74;--cream:#f4f0eb;--paper:rgba(255,255,255,.78);
  --white:#fff;--line:rgba(37,40,35,.11);--champagne:#b99b83;--champagne-2:#d5c5b6;
  --sage:#7c8b79;--green:#5f806b;--red:#a86d70;--shadow:0 24px 80px rgba(28,25,22,.10);
  --radius:28px;--ease:cubic-bezier(.2,.8,.2,1)
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid rgba(185,155,131,.35);outline-offset:2px}svg{width:1.15em;height:1.15em;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}[hidden]{display:none!important}.muted{color:var(--muted)}

/* GUEST */
.guest-body{background:#f4f0eb}.guest-page{min-height:100vh;position:relative;overflow:hidden;display:grid;place-items:center;padding:56px 18px 42px;background:linear-gradient(145deg,#f7f4ef 0%,#eee9e2 100%)}.grain{position:absolute;inset:0;pointer-events:none;opacity:.16;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.20'/%3E%3C/svg%3E")}.mesh{position:absolute;border-radius:999px;filter:blur(4px);pointer-events:none}.mesh-a{width:520px;height:520px;top:-260px;right:-160px;background:radial-gradient(circle,rgba(214,192,174,.48),rgba(214,192,174,0) 67%);animation:floatMesh 12s ease-in-out infinite alternate}.mesh-b{width:500px;height:500px;left:-280px;bottom:-230px;background:radial-gradient(circle,rgba(170,185,164,.25),rgba(170,185,164,0) 70%);animation:floatMesh 14s ease-in-out 1s infinite alternate-reverse}@keyframes floatMesh{to{transform:translate3d(30px,24px,0) scale(1.06)}}.sparkles i{position:absolute;left:var(--x);top:var(--y);width:4px;height:4px;border-radius:50%;background:rgba(159,128,103,.45);animation:twinkle 3.2s var(--d) ease-in-out infinite}@keyframes twinkle{0%,100%{opacity:.1;transform:scale(.6)}50%{opacity:.8;transform:scale(1.5)}}.guest-shell{width:min(100%,670px);text-align:center;position:relative;z-index:2}.reveal{animation:reveal .7s var(--ease) both}.delay-1{animation-delay:.08s}.delay-2{animation-delay:.14s}@keyframes reveal{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.event-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid rgba(37,40,35,.09);background:rgba(255,255,255,.54);backdrop-filter:blur(10px);border-radius:999px;font-size:9px;font-weight:800;letter-spacing:.16em;color:#62655f}.event-chip span,.live-pill i,.dash-kicker i{width:6px;height:6px;border-radius:50%;background:#73917b;box-shadow:0 0 0 5px rgba(115,145,123,.10)}.monogram,.brand-mark,.login-mark{font-family:Georgia,"Times New Roman",serif;letter-spacing:.06em}.monogram{font-size:34px;margin:23px 0 6px}.eyebrow{letter-spacing:.20em;font-size:10px;font-weight:800;color:#92765f}.guest-shell h1{margin:19px 0 13px;font-family:Georgia,"Times New Roman",serif;font-size:clamp(44px,8.5vw,72px);line-height:.98;font-weight:500;letter-spacing:-.045em}.guest-shell h1 em{font-weight:400;color:#8d7768}.lead{max-width:520px;margin:0 auto 30px;line-height:1.7;color:#73756f;font-size:15px}.upload-card,.success-card{background:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.80);border-radius:32px;padding:24px;box-shadow:0 28px 90px rgba(54,46,39,.10),inset 0 0 0 1px rgba(37,40,35,.04);text-align:left;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}.card-topline{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:22px}.card-topline>div{display:flex;align-items:center;gap:10px}.card-topline strong{font-size:13px}.step-label{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:#1d1f1c;color:#fff;font-size:9px;font-weight:800}.live-pill{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:999px;padding:7px 10px;font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:#70736c}.live-pill i{width:5px;height:5px;box-shadow:none;animation:pulse 1.8s infinite}@keyframes pulse{50%{opacity:.35;transform:scale(.8)}}.field-label{display:flex;justify-content:space-between;font-weight:750;font-size:12px;margin:0 0 8px}.field-label span{font-weight:600;color:#9a9c96;font-size:10px}.field-shell{height:54px;display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:rgba(255,255,255,.72);border-radius:16px;padding:0 14px;transition:.2s}.field-shell:focus-within{border-color:rgba(185,155,131,.8);box-shadow:0 0 0 5px rgba(185,155,131,.10);background:#fff}.field-shell svg{color:#8b8e87;flex:0 0 auto}.text-input{width:100%;height:100%;border:0;background:transparent;outline:0;font-size:16px;color:var(--ink)}.text-input::placeholder{color:#b0b2ad}.section-divider{display:flex;align-items:center;gap:10px;margin:22px 0 12px}.section-divider span{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:#ede7e0;color:#806e60;font-size:9px;font-weight:800}.section-divider b{font-size:13px}.drop-zone{width:100%;min-height:184px;border:1.5px dashed rgba(132,114,98,.33);border-radius:22px;background:linear-gradient(145deg,rgba(251,248,244,.80),rgba(245,239,233,.70));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:var(--ink);transition:.25s var(--ease);position:relative;overflow:hidden}.drop-zone::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 30%,rgba(185,155,131,.13),transparent 45%);opacity:0;transition:.3s}.drop-zone:hover,.drop-zone.is-dragging{transform:translateY(-2px);border-color:rgba(153,122,97,.65);background:#faf6f1}.drop-zone:hover::before,.drop-zone.is-dragging::before{opacity:1}.drop-zone.has-files{border-style:solid;border-color:rgba(95,128,107,.28);background:rgba(244,249,245,.72)}.upload-orbit{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#1d1f1c;color:#fff;margin-bottom:5px;position:relative;z-index:1;box-shadow:0 10px 30px rgba(29,31,28,.18)}.upload-orbit::after{content:"";position:absolute;inset:-7px;border:1px solid rgba(29,31,28,.10);border-radius:50%;animation:orbit 2.8s linear infinite}@keyframes orbit{to{transform:rotate(360deg)}}.drop-zone strong{font-size:14px;position:relative;z-index:1}.drop-zone>span:not(.upload-orbit){color:#8b8d87;font-size:12px;position:relative;z-index:1}.drop-zone small{color:#a1a39e;font-size:9px;letter-spacing:.04em;position:relative;z-index:1}.shake{animation:shake .45s}@keyframes shake{20%,60%{transform:translateX(-7px)}40%,80%{transform:translateX(7px)}}.preview-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0 16px}.preview-strip:empty{display:none}.preview-item{aspect-ratio:1;position:relative;border-radius:14px;overflow:hidden;background:#e7e3de}.preview-item img{width:100%;height:100%;object-fit:cover;display:block}.preview-item::after{content:"";position:absolute;inset:50% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.58));pointer-events:none}.preview-item button{position:absolute;z-index:2;top:6px;right:6px;width:25px;height:25px;border:0;border-radius:50%;background:rgba(20,20,20,.66);color:#fff;font-size:16px;line-height:1}.preview-item span{position:absolute;z-index:2;bottom:6px;left:7px;color:#fff;font-size:9px;font-weight:700}.preview-more{aspect-ratio:1;border:1px solid var(--line);border-radius:14px;background:#f1ece6;display:flex;flex-direction:column;align-items:center;justify-content:center}.preview-more strong{font:500 25px Georgia,serif}.preview-more span{font-size:9px;color:var(--muted)}.progress-wrap{margin:5px 0 16px}.progress-head{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--muted);margin-bottom:7px}.progress-head b{color:#6e5c4e}.progress-track{height:8px;background:#e9e3dc;border-radius:999px;overflow:hidden}.progress-bar{width:0;height:100%;border-radius:999px;background:linear-gradient(90deg,#8b755f,#c4a98e);transition:width .18s;position:relative}.progress-bar::after{content:"";position:absolute;top:0;bottom:0;width:70px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);animation:shine 1.2s linear infinite}@keyframes shine{from{left:-80px}to{left:110%}}.primary-button{width:100%;min-height:55px;border:0;border-radius:16px;background:#1d1f1c;color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;gap:9px;transition:.22s var(--ease);box-shadow:0 10px 28px rgba(29,31,28,.15)}.primary-button svg{transition:.2s}.primary-button:hover{transform:translateY(-2px);box-shadow:0 15px 32px rgba(29,31,28,.20)}.primary-button:hover svg{transform:translateX(3px)}.primary-button:disabled{opacity:.65;cursor:wait;transform:none}.primary-button.is-loading span::after{content:" …"}.form-error{margin:12px 0 0;border:1px solid rgba(168,109,112,.20);background:rgba(168,109,112,.08);padding:10px 12px;border-radius:11px;color:#975c60;font-size:12px}.success-card{text-align:center;padding:43px 28px}.success-rings{width:76px;height:76px;position:relative;margin:0 auto 20px}.success-rings span{position:absolute;inset:0;border:1px solid rgba(95,128,107,.28);border-radius:50%;animation:successRing 2s infinite}.success-rings b{position:absolute;inset:9px;border-radius:50%;display:grid;place-items:center;background:#e4eee6;color:var(--green);font-size:27px}@keyframes successRing{50%{transform:scale(1.16);opacity:.25}}.success-card h2{font:500 38px/1.03 Georgia,serif;margin:12px 0 12px}.success-card>p:not(.eyebrow){color:var(--muted);line-height:1.6;margin:0 auto 22px;max-width:430px}.secondary-button{min-height:47px;border:1px solid var(--line);border-radius:14px;background:#fff;padding:0 18px;font-weight:750;color:var(--ink);transition:.2s}.secondary-button:hover{transform:translateY(-1px);border-color:#c5b3a4}.success-in{animation:successIn .45s var(--ease) both}@keyframes successIn{from{opacity:0;transform:scale(.97) translateY(10px)}to{opacity:1;transform:none}}.trust-row{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;margin:18px auto 0;color:#888a84;font-size:10px}.trust-row span{display:flex;align-items:center;gap:5px}.trust-row svg{width:13px;height:13px}

/* LOGIN */
.admin-login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:#111310;position:relative;overflow:hidden;color:#f7f5f1}.admin-login-page::before{content:"";position:absolute;width:650px;height:650px;border-radius:50%;background:radial-gradient(circle,rgba(185,155,131,.18),transparent 65%);top:-350px;right:-220px}.login-card{width:min(100%,440px);position:relative;background:rgba(31,33,29,.72);border:1px solid rgba(255,255,255,.08);border-radius:30px;padding:34px;box-shadow:0 30px 100px rgba(0,0,0,.26);backdrop-filter:blur(18px)}.login-mark{font-size:30px;margin-bottom:25px}.login-card h1{font:500 40px/1 Georgia,serif;margin:9px 0}.login-card .muted{color:#9b9e97;line-height:1.6}.login-card form{margin-top:27px}.login-card label{display:block;font-size:11px;font-weight:750;margin:0 0 7px;color:#d5d6d1}.login-card .text-input{height:52px;border:1px solid rgba(255,255,255,.10);border-radius:14px;background:rgba(255,255,255,.05);padding:0 14px;color:#fff;margin-bottom:15px;outline:0}.login-card .text-input:focus{border-color:rgba(185,155,131,.7);box-shadow:0 0 0 4px rgba(185,155,131,.10)}.login-card .primary-button{background:#f3eee8;color:#1a1b19}.demo-box{margin-top:16px;border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.035);border-radius:12px;padding:11px 12px;font-size:10px;color:#8f928b}.login-error{color:#e6a1a4;font-size:12px}

/* ADMIN */
.admin-body{background:#eef0ec}.dashboard-page{min-height:100vh;display:grid;grid-template-columns:252px 1fr;background:#eef0ec}.sidebar{background:#111310;color:#f6f5f2;padding:26px 18px;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh;position:sticky;top:0}.side-top{display:flex;align-items:center;gap:12px;padding:0 8px 27px;border-bottom:1px solid rgba(255,255,255,.07)}.brand-mark{width:43px;height:43px;border-radius:14px;display:grid;place-items:center;background:#f1e9e0;color:#262721;font-size:16px;letter-spacing:0}.side-top strong,.side-top span{display:block}.side-top strong{font-size:12px}.side-top span{margin-top:3px;font-size:9px;color:#7e8279;letter-spacing:.08em;text-transform:uppercase}.sidebar nav{display:grid;gap:7px;margin-top:21px}.sidebar nav button{width:100%;min-height:46px;padding:0 11px;border:1px solid transparent;border-radius:13px;background:transparent;color:#9da097;display:grid;grid-template-columns:27px 1fr auto;align-items:center;text-align:left;transition:.2s}.sidebar nav button b{font-size:11px}.sidebar nav button i{font-size:9px;font-style:normal;padding:4px 7px;border-radius:999px;background:rgba(255,255,255,.06)}.nav-icon{font-size:16px}.sidebar nav button:hover,.sidebar nav .nav-active,.sidebar nav .filter-active{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.06);color:#fff}.side-bottom{display:grid;gap:13px}.storage-card{border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.035);border-radius:15px;padding:12px}.storage-card span,.storage-card strong{display:block}.storage-card span{font-size:9px;color:#777b73}.storage-card strong{font-size:11px;margin:4px 0 9px;color:#d9dbd5}.storage-card div{height:3px;border-radius:999px;background:rgba(255,255,255,.07);overflow:hidden}.storage-card div i{display:block;width:62%;height:100%;background:#879d87;border-radius:999px}.logout{min-height:42px;padding:0 11px;border-radius:12px;color:#8f938a;display:flex;align-items:center;justify-content:space-between;text-decoration:none;font-size:11px}.logout:hover{background:rgba(255,255,255,.05);color:#fff}.dashboard-content{padding:36px;min-width:0}.dash-header{display:flex;justify-content:space-between;align-items:flex-end;gap:22px;margin-bottom:25px}.dash-kicker{display:flex;align-items:center;gap:9px;font-size:9px;font-weight:800;letter-spacing:.14em;color:#7d8179}.dash-kicker i{width:5px;height:5px;box-shadow:none}.dash-header h1{font:500 42px/.98 Georgia,serif;letter-spacing:-.035em;margin:10px 0 8px}.dash-header .muted{margin:0;font-size:12px}.download-button{min-height:46px;border:0;border-radius:13px;background:#171916;color:#fff;padding:0 16px;font-size:11px;font-weight:750;display:flex;align-items:center;gap:9px;box-shadow:0 10px 30px rgba(23,25,22,.12);transition:.2s}.download-button:hover{transform:translateY(-2px)}.download-button span{font-size:17px}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.stat-card{min-width:0;background:rgba(255,255,255,.75);border:1px solid rgba(33,37,31,.08);border-radius:18px;padding:16px;display:flex;align-items:center;gap:13px;box-shadow:0 10px 35px rgba(40,43,37,.035)}.stat-icon{width:39px;height:39px;flex:0 0 auto;border-radius:12px;display:grid;place-items:center;background:#eeebe6;color:#6f6a63;font-size:16px}.stat-card span,.stat-card strong,.stat-card small{display:block}.stat-card span{font-size:9px;color:#858980;text-transform:uppercase;letter-spacing:.07em}.stat-card strong{font:500 27px Georgia,serif;margin:1px 0}.stat-card small{font-size:9px;color:#aaaDa6}.gallery-panel{background:rgba(255,255,255,.55);border:1px solid rgba(33,37,31,.08);border-radius:22px;padding:18px;box-shadow:0 22px 60px rgba(40,43,37,.04)}.gallery-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:15px}.gallery-heading h2{font:500 21px Georgia,serif;margin:0 0 3px}.gallery-heading p{margin:0;font-size:10px}.view-toggle{display:flex;border:1px solid var(--line);padding:3px;border-radius:10px;background:#f1f2ef}.view-toggle button{width:31px;height:29px;border:0;border-radius:7px;background:transparent;color:#8d9089}.view-toggle button.active{background:#fff;color:#222420;box-shadow:0 2px 8px rgba(0,0,0,.05)}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.search-shell{width:min(100%,360px);height:43px;border:1px solid var(--line);border-radius:12px;background:#fff;display:flex;align-items:center;gap:8px;padding:0 12px;color:#8f928b}.search-shell input{border:0;outline:0;width:100%;background:transparent;font-size:11px;color:var(--ink)}.filter-pills{display:flex;gap:6px;flex-wrap:wrap}.filter-pills button{border:1px solid var(--line);background:#f7f8f5;border-radius:10px;padding:8px 11px;font-size:10px;font-weight:700;color:#7d8179;transition:.18s}.filter-pills button:hover{background:#fff}.filter-pills .filter-active{background:#1b1d1a;color:#fff;border-color:#1b1d1a}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.photo-card{min-width:0;background:#fff;border:1px solid rgba(33,37,31,.08);border-radius:16px;overflow:hidden;transition:.23s var(--ease);box-shadow:0 8px 25px rgba(36,39,34,.03)}.photo-card:hover{transform:translateY(-3px);box-shadow:0 15px 34px rgba(36,39,34,.07)}.photo-card.is-working{opacity:.6;pointer-events:none}.photo-image{width:100%;aspect-ratio:4/3;border:0;padding:0;position:relative;background:#dedfdc;display:block;overflow:hidden}.photo-image img{width:100%;height:100%;object-fit:cover;display:block;transition:.45s var(--ease)}.photo-card:hover .photo-image img{transform:scale(1.025)}.photo-image::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,.05),transparent 35%,rgba(0,0,0,.22));opacity:.65}.status{position:absolute;z-index:2;top:9px;left:9px;padding:5px 8px;border-radius:999px;font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#fff;display:flex;align-items:center;gap:5px;backdrop-filter:blur(10px)}.status i{width:4px;height:4px;border-radius:50%;background:currentColor}.status-pending{background:rgba(52,55,49,.76)}.status-selected{background:rgba(74,111,83,.82)}.status-rejected{background:rgba(144,80,83,.82)}.open-photo{position:absolute;z-index:2;right:9px;bottom:9px;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:rgba(255,255,255,.86);color:#242622;font-size:13px;opacity:0;transform:translateY(5px);transition:.2s}.photo-card:hover .open-photo{opacity:1;transform:none}.photo-info{padding:11px;display:flex;justify-content:space-between;gap:8px;align-items:center}.photo-meta{min-width:0}.photo-info strong{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.photo-info span,.photo-info small{display:block;color:#989b94;font-size:8px;margin-top:3px;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quick-actions{display:flex;gap:4px;flex:0 0 auto}.quick-actions button{width:29px;height:29px;border:1px solid var(--line);background:#fafaf8;border-radius:8px;display:grid;place-items:center;color:#747871;font-size:13px;transition:.16s}.quick-actions button:hover{background:#1d1f1c;color:#fff;border-color:#1d1f1c}.compact-view{grid-template-columns:repeat(4,minmax(0,1fr))}.compact-view .photo-info{display:none}.compact-view .photo-image{aspect-ratio:1}.empty-state{padding:60px 20px;text-align:center;color:#92968e}.empty-state span{font-size:30px}.empty-state strong{display:block;color:#555952;margin:8px 0 4px}.empty-state p{margin:0;font-size:11px}.modal-open{overflow:hidden}.modal-backdrop{position:fixed;inset:0;background:rgba(11,12,10,.76);display:grid;place-items:center;padding:20px;z-index:50;opacity:0;transition:.18s;backdrop-filter:blur(8px)}.modal-backdrop.is-open{opacity:1}.photo-modal{width:min(980px,96vw);background:#f8f7f4;border:1px solid rgba(255,255,255,.15);border-radius:22px;overflow:hidden;position:relative;transform:scale(.97) translateY(8px);transition:.22s var(--ease);box-shadow:0 30px 100px rgba(0,0,0,.32)}.modal-backdrop.is-open .photo-modal{transform:none}.modal-image-wrap{position:relative;background:#10110f}.photo-modal img{width:100%;max-height:68vh;object-fit:contain;display:block}.modal-close{position:absolute;top:12px;right:12px;width:39px;height:39px;border:1px solid rgba(255,255,255,.2);border-radius:50%;background:rgba(20,20,20,.56);color:#fff;font-size:20px;backdrop-filter:blur(10px)}.modal-meta{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px}.modal-meta strong,.modal-meta span{display:block}.modal-meta strong{font:500 20px Georgia,serif}.modal-meta span{font-size:9px;color:var(--muted);margin-top:4px}.modal-meta .eyebrow{font-size:8px;margin:0 0 5px}.modal-actions{display:flex;gap:6px;flex-wrap:wrap}.modal-actions button{min-height:37px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:0 11px;font-size:9px;font-weight:750;color:#676b64}.modal-actions button:hover{background:#efefeb}.modal-actions .danger-button{color:#9d5a5d;border-color:rgba(168,109,112,.18);background:#fff8f8}.toast{position:fixed;z-index:100;left:50%;bottom:24px;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#171916;color:#fff;border:1px solid rgba(255,255,255,.08);border-radius:999px;padding:10px 15px;font-size:10px;font-weight:700;box-shadow:0 15px 50px rgba(0,0,0,.18);transition:.22s var(--ease)}.toast.show{opacity:1;transform:translate(-50%,0)}.toast.error{background:#7e4548}

@media(max-width:1100px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.compact-view{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:860px){.dashboard-page{grid-template-columns:1fr}.sidebar{min-height:auto;position:sticky;top:0;z-index:30;flex-direction:row;align-items:center;padding:10px 12px;overflow-x:auto}.side-top{padding:0;border:0;min-width:max-content}.side-top>div:last-child,.side-bottom,.sidebar nav button b,.sidebar nav button i{display:none}.sidebar nav{display:flex;margin:0}.sidebar nav button{width:42px;height:42px;min-height:42px;display:grid;place-items:center;padding:0}.nav-icon{font-size:17px}.dashboard-content{padding:24px 16px}.dash-header{align-items:flex-start;flex-direction:column}.download-button{width:100%;justify-content:center}}
@media(max-width:650px){.guest-page{padding:34px 13px 28px;place-items:start center}.guest-shell h1{font-size:clamp(42px,13vw,58px)}.lead{font-size:13px;padding:0 8px}.upload-card,.success-card{padding:17px;border-radius:24px}.preview-strip{grid-template-columns:repeat(4,1fr)}.trust-row{gap:10px}.trust-row span{font-size:9px}.dashboard-content{padding:20px 12px}.dash-header h1{font-size:37px}.stat-grid{gap:8px}.stat-card{padding:12px;gap:9px}.stat-icon{width:34px;height:34px}.stat-card strong{font-size:23px}.gallery-panel{padding:11px;border-radius:18px}.toolbar{flex-direction:column;align-items:stretch}.search-shell{width:100%}.filter-pills{overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px}.filter-pills button{white-space:nowrap}.photo-grid,.compact-view{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.photo-info{padding:8px}.quick-actions button{width:27px;height:27px}.photo-info small{display:none}.open-photo{opacity:1;transform:none}.modal-meta{align-items:flex-start;flex-direction:column}.modal-actions{width:100%}.modal-actions button{flex:1;justify-content:center}.photo-modal img{max-height:60vh}}
@media(max-width:390px){.preview-strip{grid-template-columns:repeat(3,1fr)}.stat-grid{grid-template-columns:1fr 1fr}.stat-card small{display:none}.photo-grid,.compact-view{grid-template-columns:1fr 1fr}.quick-actions{gap:2px}.quick-actions button{width:25px;height:25px}.photo-info strong{font-size:10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}

/* v3 — refined editorial wedding design */
.guest-page{background:#f7f4ef;place-items:start center;padding:42px 18px 48px;overflow:visible}
.guest-shell{max-width:640px}
.wedding-brand{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;margin:0 auto 20px;max-width:590px}
.wedding-brand .brand-rule{height:1px;background:#d8cec4}
.monogram{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(20px,4vw,27px);letter-spacing:0;font-weight:400;color:#3d3834;white-space:nowrap}
.event-chip{background:transparent;border:0;padding:0;font-size:9px;color:#8b7c70;letter-spacing:.18em}
.event-chip span{width:5px;height:5px;box-shadow:none;background:#aa927e}
.guest-shell>.eyebrow{margin:12px 0 0;color:#9a826d}
.guest-shell h1{font-size:clamp(42px,7.5vw,62px);line-height:1.03;letter-spacing:-.035em;margin:18px 0 15px;color:#2d2926}
.guest-shell h1 em{color:#8b7464}
.lead{font-size:14px;line-height:1.75;max-width:500px;color:#77706a;margin-bottom:27px}
.upload-card,.success-card{background:#fff;border:1px solid #e7dfd7;border-radius:20px;padding:25px;box-shadow:0 12px 36px rgba(48,39,32,.055);backdrop-filter:none;-webkit-backdrop-filter:none}
.card-topline{border-bottom:1px solid #eee8e2;padding-bottom:17px;margin-bottom:19px}.step-label,.section-divider span{background:#ede6df;color:#68594e}.live-pill{background:#f8f6f3;border-color:#e8e1da;text-transform:none;letter-spacing:0;font-size:10px}.field-shell{border-radius:11px;background:#fbfaf8}.drop-zone{border-radius:14px;background:#fbfaf8;min-height:165px}.primary-button{border-radius:11px;min-height:52px}.trust-row{margin-top:16px}.trust-row span{color:#8c847d}.success-card{text-align:center}

/* Admin — quieter professional product UI */
.admin-body{background:#f5f4f1}.sidebar{background:#20211f}.dashboard-content{background:#f5f4f1}.gallery-panel,.stat-card{box-shadow:none;background:#fff;border-color:#e4e3de}.gallery-panel{border-radius:16px}.stat-card{border-radius:14px}.photo-card{border-radius:12px;box-shadow:none}.photo-card:hover{box-shadow:0 8px 24px rgba(30,32,28,.07)}.dash-header h1{letter-spacing:-.025em}.download-button,.filter-pills .filter-active{background:#272824}.search-shell{border-radius:10px}.filter-pills button{border-radius:9px}.view-toggle{border-radius:9px}
@media(max-width:650px){.guest-page{padding-top:28px}.wedding-brand{gap:10px;margin-bottom:17px}.monogram{font-size:19px;white-space:normal;line-height:1.25}.upload-card,.success-card{padding:17px;border-radius:17px}.guest-shell h1{font-size:clamp(39px,12vw,52px)}}

/* v5 — refined memories uploader */
.guest-page{background:radial-gradient(circle at 15% 10%,rgba(193,174,153,.14),transparent 32%),radial-gradient(circle at 86% 22%,rgba(128,144,122,.10),transparent 28%),linear-gradient(180deg,#f7f3ee 0%,#f1ece6 100%)}
.upload-card{border-radius:26px;box-shadow:0 24px 70px rgba(57,48,41,.08)}
.drop-zone{border-radius:20px;background:linear-gradient(180deg,rgba(255,255,255,.75),rgba(249,246,242,.78))}
.drop-zone:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(58,49,42,.06)}
.preview-item video,.photo-image video{width:100%;height:100%;object-fit:cover;display:block}
.video-badge,.media-video-label{position:absolute;left:8px;bottom:8px;padding:4px 7px;border-radius:999px;background:rgba(24,24,22,.78);color:#fff;font-size:8px;font-weight:800;letter-spacing:.12em;z-index:3}
.modal-image-wrap video{width:100%;max-height:68vh;object-fit:contain;background:#111;display:block}.modal-image-wrap video[hidden]{display:none}


/* v8 — complete mobile/responsive hardening */
html{box-sizing:border-box;-webkit-text-size-adjust:100%;text-size-adjust:100%}
*,*:before,*:after{box-sizing:inherit}
html,body{max-width:100%;overflow-x:hidden}
img,video,svg{max-width:100%}
button,input,select,textarea{font:inherit;max-width:100%}
button,a,input{touch-action:manipulation}
@media(max-width:900px){
  .admin-layout{display:block!important;min-height:100dvh}
  .sidebar{position:relative!important;inset:auto!important;width:100%!important;height:auto!important;min-height:0!important;padding:14px!important}
  .sidebar-nav{display:flex!important;gap:8px!important;overflow-x:auto!important;padding-bottom:5px!important;scrollbar-width:none}
  .sidebar-nav::-webkit-scrollbar{display:none}
  .sidebar-nav a{flex:0 0 auto!important;white-space:nowrap!important}
  .sidebar-bottom{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;flex-wrap:wrap}
  .admin-main{margin-left:0!important;width:100%!important;padding:18px 14px 36px!important}
  .admin-header,.admin-topbar{gap:14px!important;align-items:flex-start!important;flex-wrap:wrap!important}
  .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .toolbar,.gallery-toolbar{flex-wrap:wrap!important}
  .search-wrap,.search-box{width:100%!important;max-width:none!important}
}
@media(max-width:600px){
  body{min-width:0!important}
  .guest-page,.page-shell,.guest-shell{width:100%!important;max-width:100%!important;padding-left:14px!important;padding-right:14px!important}
  .wedding-brand,.brand-lockup{max-width:100%!important}
  .monogram{font-size:clamp(18px,5.6vw,28px)!important;text-align:center!important}
  .hero-copy h1,.guest-hero h1{font-size:clamp(34px,10vw,52px)!important;line-height:1.02!important}
  .hero-copy p,.lead{font-size:14px!important;line-height:1.6!important}
  .upload-card{width:100%!important;max-width:100%!important;padding:16px!important;border-radius:20px!important}
  .drop-zone{min-height:220px!important;padding:24px 14px!important}
  .preview-strip{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .primary-button,.secondary-button{width:100%!important;min-height:50px!important}
  .stats-grid{grid-template-columns:1fr 1fr!important;gap:9px!important}
  .stat-card{padding:14px 11px!important}
  .gallery-grid{grid-template-columns:1fr!important}
  .photo-card,.media-card{width:100%!important}
  .filter-row,.filter-tabs{display:flex!important;overflow-x:auto!important;flex-wrap:nowrap!important;padding-bottom:4px!important}
  .filter-row button,.filter-tabs button{flex:0 0 auto!important;white-space:nowrap!important}
  .modal,.modal-card,.preview-modal{width:calc(100vw - 20px)!important;max-width:none!important;max-height:92dvh!important;margin:10px!important}
  .modal-content{overflow-y:auto!important}
  .modal-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important}
}
@media(max-width:380px){
  .stats-grid{grid-template-columns:1fr!important}
  .preview-strip{grid-template-columns:1fr!important}
  .modal-actions{grid-template-columns:1fr!important}
}
@supports(padding:max(0px)){
  body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
}

/* v11 — Wedrop logo in admin panel */
.sidebar-mark img,.admin-logo img,.login-mark img{
  width:48px;height:48px;object-fit:contain;display:block;
}
.sidebar-mark,.admin-logo,.login-mark{
  display:flex;align-items:center;justify-content:center;
}
@media(max-width:600px){
  .sidebar-mark img,.admin-logo img,.login-mark img{width:42px;height:42px}
}


/* v12 — redesigned admin login only */
.wedrop-login-page{
  margin:0;min-height:100dvh;background:
  radial-gradient(circle at 18% 12%,rgba(196,164,124,.14),transparent 30%),
  radial-gradient(circle at 82% 88%,rgba(118,132,111,.10),transparent 28%),
  #f4efe9;color:#403a36;
}
.wedrop-login-shell{
  min-height:100dvh;display:grid;place-items:center;padding:28px 18px;
}
.wedrop-login-card{
  width:min(100%,430px);background:rgba(255,255,255,.82);
  border:1px solid rgba(86,72,62,.10);border-radius:28px;
  padding:34px;box-shadow:0 28px 80px rgba(61,49,42,.10);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
}
.wedrop-login-logo{
  width:84px;height:84px;margin:0 auto 22px;display:grid;place-items:center;
  border-radius:24px;background:#faf7f3;border:1px solid rgba(86,72,62,.08);
}
.wedrop-login-logo img{width:64px;height:64px;object-fit:contain;display:block}
.wedrop-login-heading{text-align:center;margin-bottom:27px}
.wedrop-login-heading span{font-size:10px;font-weight:800;letter-spacing:.25em;color:#a0805d}
.wedrop-login-heading h1{margin:9px 0 8px;font-size:27px;line-height:1.15}
.wedrop-login-heading p{margin:0;color:#7b726c;font-size:13px;line-height:1.55}
.wedrop-login-form{display:grid;gap:18px}
.wedrop-login-field{display:grid;gap:8px}
.wedrop-login-field label{font-size:12px;font-weight:750;color:#514943}
.wedrop-login-field input{
  width:100%;height:54px;border:1px solid #ded6cf;border-radius:15px;
  background:#fff;padding:0 16px;color:#403a36;outline:none;
  transition:border-color .2s,box-shadow .2s,transform .2s;
}
.wedrop-login-field input::placeholder{color:#aaa19a}
.wedrop-login-field input:focus{
  border-color:#b79a77;box-shadow:0 0 0 4px rgba(183,154,119,.12)
}
.wedrop-login-submit{
  width:100%;min-height:54px;margin-top:3px;border:0;border-radius:15px;
  background:#403a36;color:#fff;font-weight:800;cursor:pointer;
  transition:transform .2s,opacity .2s;
}
.wedrop-login-submit:hover{transform:translateY(-1px);opacity:.94}
.wedrop-login-error{
  margin:0 0 18px;padding:12px 14px;border-radius:13px;
  background:#fff1ef;border:1px solid #efd1cc;color:#9b4037;
  font-size:12px;line-height:1.45;text-align:center;
}
.wedrop-login-foot{
  margin-top:24px;padding-top:20px;border-top:1px solid rgba(86,72,62,.08);
  text-align:center;font-size:10px;letter-spacing:.04em;color:#99908a
}
@media(max-width:520px){
  .wedrop-login-shell{padding:16px}
  .wedrop-login-card{padding:25px 18px;border-radius:23px}
  .wedrop-login-logo{width:74px;height:74px;border-radius:21px}
  .wedrop-login-logo img{width:56px;height:56px}
  .wedrop-login-heading h1{font-size:24px}
  .wedrop-login-field input,.wedrop-login-submit{min-height:52px}
}

/* v13 — admin WEDROP avatar + original file downloads */
.wedrop-admin-avatar{overflow:hidden;padding:5px}
.wedrop-admin-avatar img{width:100%;height:100%;object-fit:contain;display:block}
.quick-actions .single-download{
  display:inline-flex;align-items:center;justify-content:center;text-decoration:none;
  width:34px;height:34px;border-radius:10px;color:inherit;
  border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.04)
}
.quick-actions .single-download:hover{transform:translateY(-1px)}
.modal-download{
  display:inline-flex;align-items:center;justify-content:center;text-decoration:none;
  min-height:42px;padding:0 14px;border-radius:11px;color:inherit;
  border:1px solid currentColor
}
