*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:#292623}a{color:inherit;text-decoration:none}button,input,select{font:inherit}img{display:block;max-width:100%}button{cursor:pointer}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #d8d6d2;background:#fff;color:#24211f;border-radius:12px;padding:11px 15px;font-weight:800;cursor:pointer}.btn.primary{background:#151515;border-color:#151515;color:#fff}.btn.tiny{padding:8px 10px;font-size:12px;border-radius:10px}.btn.ghost{background:transparent}.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:10px;font-weight:900;color:#9b7465}.error,.success,.toast-success{border-radius:14px;padding:12px 14px;margin:14px 0;font-size:14px}.error{background:#fff0f0;color:#9f1d1d;border:1px solid #f6cccc}.success,.toast-success{background:#edf8ef;color:#176132;border:1px solid #cce8d2}.center{text-align:center}
:root{--home-bg:#f8f5f0;--home-panel:#fffdf9;--home-text:#26211d;--home-muted:#716a64;--home-border:#e8e1d8;--home-accent:#a77b69;--home-card:#fff}html[data-theme="dark"]{--home-bg:#12110f;--home-panel:#1a1816;--home-text:#f6efe8;--home-muted:#b4aaa1;--home-border:#312d29;--home-accent:#d0a18f;--home-card:#1b1917}.public-home{background:var(--home-bg);color:var(--home-text);min-height:100vh}.public-header{width:min(1260px,calc(100% - 36px));margin:auto;padding:24px 0;display:flex;align-items:center;justify-content:space-between}.public-brand,.mini-brand{display:flex;align-items:center;gap:9px;font-size:15px}.brand-mark,.mini-brand span,.admin-login-brand span,.admin-brand>span{display:grid;place-items:center;width:31px;height:31px;border-radius:10px;background:#171717;color:#ff7a2f;font-weight:950}.theme-toggle{width:42px;height:42px;border:1px solid var(--home-border);border-radius:50%;background:var(--home-panel);color:var(--home-text);display:grid;place-items:center;font-size:18px}.home-hero{width:min(1260px,calc(100% - 36px));margin:10px auto 58px;min-height:360px;border-radius:36px;background:linear-gradient(135deg,color-mix(in srgb,var(--home-panel) 93%,var(--home-accent)),var(--home-panel));border:1px solid var(--home-border);display:grid;grid-template-columns:minmax(0,1fr) 320px;align-items:center;padding:54px 62px;overflow:hidden;position:relative}.home-hero:before,.home-hero:after{content:"";position:absolute;border:1px solid color-mix(in srgb,var(--home-accent) 22%,transparent);border-radius:50%;right:-100px}.home-hero:before{width:420px;height:420px;top:-110px}.home-hero:after{width:290px;height:290px;bottom:-170px}.hero-kicker{display:block;color:var(--home-accent);font-size:11px;letter-spacing:.23em;text-transform:uppercase;font-weight:900;margin-bottom:17px}.home-hero h1{font-family:Georgia,serif;font-size:clamp(42px,5vw,70px);line-height:1.04;font-weight:400;margin:0;max-width:850px}.home-hero h1 em{color:var(--home-accent);font-weight:400}.home-hero p{max-width:720px;color:var(--home-muted);line-height:1.7;font-size:15px;margin:22px 0 0}.hero-ornament{position:relative;width:250px;height:250px;justify-self:end;z-index:1}.hero-ornament span{position:absolute;border:1px solid color-mix(in srgb,var(--home-accent) 48%,transparent);border-radius:50%;inset:25px}.hero-ornament span:nth-child(2){inset:55px}.hero-ornament span:nth-child(3){inset:92px;background:color-mix(in srgb,var(--home-accent) 10%,transparent)}.events-section{width:min(1260px,calc(100% - 36px));margin:0 auto 70px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:22px}.section-heading h2{font-family:Georgia,serif;font-size:40px;font-weight:500;margin:5px 0 0}.section-heading>p{font-size:13px;color:var(--home-muted)}.public-event-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.cover-frame{aspect-ratio:4/5;border-radius:24px;overflow:hidden;position:relative;background:var(--home-card);border:1px solid var(--home-border);box-shadow:0 18px 55px color-mix(in srgb,#000 9%,transparent)}.cover-frame img{width:100%;height:100%;object-fit:cover}.private-pill{position:absolute;top:14px;right:14px;padding:7px 10px;border-radius:999px;background:#111b;color:#fff;font-size:10px;letter-spacing:.08em;text-transform:uppercase;backdrop-filter:blur(8px)}.public-event-meta{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:14px 5px 0}.public-event-meta h3{font-family:Georgia,serif;font-weight:500;font-size:24px;margin:0}.public-event-meta h3 span{color:var(--home-accent);font-style:italic}.public-event-meta p{font-size:12px;color:var(--home-muted);margin:5px 0 0}.enter-arrow{width:40px;height:40px;border:1px solid var(--home-border);border-radius:50%;display:grid;place-items:center;color:var(--home-accent)}.placeholder-wedding-card{aspect-ratio:4/5;border-radius:24px;border:1px dashed var(--home-border);background:linear-gradient(145deg,color-mix(in srgb,var(--home-panel) 90%,transparent),color-mix(in srgb,var(--home-accent) 5%,var(--home-panel)));display:grid;place-items:center;min-height:280px}.placeholder-inner{text-align:center;padding:25px}.placeholder-inner h3{font-family:Georgia,serif;font-weight:400;font-size:27px;margin:8px 0}.placeholder-inner p{color:var(--home-muted);font-size:13px;margin:0}.pagination{display:flex;justify-content:center;gap:8px;margin-top:34px}.pagination a{width:38px;height:38px;border:1px solid var(--home-border);border-radius:50%;display:grid;place-items:center}.pagination a.active{background:var(--home-text);color:var(--home-bg)}.public-footer{width:min(1260px,calc(100% - 36px));margin:auto;padding:24px 0 34px;border-top:1px solid var(--home-border);display:flex;align-items:center;justify-content:space-between;color:var(--home-muted);font-size:12px}.public-footer>div{display:grid;gap:3px}.public-footer strong{color:var(--home-text)}.admin-gear{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;opacity:.3;font-size:14px}.admin-gear:hover{opacity:.85;background:var(--home-panel)}
.wedding-event-body{--page-bg:var(--event-page,#faf7f2);--panel-bg:var(--event-panel,#fffdf9);--accent:var(--event-accent,#a87968);background:var(--page-bg);color:#2b2623;min-height:100vh}html[data-theme="dark"] .wedding-event-body{background:#12110f;color:#f6efe8}.event-topbar{width:min(1160px,calc(100% - 30px));margin:auto;padding:19px 0;display:flex;justify-content:space-between;align-items:center}.mini-brand{font-weight:850;font-size:13px}.event-top-actions{display:flex;align-items:center;gap:10px}.event-exit{font-size:12px;color:#8a8179}.wedding-event-shell{width:min(1120px,calc(100% - 26px));margin:auto;padding:18px 0 40px}.wedding-title{text-align:center;padding:28px 15px 18px}.wedding-title h1{font-family:Georgia,serif;font-size:clamp(46px,7vw,82px);font-weight:400;margin:7px 0 8px;line-height:1}.wedding-title h1 em{color:var(--accent)}.wedding-date{font-size:13px;font-weight:800;letter-spacing:.05em;margin:0}.wedding-subtitle{max-width:650px;margin:2px auto 28px;text-align:center;color:#70665f;line-height:1.7}html[data-theme="dark"] .wedding-subtitle{color:#bfb3a9}.private-access-card{width:min(480px,100%);margin:28px auto 50px;background:var(--panel-bg);border:1px solid #e9e1d8;border-radius:30px;padding:34px;box-shadow:0 24px 80px #4c352314;text-align:center}html[data-theme="dark"] .private-access-card,html[data-theme="dark"] .guest-action-card,html[data-theme="dark"] .wedding-gallery{background:#1a1816;border-color:#302b27}.access-icon{font-family:Georgia,serif;font-size:52px;color:var(--accent)}.private-access-card h2{font-family:Georgia,serif;font-size:34px;font-weight:500;margin:8px 0}.private-access-card>p{color:#766d66;font-size:14px;line-height:1.6}.private-login-form{display:grid;gap:13px;margin-top:22px;text-align:left}.private-login-form label,.name-field{display:grid;gap:7px;font-size:12px;font-weight:850}.private-login-form input,.name-field input{width:100%;min-height:48px;padding:12px 14px;border:1px solid #ded7d0;border-radius:13px;background:#fff;color:#222;font-size:16px}.private-access-card>small{display:block;color:#948b84;margin-top:13px}.btn.wedding-primary{background:var(--accent);border-color:var(--accent);color:#fff}.guest-action-card,.wedding-gallery{background:var(--panel-bg);border:1px solid #e9e1d8;border-radius:30px;padding:28px;box-shadow:0 22px 65px #4b352214}.guest-action-card{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:34px;align-items:center;margin-bottom:24px}.guest-action-copy h2,.wedding-gallery-heading h2{font-family:Georgia,serif;font-size:36px;font-weight:500;margin:6px 0 8px}.guest-action-copy p,.wedding-gallery-heading p{color:#786e67;line-height:1.6;font-size:13px;margin:0}.guest-upload-form{display:grid;gap:13px}.guest-upload-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px}.photo-input-button{position:relative;border:1px solid #ded7d0;border-radius:16px;padding:15px 10px;text-align:center;display:grid;gap:3px;align-content:center;min-height:112px;background:#fff;color:#292623}.photo-input-button input{position:absolute;inset:0;opacity:0;width:100%;height:100%}.photo-input-icon{font-size:22px}.photo-input-button strong{font-size:13px}.photo-input-button small{font-size:10px;color:#777}.selected-files{font-size:11px;color:#776e67;background:#f7f3ee;border-radius:10px;padding:9px 10px}.upload-submit{min-height:50px}.upload-note{text-align:center;color:#8f857e}.wedding-gallery-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:23px}.gallery-counter{width:70px;height:70px;border-radius:50%;display:grid;place-items:center;background:var(--page-bg);text-align:center}.gallery-counter strong{font-size:20px}.gallery-counter span{font-size:9px;text-transform:uppercase}.guest-groups{display:grid;gap:28px}.guest-group-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.guest-group-heading h3{font-size:15px;margin:0}.guest-group-heading span{font-size:11px;color:#8b8179}.wedding-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.wedding-photo-card{padding:0;border:0;background:#eee;aspect-ratio:1/1;border-radius:16px;overflow:hidden;position:relative}.wedding-photo-card img{width:100%;height:100%;object-fit:cover}.photo-credit{position:absolute;left:7px;right:7px;bottom:7px;background:#0c0b0ad1;color:#fff;padding:7px 9px;border-radius:10px;display:flex;justify-content:space-between;gap:8px}.photo-credit strong{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photo-credit small{font-size:9px;opacity:.78}.gallery-empty{border:1px dashed #ded7d0;border-radius:18px;padding:38px 20px;text-align:center;color:#857b74}.gallery-empty span{font-family:Georgia,serif;font-size:34px;color:var(--accent)}.event-footer{text-align:center;padding:22px;color:#897f77;font-size:11px}.event-footer span{opacity:.65}.photo-lightbox[hidden]{display:none}.photo-lightbox{position:fixed;inset:0;background:#080706ed;z-index:100;display:grid;place-items:center;padding:25px}.photo-lightbox figure{margin:0;max-width:min(1100px,96vw);max-height:92vh;display:grid;gap:10px;justify-items:center}.photo-lightbox img{max-width:100%;max-height:82vh;object-fit:contain;border-radius:16px}.photo-lightbox figcaption{color:#fff;font-size:12px}.lightbox-close{position:absolute;top:16px;right:18px;width:44px;height:44px;border:0;border-radius:50%;background:#fff;color:#111;font-size:28px}
.admin-login-body{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 10%,#20252f,#0c0f14 55%);padding:22px}.admin-login-card{width:min(460px,100%);background:#fff;border-radius:28px;padding:30px;box-shadow:0 30px 90px #0008}.admin-login-brand{display:flex;align-items:center;gap:8px;margin-bottom:28px}.admin-login-card h1{font-size:34px;margin:5px 0}.admin-login-card>p{color:#707070;line-height:1.5}.admin-login-form{display:grid;gap:14px;margin-top:22px}.admin-login-form label{display:grid;gap:7px;font-size:12px;font-weight:850}.admin-login-form input{min-height:48px;border:1px solid #ddd;border-radius:12px;padding:11px 13px;font-size:16px}.back-public{display:block;text-align:center;color:#777;font-size:12px;margin-top:18px}.admin-body-v2{background:#f2f3f5;color:#202226;min-height:100vh}.admin-sidebar{position:fixed;inset:0 auto 0 0;width:230px;background:#0c1016;color:#fff;padding:24px 16px;display:flex;flex-direction:column;justify-content:space-between}.admin-brand{display:flex;align-items:center;gap:10px;padding:0 5px}.admin-brand>div{display:grid}.admin-brand strong{font-size:18px}.admin-brand small{color:#ff7a2f;font-weight:800}.admin-sidebar nav{display:grid;gap:6px;margin-top:30px}.admin-sidebar nav a{padding:11px 12px;border-radius:11px;color:#cbd1db;font-size:13px;display:flex;gap:10px}.admin-logout{font-size:12px;color:#98a1ae;padding:10px 12px}.admin-content{margin-left:230px;padding:28px;max-width:1500px}.admin-header-v2{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:22px}.admin-header-v2 h1{margin:5px 0 4px;font-size:30px}.admin-header-v2 p{margin:0;color:#707782;font-size:13px}.admin-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:18px 0 24px}.admin-stats>div{background:#fff;border:1px solid #e1e4e8;border-radius:16px;padding:15px 17px;display:flex;justify-content:space-between;align-items:center}.admin-stats span{font-size:12px;color:#707782}.admin-stats strong{font-size:25px}.admin-section{background:#fff;border:1px solid #e1e4e8;border-radius:20px;padding:20px;margin:0 0 22px}.admin-section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:17px}.admin-section-heading h2{margin:4px 0 0;font-size:22px}.admin-section-heading p{font-size:12px;color:#777e88;margin:5px 0 0}.admin-event-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.admin-event-card{border:1px solid #e3e5e9;border-radius:17px;overflow:hidden}.admin-event-cover{aspect-ratio:16/10;background:#eee;position:relative;overflow:hidden}.admin-event-cover img{width:100%;height:100%;object-fit:cover}.admin-event-badges{position:absolute;left:10px;top:10px;display:flex;gap:6px}.badge{font-size:9px;font-weight:900;border-radius:999px;padding:6px 8px;background:#20242a;color:#fff}.badge.demo{background:#ff7a2f}.badge.live{background:#15803d}.badge.warning{background:#b45309}.badge.muted-badge{background:#646a73}.admin-event-info{padding:14px}.admin-event-title{display:flex;justify-content:space-between;gap:12px}.admin-event-title h3{font-size:17px;margin:0}.admin-event-title p{font-size:11px;color:#777e88;margin:4px 0}.admin-event-title>strong{font-size:19px;white-space:nowrap}.admin-event-title>strong small{font-size:9px;color:#7a8088}.admin-event-info code{display:block;background:#f6f7f8;border-radius:9px;padding:8px;margin:12px 0;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-card-actions,.admin-mini-actions,.photo-actions,.qr-download-actions{display:flex;gap:8px;flex-wrap:wrap}.admin-mini-actions{border-top:1px solid #eee;margin-top:12px;padding-top:10px}.admin-mini-actions button,.photo-actions button{border:0;background:transparent;padding:0;color:#646b74;font-size:10px}.danger-link{color:#b42318!important}.admin-qr-layout{display:grid;grid-template-columns:310px 1fr;gap:20px}.qr-preview-card,.credentials-card{border:1px solid #e4e6e9;border-radius:18px;padding:18px}.qr-preview-card{text-align:center}.admin-qr-box{width:240px;height:240px;margin:0 auto 12px;padding:10px;background:#fff;border:1px solid #ececec;border-radius:14px}.admin-qr-box img,.admin-qr-box canvas{max-width:100%;height:auto!important}.qr-preview-card small{display:block;color:#7b818a;font-size:10px;word-break:break-all}.credential-row{display:grid;gap:7px;padding:12px 0;border-bottom:1px solid #eee}.credential-row>span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#7a8088;font-weight:900}.credential-row>div{display:flex;align-items:center;gap:8px;min-width:0}.credential-row code{background:#f5f6f7;padding:8px 10px;border-radius:9px;min-width:0;overflow:auto}.copy-button{border:1px solid #ddd;background:#fff;border-radius:8px;padding:7px 9px;font-size:10px}.admin-photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.admin-photo-card{border:1px solid #e4e6e9;border-radius:14px;overflow:hidden}.admin-photo-card img{width:100%;aspect-ratio:1/1;object-fit:cover;background:#eee}.admin-photo-meta{padding:10px}.admin-photo-meta strong{display:block;font-size:12px}.admin-photo-meta small{display:block;color:#767d86;font-size:10px;margin-top:3px}.admin-empty{padding:30px;text-align:center;border:1px dashed #d9dce1;border-radius:14px;color:#777e87}.admin-event-form{display:grid;gap:16px}.admin-event-form fieldset{border:1px solid #e4e6e9;border-radius:16px;padding:16px}.admin-event-form legend{padding:0 7px;font-size:12px;font-weight:900}.form-grid-v2{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.form-grid-v2 label,.cover-upload-label{display:grid;gap:6px;font-size:11px;font-weight:850}.form-grid-v2 input,.form-grid-v2 select,.cover-upload-label input{min-width:0;width:100%;min-height:44px;border:1px solid #dfe2e6;border-radius:10px;background:#fff;padding:9px 11px}.span-2{grid-column:span 2}.span-3{grid-column:span 3}.span-4{grid-column:1/-1}.form-check{display:flex!important;align-items:center;gap:8px}.form-check input{width:17px!important;height:17px!important;min-height:auto!important}.cover-upload-row{display:grid;grid-template-columns:150px 1fr auto;gap:15px;align-items:center}.cover-edit-preview{width:150px;aspect-ratio:4/5;object-fit:cover;border-radius:12px}.form-submit-row{display:flex;justify-content:flex-end}.live-body{margin:0;background:#090806;color:#fff;overflow:hidden}.live-frame{min-height:100vh;display:grid;grid-template-rows:auto 1fr auto}.live-header{display:flex;justify-content:space-between;align-items:center;padding:20px 28px}.live-header h1{font-family:Georgia,serif;font-weight:400;margin:4px 0 0}.live-header h1 em{color:#d2a792}.live-count{display:grid;text-align:center}.live-count strong{font-size:24px}.live-count span{font-size:9px;text-transform:uppercase}.live-stage{min-height:0;display:grid;place-items:center;padding:8px 24px}.live-photo{width:100%;height:calc(100vh - 150px);object-fit:contain}.live-empty{text-align:center;color:#bdb4ac}.live-empty span{font-size:70px;color:#c59a87}.live-empty h2{font-family:Georgia,serif;font-size:48px;font-weight:400;margin:4px}.live-credit{text-align:center;padding:16px;color:#d5cdc6;font-size:13px}.qr-print-body{margin:0;background:#ece8e2;padding:28px}.print-actions{display:flex;justify-content:center;gap:8px;margin-bottom:18px}.qr-print-sheet{width:min(720px,100%);margin:auto;background:#fffdf9;border:1px solid #e8dfd5;border-radius:28px;padding:52px;text-align:center}.qr-print-sheet h1{font-family:Georgia,serif;font-size:54px;font-weight:400}.qr-print-sheet h1 em{color:#a87968}.print-qr{width:340px;height:340px;margin:28px auto;padding:10px;background:#fff}.print-qr img,.print-qr canvas{max-width:100%;height:auto!important}.qr-print-sheet h2{font-family:Georgia,serif;font-weight:400}.qr-print-sheet small{color:#777;word-break:break-all}
@media(max-width:1050px){.public-event-grid{grid-template-columns:repeat(2,1fr)}.home-hero{grid-template-columns:1fr}.hero-ornament{display:none}.admin-event-grid{grid-template-columns:repeat(2,1fr)}.admin-photo-grid{grid-template-columns:repeat(3,1fr)}.guest-action-card{grid-template-columns:1fr}.wedding-photo-grid{grid-template-columns:repeat(3,1fr)}.form-grid-v2{grid-template-columns:repeat(2,1fr)}.span-3,.span-4{grid-column:1/-1}.admin-qr-layout{grid-template-columns:280px 1fr}}
@media(max-width:760px){.public-header,.home-hero,.events-section,.public-footer{width:min(100% - 22px,1260px)}.public-header{padding:14px 0}.home-hero{margin:4px auto 38px;padding:34px 26px;border-radius:26px;min-height:300px}.home-hero h1{font-size:42px}.public-event-grid{grid-template-columns:1fr;gap:22px}.section-heading{align-items:start}.section-heading h2{font-size:34px}.public-footer>div span{display:none}.admin-sidebar{position:static;width:auto;padding:13px 15px;display:flex;flex-direction:row}.admin-sidebar nav,.admin-logout{display:none}.admin-content{margin-left:0;padding:14px}.admin-header-v2{align-items:flex-start}.admin-header-v2 h1{font-size:24px}.admin-header-v2 p{display:none}.admin-stats{grid-template-columns:repeat(3,1fr);gap:8px}.admin-stats>div{padding:12px;display:grid;gap:5px}.admin-section{padding:14px}.admin-event-grid{grid-template-columns:1fr}.admin-qr-layout{grid-template-columns:1fr}.admin-photo-grid{grid-template-columns:repeat(2,1fr)}.form-grid-v2{grid-template-columns:1fr}.span-2,.span-3,.span-4{grid-column:1}.cover-upload-row{grid-template-columns:100px 1fr}.cover-edit-preview{width:100px}.cover-upload-row .form-check{grid-column:1/-1}.wedding-event-shell{width:min(100% - 16px,1120px)}.wedding-title h1{font-size:48px}.private-access-card{padding:25px}.guest-action-card,.wedding-gallery{padding:18px}.wedding-gallery-heading{align-items:flex-start}.wedding-gallery-heading h2,.guest-action-copy h2{font-size:30px}.wedding-photo-grid{grid-template-columns:repeat(2,1fr);gap:8px}.live-header{padding:16px}.live-empty h2{font-size:36px}.qr-print-body{padding:10px}.qr-print-sheet{padding:28px 18px}.qr-print-sheet h1{font-size:42px}.print-qr{width:290px;height:290px}}
@media(max-width:430px){.home-hero h1{font-size:36px}.public-event-meta h3{font-size:22px}.event-topbar{width:calc(100% - 20px)}.wedding-title h1{font-size:43px}.photo-credit{display:grid;gap:2px}.admin-header-v2{display:grid}.admin-stats span{font-size:10px}.admin-stats strong{font-size:19px}.credential-row>div{flex-wrap:wrap}.qr-download-actions{display:grid}.qr-download-actions .btn{width:100%}}
/* ===== FiSS Eventos V3 · roles y área de anfitriones ===== */
.access-separator{display:flex;align-items:center;gap:12px;margin:20px 0;color:#aaa}.access-separator:before,.access-separator:after{content:"";height:1px;flex:1;background:#e6ddd5}.access-separator span{font-size:11px;text-transform:uppercase}.qr-access-note{font-size:12px!important;margin:0!important}.client-link{display:inline-block;margin-top:18px;font-size:11px;font-weight:850;color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.admin-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.admin-form-grid label{display:grid;gap:6px;font-size:11px;font-weight:850;min-width:0}.admin-form-grid input,.admin-form-grid select{width:100%;min-width:0;min-height:44px;border:1px solid #dfe2e6;border-radius:10px;background:#fff;padding:9px 11px}.admin-form-grid input[type=color]{padding:5px}.admin-form-grid input[type=checkbox]{width:17px;min-height:auto;height:17px}.admin-form-grid .wide{grid-column:1/-1}.admin-form-grid .check{display:flex;align-items:center;gap:9px}.admin-form-grid small{font-weight:500;color:#7d838c}.form-subtitle{padding-top:8px;border-top:1px solid #eceef1;display:flex;gap:10px;align-items:baseline}.form-subtitle strong{font-size:13px}.form-subtitle span{font-size:11px;color:#777e88}.credentials-card h3{font-size:13px;margin:7px 0 2px}.qr-print-hint{font-size:13px;color:#776d65}
.client-login-body{min-height:100vh;margin:0;display:grid;place-items:center;padding:22px;background:radial-gradient(circle at 10% 0%,#f5e9df 0,transparent 38%),linear-gradient(145deg,#faf7f2,#f1ece5);color:#2a2522}.client-login-card{width:min(480px,100%);background:#fffdf9;border:1px solid #eadfd5;border-radius:30px;padding:34px;box-shadow:0 30px 90px #6b49311c}.client-login-card h1{font-family:Georgia,serif;font-size:37px;font-weight:400;margin:7px 0 10px}.client-login-card>p{font-size:13px;color:#776c65;line-height:1.65}
.client-body{margin:0;background:#f7f3ee;color:#28231f;min-height:100vh}.client-sidebar{position:fixed;inset:0 auto 0 0;width:250px;background:linear-gradient(180deg,#261f1b,#151210);color:#fff;padding:24px 17px;display:flex;flex-direction:column;justify-content:space-between}.client-brand{display:flex;align-items:center;gap:11px;padding:4px}.client-brand>span{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#a87968;color:#fff;font-size:20px}.client-brand>div{display:grid;min-width:0}.client-brand strong{font-family:Georgia,serif;font-weight:500;font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.client-brand small{color:#b9aaa0;font-size:9px;margin-top:3px}.client-sidebar nav{display:grid;gap:7px;margin-top:32px}.client-sidebar nav a{padding:12px 13px;border-radius:12px;color:#d8cec7;font-size:12px}.client-sidebar nav a.active,.client-sidebar nav a:hover{background:#ffffff0f;color:#fff}.client-main{margin-left:250px;padding:30px;max-width:1540px}.client-header{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:20px}.client-header h1{font-family:Georgia,serif;font-size:34px;font-weight:400;margin:5px 0}.client-header p{margin:0;color:#786e67;font-size:13px}.client-date{font-family:Georgia,serif;color:#8c6758;background:#fff;border:1px solid #e8dfd7;padding:12px 16px;border-radius:999px;white-space:nowrap}.client-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-bottom:18px}.client-stats>div{background:#fff;border:1px solid #e7ded6;border-radius:18px;padding:17px}.client-stats span{display:block;text-transform:uppercase;letter-spacing:.12em;font-size:9px;color:#9b7465;font-weight:900}.client-stats strong{font-family:Georgia,serif;font-size:31px;font-weight:400;display:block;margin:4px 0}.client-stats small{color:#81776f;font-size:10px}.client-panel{background:#fff;border:1px solid #e7ded6;border-radius:22px;padding:20px;margin-bottom:18px}.client-section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:17px}.client-section-heading h2{font-family:Georgia,serif;font-size:28px;font-weight:400;margin:4px 0}.client-section-heading p{font-size:12px;color:#7a7069;margin:0}.client-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.client-photo-card{border:1px solid #e8e0d9;border-radius:16px;overflow:hidden;background:#fffdfb}.client-photo-card img{width:100%;aspect-ratio:1/1;object-fit:cover;background:#eee}.client-photo-meta{padding:11px}.client-photo-meta strong{display:block;font-size:12px}.client-photo-meta small{display:block;color:#81776f;font-size:9px;margin:4px 0 7px}.photo-state{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;background:#f1ece8;color:#6f655e}.photo-state.approved{background:#eaf6ed;color:#21713b}.photo-state.hidden{background:#f4eded;color:#8b4b4b}.client-photo-actions{display:flex;gap:10px;margin-top:10px;padding-top:9px;border-top:1px solid #eee6df}.client-photo-actions button{border:0;background:transparent;padding:0;font-size:10px;color:#6f655e}.client-qr-layout{display:grid;grid-template-columns:310px 1fr;gap:24px;align-items:center}.client-access-info{display:grid;gap:9px;align-content:center}.client-access-info>span{text-transform:uppercase;letter-spacing:.12em;font-size:9px;font-weight:900;color:#9b7465}.client-access-info>strong{font-family:Georgia,serif;font-size:26px;font-weight:400}.client-access-info small{color:#7b716a;line-height:1.55}.client-access-info code{display:block;padding:10px;border-radius:10px;background:#f7f2ed;font-size:10px;word-break:break-all}
@media(max-width:1050px){.admin-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.client-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.admin-form-grid{grid-template-columns:1fr}.admin-form-grid .wide{grid-column:1}.form-subtitle{display:grid}.client-sidebar{position:static;width:auto;padding:14px 15px;display:flex;flex-direction:row;align-items:center}.client-sidebar nav,.client-sidebar .admin-logout{display:none}.client-main{margin-left:0;padding:14px}.client-header{display:grid}.client-header h1{font-size:29px}.client-date{justify-self:start}.client-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.client-stats>div{padding:12px}.client-stats strong{font-size:25px}.client-stats small{font-size:9px}.client-panel{padding:14px}.client-section-heading{align-items:flex-start}.client-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.client-qr-layout{grid-template-columns:1fr}.client-qr-layout>div:first-child{text-align:center}.client-login-card{padding:25px;border-radius:24px}}
@media(max-width:430px){.client-stats span{font-size:8px}.client-stats strong{font-size:22px}.client-stats small{display:none}.client-section-heading{display:grid}.client-section-heading .btn{width:100%}.client-access-info>strong{font-size:22px}}
