:root{
  --bg:#f6f7f9;--panel:#fff;--panel-soft:#fafafa;--text:#111318;--muted:#6d7280;--line:#e6e8ec;
  --dark:#111318;--dark-2:#1c2027;--danger:#b42318;--ok:#137333;--warn:#9a6700;--blue:#175cd3;
  --radius:16px;--radius-sm:11px;--shadow:0 1px 2px rgba(16,24,40,.04),0 8px 24px rgba(16,24,40,.035)
}
*{box-sizing:border-box}html{scroll-behavior:smooth}html,body{margin:0;padding:0;min-height:100%;background:var(--bg);color:var(--text);font:14px/1.55 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{touch-action:manipulation}img{max-width:100%}
.container{width:min(1240px,100%);margin:0 auto;padding:28px}.topbar{height:68px;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:20}.brand{font-weight:850;letter-spacing:.08em}.brand small{display:block;margin-top:3px;font-size:10px;line-height:1.2;letter-spacing:.03em;font-weight:600;color:#8b93a1}
.btn{min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #dfe2e7;background:#fff;color:#171a20;padding:9px 14px;border-radius:11px;cursor:pointer;font-weight:720;white-space:nowrap;transition:background .15s,border-color .15s,transform .15s,box-shadow .15s}.btn:hover{background:#f7f8fa;border-color:#cfd3da}.btn:active{transform:translateY(1px)}.btn-primary{background:#15181e;color:#fff;border-color:#15181e;box-shadow:0 3px 10px rgba(17,19,24,.12)}.btn-primary:hover{background:#252a32;border-color:#252a32}.btn-danger{background:#fff;color:var(--danger);border-color:#f3c7c2}.btn-danger:hover{background:#fff5f4}.btn-sm{min-height:36px;padding:7px 11px;font-size:12px}
.grid{display:grid;gap:16px}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.card h2,.card h3{margin-top:0}.stat{position:relative;overflow:hidden}.stat:after{content:"";position:absolute;right:-24px;top:-28px;width:88px;height:88px;border-radius:999px;background:#f2f3f5}.stat>*{position:relative;z-index:1}.stat strong{display:block;font-size:30px;line-height:1.1;margin-top:7px;letter-spacing:-.03em}.muted{color:var(--muted)}
.admin-shell{display:grid;grid-template-columns:252px minmax(0,1fr);min-height:100vh}.sidebar{background:#111318;color:#fff;padding:20px 14px;position:sticky;top:0;height:100vh;z-index:60}.sidebar .brand{padding:10px 12px 22px}.nav{display:flex;flex-direction:column;gap:3px}.nav a{display:flex;align-items:center;min-height:42px;padding:9px 12px;border-radius:10px;color:#b9bec8;font-weight:650;transition:.15s}.nav a:hover,.nav a.active{background:#20242c;color:#fff}.nav a:last-child{margin-top:12px;border-top:1px solid #2b3039;border-radius:0;padding-top:16px}.sidebar-backdrop{display:none}.main{min-width:0}.main-header{height:68px;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 26px;position:sticky;top:0;z-index:25}.main-content{width:min(1420px,100%);padding:26px;margin:0 auto}.page-title{font-size:28px;line-height:1.2;letter-spacing:-.035em;margin:0 0 5px}.toolbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-bottom:18px}.toolbar>div:first-child{min-width:0}
.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow);-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:collapse;min-width:720px}th,td{text-align:left;padding:13px 15px;border-bottom:1px solid #edf0f2;vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fbfbfc}th{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#747b88;background:#fafbfc;position:sticky;top:0;z-index:1}.badge{display:inline-flex;align-items:center;min-height:25px;padding:3px 9px;border-radius:999px;background:#f0f1f3;color:#4d5562;font-size:11px;font-weight:750}.badge.published,.badge.ready{background:#e9f7ee;color:#176b36}.badge.incoming{background:#fff5d9;color:#8a5a00}.badge.processing{background:#eaf2ff;color:#175cd3}.badge.hidden{background:#fff0ef;color:#a3261c}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.field{display:flex;flex-direction:column;gap:7px}.field.full{grid-column:1/-1}.field label{font-weight:720;color:#2d323a}.field input,.field select,.field textarea,select{width:100%;min-height:43px;padding:10px 12px;border:1px solid #d7dbe1;border-radius:10px;background:#fff;color:#1b1f24;outline:none;transition:.15s}.field textarea{min-height:90px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus,select:focus{border-color:#8a9099;box-shadow:0 0 0 3px rgba(17,19,24,.07)}
.flash{padding:13px 15px;border-radius:11px;margin:0 0 16px;background:#edf8f1;color:#166534;border:1px solid #cfead7}.flash.error{background:#fff2f1;color:#991b1b;border-color:#f4cdc9}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:22px;background:radial-gradient(circle at 15% 10%,#fff 0,#f6f7f9 42%,#eef0f3 100%)}.login-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:21px;padding:30px;box-shadow:0 24px 70px rgba(16,24,40,.08)}.login-card h1{margin:18px 0 6px;font-size:28px;letter-spacing:-.035em}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:14px}.photo-card{display:block;background:#fff;border:1px solid var(--line);border-radius:15px;overflow:hidden;box-shadow:var(--shadow);transition:transform .15s,box-shadow .15s}.photo-card:hover{transform:translateY(-1px);box-shadow:0 10px 28px rgba(16,24,40,.07)}.photo-card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:#eceef1}.photo-card .meta{padding:11px 12px}.photo-card .meta>div{margin-top:3px}
.gallery-hero{background:#111318;color:#fff;padding:70px 24px 58px;position:relative;overflow:hidden}.gallery-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.08));pointer-events:none}.gallery-hero .inner{max-width:1260px;margin:0 auto;position:relative;z-index:1}.gallery-hero h1{font-size:clamp(34px,5vw,58px);line-height:1.04;letter-spacing:-.045em;margin:7px 0 10px;max-width:850px}.gallery-hero p{font-size:15px;line-height:1.7}.public-gallery{max-width:1320px;margin:0 auto;padding:22px}.public-gallery>.toolbar:first-child{position:sticky;top:10px;z-index:15;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:13px;padding:10px 12px;box-shadow:var(--shadow)}#filters{gap:7px}.masonry{columns:4 260px;column-gap:14px}.masonry .item{break-inside:avoid;margin:0 0 14px;border-radius:14px;overflow:hidden;background:#e9ebee;position:relative;box-shadow:0 1px 2px rgba(0,0,0,.04)}.masonry img{width:100%;display:block;transition:transform .22s}.masonry .item:hover img{transform:scale(1.012)}.masonry .download{position:absolute;right:9px;bottom:9px;background:rgba(17,19,24,.88);backdrop-filter:blur(6px);color:#fff;padding:7px 10px;border-radius:9px;font-size:11px;font-weight:700}.empty{padding:44px;text-align:center;color:var(--muted)}
.code-preview{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:22px;align-items:start}.code-box{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;text-align:center;box-shadow:var(--shadow)}.code-box svg,.code-box canvas{max-width:100%}.kpi-line{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px dashed var(--line)}.mobile-menu{display:none}.pairing-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:26px;align-items:center}.pair-qr{background:#fff;padding:14px;border:1px solid var(--line);border-radius:16px;width:max-content;margin-top:14px;box-shadow:var(--shadow)}.pair-value{background:#f8f9fa;border:1px solid var(--line);border-radius:10px;padding:11px 12px;font-weight:720}.connect-camera-card{display:grid;grid-template-columns:70px minmax(0,1fr);gap:16px;align-items:start}.connect-icon{width:58px;height:58px;border-radius:14px;background:#111318;color:#fff;display:grid;place-items:center;font-weight:900;letter-spacing:.08em}dialog.card{border:1px solid var(--line);box-shadow:0 28px 90px rgba(16,24,40,.2)}dialog::backdrop{background:rgba(15,18,23,.5);backdrop-filter:blur(2px)}
@media(max-width:1180px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.masonry{columns:3 220px}}
@media(max-width:1024px){.admin-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-270px;width:252px;box-shadow:18px 0 45px rgba(0,0,0,.18);transition:left .2s ease}.sidebar.open{left:0}.sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(15,18,23,.44);z-index:55;opacity:0;visibility:hidden;transition:.2s}.menu-open .sidebar-backdrop{opacity:1;visibility:visible}.mobile-menu{display:inline-flex}.main-content{padding:20px}.main-header{padding:0 20px}.pairing-layout{grid-template-columns:1fr}.pair-qr{margin-left:auto;margin-right:auto}.code-preview{grid-template-columns:1fr}.connect-camera-card{grid-template-columns:58px minmax(0,1fr)}}
@media(max-width:760px){.grid-3,.grid-4{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.page-title{font-size:24px}.main-content{padding:15px}.main-header{height:62px;padding:0 15px}.toolbar{align-items:stretch}.toolbar>form{width:100%}.toolbar>form select{width:100%}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.gallery-hero{padding:52px 16px 42px}.public-gallery{padding:14px}.masonry{columns:2 150px;column-gap:9px}.masonry .item{margin-bottom:9px;border-radius:11px}.code-preview{gap:14px}.connect-camera-card{grid-template-columns:1fr}.pair-qr{max-width:100%;overflow:hidden}}
@media(max-width:520px){.grid-3,.grid-4{grid-template-columns:1fr}.container{padding:14px}.card{padding:16px;border-radius:14px}.login-card{padding:23px}.btn{min-height:44px}.toolbar>.btn,.toolbar>div:last-child>.btn{flex:1}.toolbar>div:last-child{display:flex;flex-wrap:wrap;gap:7px;width:100%}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.photo-card .meta{padding:9px}.gallery-hero h1{font-size:34px}.public-gallery>.toolbar:first-child{top:6px}.masonry .download{font-size:10px;padding:6px 8px}.stat strong{font-size:27px}}
@media(max-width:380px){.photo-grid{grid-template-columns:1fr}.masonry{columns:1}.main-content{padding:12px}}
@media print{.no-print,.sidebar,.main-header,.sidebar-backdrop{display:none!important}.admin-shell{display:block}.main-content{padding:0}body{background:#fff}.card,.code-box{box-shadow:none}.print-sheet{display:grid!important}.print-card{break-inside:avoid}}
@media(max-width:640px){
  .table-wrap{overflow:visible;background:transparent;border:0;box-shadow:none}
  .table-wrap table{min-width:0;border-collapse:separate;border-spacing:0}
  .table-wrap thead{display:none}
  .table-wrap tbody,.table-wrap tr,.table-wrap td{display:block;width:100%}
  .table-wrap tbody tr{background:#fff;border:1px solid var(--line);border-radius:14px;margin-bottom:10px;box-shadow:var(--shadow);overflow:hidden}
  .table-wrap tbody td{display:grid;grid-template-columns:106px minmax(0,1fr);gap:10px;align-items:start;padding:10px 13px;border-bottom:1px solid #eef0f2;overflow-wrap:anywhere}
  .table-wrap tbody td:last-child{border-bottom:0}
  .table-wrap tbody td:before{content:attr(data-label);font-size:10px;line-height:1.4;text-transform:uppercase;letter-spacing:.05em;color:#8a909b;font-weight:750}
  .table-wrap tbody td.empty{display:block;padding:28px 14px;text-align:center}
  .table-wrap tbody td.empty:before{display:none}
  .table-wrap tbody td form{margin:0}
  .table-wrap tbody td .btn{width:max-content;max-width:100%}
}

/* PHOTO LIVE V4 guest delivery */
.gallery-page{background:#f4f5f7}.gallery-logo{max-width:190px;max-height:92px;object-fit:contain;margin-bottom:14px}.gallery-kicker{font-size:12px;letter-spacing:.12em;font-weight:800;color:rgba(255,255,255,.72)}.hero-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}.btn-light{background:rgba(255,255,255,.96);color:#111318;border-color:rgba(255,255,255,.7)}.gallery-livebar{position:sticky;top:8px;z-index:22;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.live-pill{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:850;letter-spacing:.06em;margin-right:8px}.live-pill i{width:8px;height:8px;border-radius:50%;background:#16a34a;box-shadow:0 0 0 4px rgba(22,163,74,.12)}.gallery-controls{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:10px;align-items:center;margin-bottom:10px}.gallery-search input{width:100%;height:43px;border:1px solid var(--line);border-radius:12px;padding:0 13px;background:#fff;outline:none}.gallery-search input:focus{border-color:#8a9099;box-shadow:0 0 0 3px rgba(17,19,24,.06)}.gallery-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.gallery-filters{display:flex;gap:7px;overflow-x:auto;padding:2px 0 12px;scrollbar-width:none}.gallery-filters::-webkit-scrollbar{display:none}.chip{border:1px solid var(--line);background:#fff;border-radius:999px;min-height:37px;padding:7px 13px;font-weight:720;white-space:nowrap;color:#555d68}.chip.active{background:#111318;color:#fff;border-color:#111318}.gallery-grid .gallery-item{position:relative}.image-open{display:block;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in;text-align:left}.image-open img{width:100%;display:block}.photo-overlay{position:absolute;left:0;right:0;bottom:0;padding:34px 10px 9px;background:linear-gradient(transparent,rgba(0,0,0,.68));display:flex;align-items:end;justify-content:space-between;gap:8px;color:#fff;opacity:0;transition:.18s}.gallery-item:hover .photo-overlay{opacity:1}.photo-overlay>span{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fav-btn{position:absolute;top:9px;right:9px;z-index:6;width:34px;height:34px;border:0;border-radius:50%;background:rgba(17,19,24,.74);color:#fff;font-size:20px;line-height:1;backdrop-filter:blur(8px);cursor:pointer}.fav-btn.active{background:#fff;color:#d21c45}.select-check{display:none;position:absolute;left:9px;top:9px;z-index:7}.gallery-item.selecting .select-check{display:block}.select-check input{width:22px;height:22px;accent-color:#111318}.gallery-watermark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-12deg);font-weight:850;font-size:clamp(12px,2.2vw,22px);letter-spacing:.08em;color:rgba(255,255,255,.58);text-shadow:0 1px 5px rgba(0,0,0,.4);pointer-events:none;white-space:nowrap}.new-arrival{animation:photoIn .45s ease}.new-photo-toast{position:fixed;left:50%;top:84px;transform:translateX(-50%);z-index:80;background:#111318;color:#fff;border-radius:999px;padding:9px 14px;font-weight:750;box-shadow:0 10px 32px rgba(0,0,0,.22)}@keyframes photoIn{from{opacity:0;transform:translateY(-12px) scale(.985)}to{opacity:1;transform:none}}.gallery-footer{text-align:center;padding:34px 10px 42px;color:var(--muted);font-size:12px}.gallery-modal{position:fixed;inset:0;z-index:120;background:rgba(9,11,15,.88);display:grid;place-items:center;padding:20px;backdrop-filter:blur(7px)}.gallery-modal[hidden]{display:none}.modal-close{position:fixed;right:18px;top:14px;border:0;background:rgba(255,255,255,.13);color:#fff;width:44px;height:44px;border-radius:999px;font-size:30px;line-height:1;cursor:pointer}.lightbox-inner{width:min(1180px,96vw);max-height:92vh;display:grid;grid-template-rows:minmax(0,1fr) auto;background:#fff;border-radius:18px;overflow:hidden}.lightbox-inner>img{width:100%;height:calc(92vh - 88px);object-fit:contain;background:#0c0e12}.lightbox-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px}.qr-public-card{background:#fff;width:min(430px,94vw);padding:26px;border-radius:20px;text-align:center;box-shadow:0 30px 80px rgba(0,0,0,.35)}.qr-public-card h2{margin:8px 0 16px}.qr-public-card #guestQr{display:flex;justify-content:center;margin:0 auto 14px}.modal-open{overflow:hidden}.btn.active{background:#111318;color:#fff}
@media(max-width:760px){.gallery-livebar{top:5px}.gallery-controls{grid-template-columns:1fr}.gallery-actions{justify-content:stretch}.gallery-actions .btn{flex:1}.photo-overlay{opacity:1;padding-top:26px}.photo-overlay>span{display:none}.lightbox-inner{width:100%;max-height:96vh;border-radius:14px}.lightbox-inner>img{height:calc(96vh - 142px)}.lightbox-bar{align-items:stretch;flex-direction:column}.lightbox-bar .toolbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0}.modal-close{right:10px;top:10px}.gallery-hero .inner{padding-bottom:6px}}
@media(max-width:480px){.public-gallery{padding:10px}.gallery-livebar{font-size:12px}.gallery-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:100%;align-items:stretch}.gallery-actions .btn,.gallery-actions .btn-primary{width:100%;min-width:0;min-height:38px;padding:7px 6px;font-size:11px;line-height:1.15;grid-column:auto}.fav-btn{width:31px;height:31px;font-size:18px}.qr-public-card{padding:20px 14px}.hero-actions .btn{flex:1}}@media(max-width:360px){.gallery-actions{gap:5px}.gallery-actions .btn,.gallery-actions .btn-primary{padding-left:4px;padding-right:4px;font-size:10px}}
.qr-screen{background:#111318;min-height:100vh}.qr-kiosk{min-height:100vh;display:grid;place-items:center;padding:24px}.qr-kiosk-card{width:min(560px,96vw);background:#fff;border-radius:26px;padding:34px;text-align:center;box-shadow:0 30px 90px rgba(0,0,0,.28)}.qr-kiosk-card h1{font-size:clamp(30px,5vw,48px);letter-spacing:-.04em;margin:8px 0}.qr-kiosk-card p{color:var(--muted);font-size:16px}.qr-kiosk-code{display:flex;justify-content:center;margin:22px auto}.qr-kiosk-logo{max-width:180px;max-height:80px;object-fit:contain;margin-bottom:10px}@media(max-width:520px){.qr-kiosk{padding:10px}.qr-kiosk-card{padding:24px 14px;border-radius:18px}.qr-kiosk-code canvas,.qr-kiosk-code img{max-width:82vw;height:auto!important}}@media print{.qr-screen{background:#fff}.qr-kiosk{min-height:auto;padding:0}.qr-kiosk-card{box-shadow:none;border:0;width:100%;padding:0}}
.delivery-grid{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(0,1.1fr);gap:16px;align-items:start}.check-row{display:flex;gap:9px;align-items:flex-start;padding:9px 0;font-weight:680}.check-row input{margin-top:3px}.secret-key{font:700 14px ui-monospace,SFMono-Regular,Consolas,monospace;word-break:break-all;margin:8px 0;background:#f7f8fa;border:1px solid var(--line);padding:11px;border-radius:10px}.retouch-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:16px}.code-sample{white-space:pre-wrap;overflow:auto;background:#111318;color:#f3f4f6;border-radius:12px;padding:14px;font:12px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace}@media(max-width:900px){.delivery-grid,.retouch-grid{grid-template-columns:1fr}}

/* PHOTO LIVE V5 multi-device */
.device-page{background:linear-gradient(180deg,#f8f9fb,#f1f3f6);min-height:100vh}.device-shell{width:min(780px,100%);margin:0 auto;padding:34px 18px}.device-shell.wide{width:min(1120px,100%)}.device-connect-card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:28px;box-shadow:0 20px 60px rgba(16,24,40,.07)}.device-brand{font-weight:900;letter-spacing:.08em}.device-brand small{display:block;font-size:10px;color:var(--muted);letter-spacing:.04em;margin-top:3px}.device-icon{width:56px;height:56px;border-radius:16px;background:#111318;color:#fff;display:grid;place-items:center;font-size:28px;margin:28px 0 16px}.device-connect-card h1{font-size:clamp(28px,5vw,42px);line-height:1.08;letter-spacing:-.04em;margin:0 0 10px}.device-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:22px}.device-choice{color:var(--text);min-height:142px;text-align:left;border:1px solid var(--line);border-radius:15px;background:#fff;padding:16px;display:flex;flex-direction:column;gap:8px;cursor:pointer}.device-choice:hover:not(.static){border-color:#aeb4bd;background:#fafbfc}.device-choice strong{font-size:15px}.device-choice span{font-size:12px;line-height:1.55;color:var(--muted)}.device-choice.static{cursor:default}.copy-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.device-help{margin-top:22px;padding:15px;border-radius:14px;background:#f7f8fa;border:1px solid var(--line)}.device-help p{margin:6px 0 0;color:var(--muted)}.device-topbar{height:68px;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 max(18px,calc((100vw - 1120px)/2 + 18px));position:sticky;top:0;z-index:40}.device-online{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.device-online i{width:8px;height:8px;border-radius:50%;background:#16a34a;box-shadow:0 0 0 4px rgba(22,163,74,.1)}.device-dashboard{display:grid;gap:15px}.device-event-card{background:#111318;color:#fff;border-radius:20px;padding:22px;display:flex;justify-content:space-between;gap:18px;align-items:center}.device-event-card h1{margin:4px 0 5px;font-size:27px;letter-spacing:-.035em}.device-event-card .muted{color:#aab0bb}.eyebrow{font-size:10px;font-weight:850;letter-spacing:.12em;color:#8a919d}.device-event-card .eyebrow{color:#9da4af}.device-event-actions{display:flex;gap:8px;flex-wrap:wrap}.device-mode-card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:16px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:22px;align-items:center}.segmented{display:flex;gap:4px;background:#eef0f3;border-radius:10px;padding:4px;margin-top:7px}.segmented button{border:0;background:transparent;border-radius:8px;padding:9px 13px;font-weight:760;cursor:pointer}.segmented button.active{background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.08)}.mode-help{color:var(--muted);font-size:13px}.device-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.device-stats>div{background:#fff;border:1px solid var(--line);border-radius:15px;padding:16px}.device-stats span{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.05em}.device-stats strong{display:block;font-size:28px;margin-top:4px}.device-actions-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.device-action{appearance:none;text-align:left;border:1px solid var(--line);border-radius:15px;background:#fff;padding:16px;min-height:118px;display:flex;flex-direction:column;gap:6px;cursor:pointer;color:var(--text)}.device-action.primary{background:#111318;color:#fff;border-color:#111318}.device-action strong{font-size:14px}.device-action span{font-size:11px;line-height:1.5;color:var(--muted)}.device-action.primary span{color:#b7bec8}.device-action.disabled{opacity:.45;cursor:not-allowed}.queue-card h2{font-size:18px}.device-file-list{display:grid;gap:8px}.device-file-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:9px;align-items:center;border:1px solid #eceef1;border-radius:12px;padding:10px 12px}.file-check input{width:20px;height:20px;accent-color:#111318}.file-main{min-width:0}.file-main strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-state{font-size:11px;font-weight:780;border-radius:999px;padding:5px 8px;background:#f1f2f4}.file-state.uploaded{background:#e9f7ee;color:#176b36}.file-state.failed{background:#fff0ef;color:#a3261c}.file-state.uploading{background:#eaf2ff;color:#175cd3}.device-log{min-height:88px}.device-log #statusText{font-weight:680;margin-top:4px}
@media(max-width:900px){.device-choice-grid{grid-template-columns:1fr}.device-actions-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.device-mode-card{grid-template-columns:1fr}.device-event-card{align-items:flex-start;flex-direction:column}.device-event-actions{width:100%}.device-event-actions .btn{flex:1}}
@media(max-width:600px){.device-shell{padding:16px 10px}.device-connect-card{padding:20px 15px;border-radius:18px}.device-topbar{height:62px;padding:0 14px}.device-actions-grid{grid-template-columns:1fr 1fr}.device-action{min-height:108px;padding:14px}.device-stats>div{padding:13px}.device-stats strong{font-size:24px}.copy-row{grid-template-columns:1fr}.device-file-row{grid-template-columns:30px minmax(0,1fr);}.file-state{grid-column:2}.queue-card .toolbar>div:last-child{width:100%;display:grid;grid-template-columns:1fr 1fr}.queue-card .toolbar>div:last-child .btn-primary{grid-column:1/-1}.device-event-card{padding:18px}.device-event-card h1{font-size:23px}}
@media(max-width:420px){.device-actions-grid{grid-template-columns:1fr}.device-stats{gap:7px}.device-stats span{font-size:9px}.device-stats strong{font-size:22px}.segmented button{padding:8px 10px;font-size:12px}}

/* PHOTO LIVE V5.2 Camera Hub */
.camera-flow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:14px 0}.camera-flow span{padding:10px 12px;border:1px solid #e5e7eb;border-radius:12px;background:#fff;font-weight:700}.camera-flow b{color:#6b7280}.secret-key{font:800 16px ui-monospace,SFMono-Regular,Menlo,monospace;word-break:break-all}
@media(max-width:700px){.camera-flow{display:grid;grid-template-columns:1fr;text-align:center}.camera-flow b{transform:rotate(90deg)}.pair-value{word-break:break-all}}

/* PHOTO LIVE V5.2.3 — compact, non-duplicated mobile gallery actions */
.plv-mobile-brand,.plv-mobile-event,.plv-mobile-fabs{display:none}
.plv-gallery-empty svg{display:none}

@media(max-width:760px){
  :root{--plv-mobile-accent:#2f7cf6}
  html,body,.gallery-page{background:#fff}
  .gallery-page{overflow-x:hidden}

  /* Banner: mobile keeps only PHOTO LIVE branding over the event cover. */
  .gallery-hero{min-height:168px;height:168px;padding:0;background-position:center!important;background-size:cover!important;display:grid;place-items:center}
  .gallery-hero:after{background:linear-gradient(180deg,rgba(255,255,255,.02),rgba(0,0,0,.08))}
  .gallery-hero>.inner{display:none}
  .plv-mobile-brand{display:flex;position:relative;z-index:2;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:18px;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.35)}
  .plv-mobile-brand img{width:min(230px,62vw);max-height:70px;object-fit:contain;filter:drop-shadow(0 3px 12px rgba(0,0,0,.22));margin-bottom:12px}
  .plv-mobile-brand strong{font-size:clamp(34px,10vw,54px);line-height:1;font-weight:900;letter-spacing:-.055em;margin-bottom:14px}
  .plv-mobile-brand span{font-size:13px;font-weight:600;letter-spacing:.005em;opacity:.96}

  /* Event information below banner, matching the reference hierarchy. */
  .plv-mobile-event{display:block;background:#fff;color:#202124;border-bottom:1px solid #f1f2f4}
  .plv-mobile-event-main{padding:22px 17px 0}
  .plv-mobile-event h1{margin:0 0 12px;font-size:24px;line-height:1.16;font-weight:900;letter-spacing:-.035em;text-transform:uppercase}
  .plv-mobile-metrics{display:flex;flex-direction:column;align-items:flex-start;gap:12px;color:#686d75}
  .plv-view-pill{display:inline-flex;align-items:center;gap:4px;background:#eef5ff;color:#66707e;border-radius:6px;padding:5px 9px;font-size:15px;line-height:1.2}
  .plv-view-pill strong{color:#2f7cf6;font-size:17px;font-weight:800}
  .plv-event-date{display:flex;align-items:center;gap:9px;font-size:15px}
  .plv-event-date svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .plv-mobile-description{margin-top:10px;color:#717780;font-size:13px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

  /* Live / Popular tabs and compact actions. */
  .plv-mobile-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:22px;min-height:58px}
  .plv-mobile-tabs{display:flex;align-items:stretch;gap:24px;min-width:0;height:58px}
  .plv-mobile-tabs button{position:relative;border:0;background:transparent;padding:0 0 12px;color:#646971;font-size:17px;font-weight:800;white-space:nowrap;cursor:pointer}
  .plv-mobile-tabs button.active{color:var(--plv-mobile-accent)}
  .plv-mobile-tabs button.active:after{content:"";position:absolute;left:50%;bottom:3px;transform:translateX(-50%);width:28px;height:4px;border-radius:999px;background:var(--plv-mobile-accent)}
  .plv-mobile-nav-actions{margin-left:auto;display:flex;align-items:center;gap:14px;padding-left:14px;position:relative}
  .plv-mobile-nav-actions:before{content:"";position:absolute;left:0;width:1px;height:28px;background:#dedfe2}
  .plv-mobile-nav-actions button{border:0;background:transparent;padding:5px;color:#666b72;display:grid;place-items:center;cursor:pointer}
  .plv-mobile-nav-actions svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

  /* Desktop live bar/actions collapse into the Piufoto-style mobile controls. */
  .public-gallery{max-width:none;padding:0 14px 130px;background:#fff}
  .gallery-livebar{display:none}
  .gallery-controls{display:none;margin:12px 0 8px;grid-template-columns:1fr}
  .gallery-actions{display:none!important}
  .gallery-filters{display:none;padding:3px 0 8px;margin:0}
  .gallery-page.mobile-tools-open .gallery-controls{display:grid;animation:plvToolsIn .18s ease both}
  .gallery-page.mobile-tools-open .gallery-filters{display:flex;animation:plvToolsIn .18s ease both}
  .gallery-search{padding-top:4px}
  .gallery-search input{height:46px;border-radius:12px;background:#f7f8fa;border-color:#e8eaed;font-size:14px;padding-left:14px}
  .chip{min-height:34px;padding:6px 12px;font-size:12px}
  @keyframes plvToolsIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}

  /* Clean photo surface. */
  .masonry.gallery-grid{columns:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin-top:13px}
  .masonry.gallery-grid .gallery-item{margin:0;border-radius:2px;box-shadow:none;background:#f2f3f5;aspect-ratio:1/1;overflow:hidden}
  .masonry.gallery-grid .image-open,.masonry.gallery-grid .image-open img{width:100%;height:100%}
  .masonry.gallery-grid .image-open img{object-fit:cover;transition:transform .2s ease}
  .masonry.gallery-grid .gallery-item:active img{transform:scale(.985)}
  .photo-overlay{display:none}
  .gallery-item .fav-btn{opacity:0;pointer-events:none;transition:.18s}
  .gallery-item .fav-btn.active{opacity:1;pointer-events:auto;background:rgba(255,255,255,.94);color:#ee3a5f}
  .gallery-item.selecting .fav-btn{display:none}
  .gallery-item.selecting .select-check{display:block;left:7px;top:7px}
  .select-check input{width:24px;height:24px;accent-color:var(--plv-mobile-accent)}
  .gallery-page.mobile-carousel-mode .masonry.gallery-grid{grid-template-columns:1fr;gap:10px}
  .gallery-page.mobile-carousel-mode .masonry.gallery-grid .gallery-item{aspect-ratio:auto;border-radius:8px}
  .gallery-page.mobile-carousel-mode .masonry.gallery-grid .image-open,.gallery-page.mobile-carousel-mode .masonry.gallery-grid .image-open img{height:auto}
  .gallery-page.mobile-carousel-mode .masonry.gallery-grid .image-open img{object-fit:contain;background:#f5f6f8}
  .gallery-page.mobile-dense-grid .masonry.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:3px}

  /* Empty state in the visual language of the reference. */
  .plv-gallery-empty{padding:74px 18px 42px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#c5c8cd;text-align:center;min-height:330px}
  .plv-gallery-empty svg{display:block;width:150px;height:auto;margin:0 auto 28px;fill:none;stroke:#cfd2d7;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
  .plv-gallery-empty strong{display:block;font-size:17px;font-weight:500;color:#c1c4c9}
  .plv-gallery-empty span{display:block;margin-top:4px;max-width:300px;font-size:14px;line-height:1.5;color:#d0d2d6}
  .gallery-footer{padding:48px 10px 76px;color:#9da2aa;font-size:10px}

  /* Compact quick actions: only unique functions, with visible labels. */
  .plv-mobile-fabs{display:flex;position:fixed;z-index:70;right:10px;bottom:max(82px,calc(env(safe-area-inset-bottom) + 72px));flex-direction:column;align-items:flex-end;gap:8px;transition:opacity .18s ease,transform .2s cubic-bezier(.2,.8,.2,1);will-change:opacity,transform}
  .plv-mobile-fabs.is-scrolling{opacity:0;transform:translateX(56px);pointer-events:none}
  .plv-fab-action{appearance:none;border:0;background:transparent;padding:0;display:flex;align-items:center;justify-content:flex-end;gap:7px;color:#4d535c;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .plv-fab-action:active .plv-fab-icon{transform:scale(.94)}
  .plv-fab-label{max-width:90px;padding:5px 8px;border-radius:8px;background:rgba(255,255,255,.94);border:1px solid rgba(229,231,235,.95);box-shadow:0 2px 8px rgba(31,41,55,.08);font-size:10px;font-weight:800;line-height:1.15;white-space:nowrap;color:#60656d;backdrop-filter:blur(8px)}
  .plv-fab-icon{position:relative;flex:0 0 auto;width:40px;height:40px;border-radius:50%;border:1px solid #e8eaed;background:rgba(255,255,255,.97);color:#2f7cf6;box-shadow:0 3px 10px rgba(31,41,55,.12);display:grid;place-items:center;transition:transform .14s ease,background .16s ease,border-color .16s ease;backdrop-filter:blur(10px)}
  .plv-fab-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .plv-fab-icon-accent{background:linear-gradient(180deg,#5c9eff,#2472ed);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(47,124,246,.24)}
  .plv-fab-action.active .plv-fab-icon{background:#edf4ff;border-color:#bfd6ff;box-shadow:0 3px 12px rgba(47,124,246,.17)}
  .plv-fab-action.active .plv-fab-icon-accent{background:linear-gradient(180deg,#347ff2,#195fcf);border-color:transparent;color:#fff}
  .plv-fab-action.active .plv-fab-label{color:#2563b8;border-color:#d7e5ff;background:rgba(244,248,255,.97)}
  .plv-fab-badge{position:absolute;right:-4px;top:-4px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:#111318;color:#fff;border:2px solid #fff;font-size:9px;font-weight:900;line-height:13px;text-align:center}
  .plv-fab-badge[hidden]{display:none}

  .new-photo-toast{top:16px;font-size:12px;padding:9px 13px}

  /* Mobile lightbox */
  .lightbox-inner{width:100%;max-height:96vh;border-radius:14px}
  .lightbox-inner>img{height:calc(96vh - 142px)}
  .lightbox-bar{align-items:stretch;flex-direction:column}
  .lightbox-bar .toolbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0}
  .modal-close{right:10px;top:10px}
}

@media(max-width:390px){
  .plv-mobile-event-main{padding-left:14px;padding-right:14px}
  .plv-mobile-tabs{gap:17px}.plv-mobile-tabs button{font-size:15px}
  .plv-mobile-nav-actions{gap:9px;padding-left:10px}.plv-mobile-nav-actions button{padding:4px}.plv-mobile-nav-actions svg{width:22px;height:22px}
  .plv-mobile-fabs{right:8px;gap:7px}.plv-fab-icon{width:38px;height:38px}.plv-fab-icon svg{width:19px;height:19px}.plv-fab-label{font-size:9px;padding:5px 7px}
}

/* PHOTO LIVE V5.2.4 — refined photo preview / lightbox */
.modal-close{z-index:126;display:grid;place-items:center;width:40px;height:40px;padding:0;background:rgba(18,21,27,.72);border:1px solid rgba(255,255,255,.18);box-shadow:0 5px 18px rgba(0,0,0,.2);backdrop-filter:blur(10px)}
.modal-close svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.25;stroke-linecap:round}
.lightbox-inner{width:min(1080px,96vw);height:min(92svh,900px);max-height:92svh;display:flex;flex-direction:column;background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 30px 90px rgba(0,0,0,.34)}
.lightbox-media{min-height:0;flex:1 1 auto;display:grid;place-items:center;overflow:hidden;background:#0d1015}
.lightbox-media>img{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;background:#0d1015}
.lightbox-bar{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 14px;background:#fff;border-top:1px solid #eceef2}
.lightbox-meta{min-width:0;display:flex;flex-direction:column;gap:2px}
.lightbox-meta strong{display:block;max-width:min(420px,35vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;line-height:1.25;color:#1a1d23}
.lightbox-meta span{font-size:10px;line-height:1.3;color:#8a9099}
.lightbox-actions{display:flex;align-items:center;gap:8px;margin-left:auto}
.lightbox-action{min-width:88px;min-height:42px;padding:7px 11px;border:1px solid #e1e4e9;border-radius:11px;background:#fff;color:#242830;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:11px;font-weight:780;line-height:1;text-align:center;cursor:pointer;transition:background .15s,border-color .15s,transform .15s,color .15s,box-shadow .15s;-webkit-tap-highlight-color:transparent}
.lightbox-action:active{transform:scale(.97)}
.lightbox-action svg{width:17px;height:17px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.lightbox-action.active{color:#cf244b;border-color:#f0bdc9;background:#fff7f9}
.lightbox-action.active svg{fill:currentColor}
.lightbox-action-primary{background:#15181e;color:#fff;border-color:#15181e;box-shadow:0 3px 10px rgba(17,19,24,.12)}
.lightbox-action-primary:hover{background:#252a32;border-color:#252a32}

@media(max-width:760px){
  .gallery-modal#lightbox{padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom));place-items:center}
  #lightbox .modal-close{position:fixed;right:18px;top:max(18px,calc(env(safe-area-inset-top) + 8px));width:36px;height:36px;background:rgba(25,28,34,.78);border-color:rgba(255,255,255,.16)}
  #lightbox .modal-close svg{width:18px;height:18px}
  .lightbox-inner{width:100%;height:min(92svh,760px);max-height:92svh;border-radius:16px}
  .lightbox-media{flex:1 1 auto;min-height:0}
  .lightbox-bar{display:block;padding:10px 10px 11px;border-top:0}
  .lightbox-meta{padding:0 4px 9px;gap:1px}
  .lightbox-meta strong{max-width:100%;font-size:12px}
  .lightbox-meta span{font-size:9px}
  .lightbox-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;width:100%;margin:0}
  .lightbox-action{min-width:0;min-height:52px;padding:6px 4px;border-radius:10px;flex-direction:column;gap:4px;font-size:9.5px;font-weight:800}
  .lightbox-action svg{width:18px;height:18px}
  .lightbox-action-primary{box-shadow:none}
  .modal-open .plv-mobile-fabs{opacity:0!important;pointer-events:none!important}
}

@media(max-width:390px){
  .gallery-modal#lightbox{padding-left:9px;padding-right:9px}
  .lightbox-inner{border-radius:14px}
  .lightbox-bar{padding-left:8px;padding-right:8px}
  .lightbox-actions{gap:6px}
  .lightbox-action{min-height:50px;font-size:9px}
}

/* PHOTO LIVE V5.2.6 — compact, orientation-aware desktop lightbox */
@media(min-width:761px){
  #lightbox.gallery-modal{padding:32px 54px;background:rgba(9,11,15,.86)}
  #lightbox .lightbox-inner{position:relative;width:min(860px,calc(100vw - 108px));height:min(78svh,720px);max-height:calc(100svh - 64px);border-radius:16px;box-shadow:0 28px 80px rgba(0,0,0,.38);transition:width .18s ease,height .18s ease}
  #lightbox .lightbox-inner.is-landscape{width:min(940px,calc(100vw - 108px));height:min(78svh,720px)}
  #lightbox .lightbox-inner.is-square{width:min(760px,calc(100vw - 108px));height:min(80svh,740px)}
  #lightbox .lightbox-inner.is-portrait{width:min(610px,calc(100vw - 108px));height:min(86svh,800px)}
  #lightbox .lightbox-media{background:#111419}
  #lightbox .lightbox-media>img{width:100%;height:100%;object-fit:contain;background:#111419}
  #lightbox .modal-close{position:absolute;right:12px;top:12px;width:34px;height:34px;background:rgba(17,20,25,.72);border-color:rgba(255,255,255,.2);box-shadow:0 4px 14px rgba(0,0,0,.22)}
  #lightbox .modal-close svg{width:17px;height:17px}
  #lightbox .lightbox-bar{min-height:62px;padding:10px 12px;gap:14px}
  #lightbox .lightbox-meta strong{max-width:320px;font-size:12px}
  #lightbox .lightbox-meta span{font-size:9px}
  #lightbox .lightbox-actions{gap:7px}
  #lightbox .lightbox-action{min-width:78px;min-height:38px;padding:6px 10px;border-radius:10px;font-size:10px;gap:6px}
  #lightbox .lightbox-action svg{width:15px;height:15px}
}

@media(min-width:761px) and (max-height:700px){
  #lightbox.gallery-modal{padding-top:22px;padding-bottom:22px}
  #lightbox .lightbox-inner,#lightbox .lightbox-inner.is-landscape,#lightbox .lightbox-inner.is-square,#lightbox .lightbox-inner.is-portrait{height:calc(100svh - 44px);max-height:calc(100svh - 44px)}
}

/* =========================================================
   PHOTO LIVE V6 PREVIEW — cohesive live-gallery experience
   ========================================================= */
.gallery-page{--plv-accent:#2f7cf6;background:#fff}
.gallery-page .gallery-hero{isolation:isolate}
.plv-hero-detail{display:none}
.lightbox-nav{display:none}

/* Desktop: calmer gallery surface and clearer hierarchy */
@media(min-width:901px){
  .gallery-page{background:#f3f4f6}
  .gallery-hero{min-height:360px;display:flex;align-items:flex-end;padding:80px 34px 58px}
  .gallery-hero .inner{width:min(1240px,100%)}
  .gallery-hero h1{font-size:clamp(38px,4.2vw,64px);max-width:900px}
  .public-gallery{padding:26px 24px 70px}
  .gallery-livebar,.gallery-controls,.gallery-filters{max-width:1240px;margin-left:auto;margin-right:auto}
  .masonry.gallery-grid{max-width:1240px;margin:18px auto 0;columns:4 250px;column-gap:10px}
  .masonry.gallery-grid .gallery-item{margin-bottom:10px;border-radius:9px;box-shadow:0 1px 2px rgba(0,0,0,.06)}
  .masonry.gallery-grid .gallery-item:hover{box-shadow:0 8px 26px rgba(0,0,0,.09)}
  #lightbox .lightbox-media{position:relative}
  #lightbox .lightbox-nav{display:grid;place-items:center;position:absolute;z-index:4;top:50%;transform:translateY(-50%);width:42px;height:42px;border:0;border-radius:999px;background:rgba(15,18,23,.62);color:#fff;cursor:pointer;backdrop-filter:blur(8px);opacity:.82;transition:.16s}
  #lightbox .lightbox-nav:hover{opacity:1;background:rgba(15,18,23,.82)}
  #lightbox .lightbox-nav svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
  #lightbox .lightbox-prev{left:14px}#lightbox .lightbox-next{right:14px}
}

/* Mobile/tablet gallery inspired by the supplied reference */
@media(max-width:900px){
  html,body.gallery-page{background:#fff}
  body.gallery-page{overflow-x:hidden}
  .gallery-hero{height:294px;min-height:294px;padding:0!important;border:0;background-position:center!important;background-size:cover!important;display:grid!important;place-items:center}
  .gallery-hero:before{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.03) 55%,rgba(0,0,0,.08))}
  .gallery-hero:after{display:none}
  .gallery-hero>.inner{display:none!important}
  .plv-mobile-brand{display:flex!important;position:relative;z-index:2;align-items:center;justify-content:center;flex-direction:column;text-align:center;width:100%;padding:26px 22px;color:#fff;text-shadow:0 2px 16px rgba(0,0,0,.28)}
  .plv-mobile-brand img{width:min(260px,68vw);max-height:82px;object-fit:contain;margin:0 0 17px;filter:drop-shadow(0 5px 18px rgba(0,0,0,.18))}
  .plv-mobile-brand strong{font-size:clamp(38px,11vw,58px);font-weight:900;line-height:.95;letter-spacing:-.055em;margin:0 0 18px}
  .plv-mobile-brand span{max-width:330px;font-size:14px;line-height:1.45;font-weight:600;opacity:.97}
  .plv-hero-detail{display:inline-flex;position:absolute;z-index:4;right:0;top:max(18px,env(safe-area-inset-top));align-items:center;gap:6px;border:0;border-radius:999px 0 0 999px;padding:9px 13px 9px 16px;background:rgba(30,34,40,.42);color:#fff;font-size:11px;font-weight:750;backdrop-filter:blur(10px);cursor:pointer}
  .plv-hero-detail span{font-size:15px;line-height:1}

  .plv-mobile-event{display:block!important;background:#fff;border:0;color:#1f2329;scroll-margin-top:2px}
  .plv-mobile-event-main{padding:30px 18px 0}
  .plv-mobile-event h1{margin:0 0 14px;font-size:25px;line-height:1.12;font-weight:900;letter-spacing:-.035em;text-transform:uppercase}
  .plv-mobile-metrics{display:flex;flex-direction:column;align-items:flex-start;gap:16px;color:#6c7179}
  .plv-view-pill{display:inline-flex;align-items:baseline;gap:4px;padding:6px 10px;border-radius:7px;background:#eef5ff;color:#727985;font-size:15px}
  .plv-view-pill strong{font-size:18px;color:#2778eb}
  .plv-event-date{display:flex;align-items:center;gap:10px;font-size:15px;color:#626870}
  .plv-event-date svg{width:21px;height:21px}
  .plv-mobile-description{margin-top:13px;max-width:520px;color:#797f87;font-size:13px;line-height:1.55}

  .plv-mobile-nav{position:sticky;top:0;z-index:54;display:flex;align-items:center;justify-content:space-between;gap:8px;margin:27px -18px 0;padding:0 18px;min-height:66px;background:rgba(255,255,255,.95);border-bottom:1px solid #f0f1f3;backdrop-filter:blur(14px)}
  .plv-mobile-tabs{height:66px;display:flex;align-items:stretch;gap:25px;min-width:0}
  .plv-mobile-tabs button{position:relative;border:0;background:transparent;padding:2px 0 13px;color:#676c74;font-size:17px;font-weight:800;white-space:nowrap}
  .plv-mobile-tabs button.active{color:#2778eb}
  .plv-mobile-tabs button.active:after{content:"";position:absolute;left:50%;bottom:5px;transform:translateX(-50%);width:28px;height:4px;border-radius:99px;background:#2778eb}
  .plv-mobile-nav-actions{display:flex;align-items:center;gap:11px;padding-left:13px;position:relative}
  .plv-mobile-nav-actions:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:1px;height:28px;background:#dedfe3}
  .plv-mobile-nav-actions button{border:0;background:none;padding:6px;color:#62676f;display:grid;place-items:center}
  .plv-mobile-nav-actions svg{width:23px;height:23px}

  .public-gallery{max-width:none;padding:0 0 140px;background:#fff}
  .gallery-livebar{display:none!important}
  .gallery-controls{display:none;margin:12px 14px 5px;grid-template-columns:1fr}
  .gallery-actions{display:none!important}
  .gallery-filters{display:none;margin:0 14px 9px;padding:2px 0;overflow:auto;scrollbar-width:none}
  .gallery-filters::-webkit-scrollbar{display:none}
  .gallery-page.mobile-tools-open .gallery-controls{display:grid;animation:plvV6Drop .18s ease both}
  .gallery-page.mobile-tools-open .gallery-filters{display:flex;animation:plvV6Drop .18s ease both}
  .gallery-search{padding-top:5px}
  .gallery-search input{height:44px;border-radius:10px;background:#f6f7f8;border:1px solid #e7e9ec;padding:0 13px;font-size:13px}
  @keyframes plvV6Drop{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}

  .masonry.gallery-grid{columns:auto!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;margin:3px 0 0;padding:0}
  .masonry.gallery-grid .gallery-item{width:100%;margin:0!important;border-radius:0;box-shadow:none;background:#eef0f2;aspect-ratio:1/1;overflow:hidden}
  .masonry.gallery-grid .image-open,.masonry.gallery-grid .image-open img{display:block;width:100%;height:100%}
  .masonry.gallery-grid .image-open img{object-fit:cover;background:#f0f1f3;transition:transform .18s ease}
  .masonry.gallery-grid .gallery-item:active .image-open img{transform:scale(.985)}
  .photo-overlay{display:none!important}
  .gallery-item .fav-btn{display:none!important}
  .gallery-item.selecting .select-check{display:block;left:7px;top:7px;z-index:4}
  .select-check input{width:24px;height:24px;accent-color:#2778eb}
  .gallery-page.mobile-carousel-mode .masonry.gallery-grid{grid-template-columns:1fr;gap:8px;padding:8px}
  .gallery-page.mobile-carousel-mode .masonry.gallery-grid .gallery-item{aspect-ratio:auto;border-radius:8px}
  .gallery-page.mobile-carousel-mode .masonry.gallery-grid .image-open,.gallery-page.mobile-carousel-mode .masonry.gallery-grid .image-open img{height:auto}
  .gallery-page.mobile-carousel-mode .masonry.gallery-grid .image-open img{object-fit:contain;background:#f5f6f7}
  .gallery-page.mobile-dense-grid .masonry.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:2px}

  .plv-gallery-empty{min-height:390px;padding:82px 18px 52px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center;color:#c8cbd0}
  .plv-gallery-empty svg{width:145px;margin:0 0 30px;stroke:#cfd2d7}
  .plv-gallery-empty strong{font-size:17px;font-weight:500;color:#c3c6cb}
  .plv-gallery-empty span{max-width:330px;margin-top:4px;font-size:14px;line-height:1.45;color:#d0d2d6}
  .gallery-footer{padding:56px 12px 84px;text-align:center;color:#a0a5ad;font-size:10px}

  .plv-mobile-fabs{display:flex!important;position:fixed;z-index:70;right:12px;top:55svh;bottom:auto;transform:translateY(-18%);flex-direction:column;align-items:flex-end;gap:9px;transition:opacity .18s ease,transform .22s cubic-bezier(.2,.8,.2,1)}
  .plv-mobile-fabs.is-scrolling{opacity:0;transform:translate(48px,-18%);pointer-events:none}
  .plv-fab-action{display:flex;align-items:center;gap:6px;border:0;background:transparent;padding:0;color:#555b64}
  .plv-fab-label{padding:4px 7px;border:1px solid rgba(226,229,234,.9);border-radius:7px;background:rgba(255,255,255,.94);box-shadow:0 2px 8px rgba(0,0,0,.07);font-size:9px;font-weight:800;line-height:1;white-space:nowrap;color:#666b73;backdrop-filter:blur(8px)}
  .plv-fab-icon{width:39px;height:39px;border-radius:50%;border:1px solid #e6e8eb;background:rgba(255,255,255,.97);box-shadow:0 4px 12px rgba(0,0,0,.11);color:#2778eb;display:grid;place-items:center}
  .plv-fab-icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8}
  .plv-fab-icon-accent{background:linear-gradient(180deg,#4d94ff,#216fe4);color:#fff;border-color:transparent;box-shadow:0 5px 14px rgba(39,120,235,.25)}
  .plv-fab-action.active .plv-fab-label{color:#1f67c9;background:#f5f9ff;border-color:#d6e6ff}
  .plv-fab-action.active .plv-fab-icon{background:#edf5ff;border-color:#c7dcfb}
  .plv-fab-action.active .plv-fab-icon-accent{color:#fff;background:linear-gradient(180deg,#327fe9,#185fc9);border-color:transparent}
  .plv-fab-badge{right:-4px;top:-4px;min-width:16px;height:16px;padding:0 4px;font-size:8px;line-height:12px}

  /* Immersive V6 mobile lightbox */
  #lightbox.gallery-modal{padding:0;background:#080a0d;place-items:stretch}
  #lightbox .lightbox-inner,#lightbox .lightbox-inner.is-landscape,#lightbox .lightbox-inner.is-square,#lightbox .lightbox-inner.is-portrait{width:100vw;height:100svh;max-width:none;max-height:none;border-radius:0;background:#080a0d;box-shadow:none}
  #lightbox .lightbox-media{position:relative;flex:1 1 auto;background:#080a0d;min-height:0}
  #lightbox .lightbox-media>img{width:100%;height:100%;object-fit:contain;background:#080a0d}
  #lightbox .modal-close{position:fixed;z-index:130;right:12px;top:max(12px,env(safe-area-inset-top));width:36px;height:36px;border-radius:50%;background:rgba(30,34,40,.65);border:1px solid rgba(255,255,255,.12);box-shadow:none}
  #lightbox .lightbox-nav{display:grid;place-items:center;position:absolute;z-index:4;top:50%;transform:translateY(-50%);width:34px;height:52px;border:0;background:transparent;color:rgba(255,255,255,.66)}
  #lightbox .lightbox-nav svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
  #lightbox .lightbox-prev{left:2px}#lightbox .lightbox-next{right:2px}
  #lightbox .lightbox-bar{display:block;flex:0 0 auto;padding:10px 10px max(10px,env(safe-area-inset-bottom));background:#fff;border:0}
  #lightbox .lightbox-meta{padding:0 4px 8px;gap:1px}
  #lightbox .lightbox-meta strong{max-width:100%;font-size:12px;color:#1d2026}
  #lightbox .lightbox-meta span{font-size:9px;color:#90959d}
  #lightbox .lightbox-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;width:100%;margin:0}
  #lightbox .lightbox-action{min-width:0;min-height:48px;padding:5px 4px;border-radius:10px;flex-direction:column;gap:3px;font-size:9px;font-weight:800}
  #lightbox .lightbox-action svg{width:17px;height:17px}
  .modal-open .plv-mobile-fabs{opacity:0!important;pointer-events:none!important}
}

@media(max-width:390px){
  .gallery-hero{height:270px;min-height:270px}
  .plv-mobile-event-main{padding-left:15px;padding-right:15px}
  .plv-mobile-nav{margin-left:-15px;margin-right:-15px;padding-left:15px;padding-right:15px}
  .plv-mobile-tabs{gap:18px}.plv-mobile-tabs button{font-size:15.5px}
  .plv-mobile-nav-actions{gap:7px;padding-left:10px}.plv-mobile-nav-actions button{padding:5px}.plv-mobile-nav-actions svg{width:21px;height:21px}
  .plv-mobile-fabs{right:8px}.plv-fab-icon{width:37px;height:37px}.plv-fab-label{font-size:8.5px}
}


/* V6.0.1 sticky bottom mobile actions */
@media (max-width: 900px){
  .plv-hero-detail{display:none !important;}
  .plv-mobile-fabs{
    top:auto !important;
    bottom:max(12px, calc(env(safe-area-inset-bottom) + 10px)) !important;
    right:10px !important;
    transform:none !important;
    gap:8px !important;
    align-items:flex-end !important;
  }
  .plv-mobile-fabs.is-scrolling{
    opacity:1 !important;
    transform:none !important;
    pointer-events:auto !important;
  }
  .plv-fab-action{gap:6px !important;}
  .plv-fab-label{
    font-size:9px !important;
    padding:5px 8px !important;
    border-radius:8px !important;
    background:rgba(255,255,255,.96) !important;
    box-shadow:0 2px 10px rgba(0,0,0,.08) !important;
  }
  .plv-fab-icon{
    width:40px !important;
    height:40px !important;
    box-shadow:0 4px 14px rgba(0,0,0,.12) !important;
  }
}
@media (max-width: 390px){
  .plv-mobile-fabs{
    bottom:max(10px, calc(env(safe-area-inset-bottom) + 8px)) !important;
    right:8px !important;
  }
  .plv-fab-icon{width:38px !important;height:38px !important;}
}


/* V6.0.2 — sticky mobile header + auto-hiding bottom quick actions */
@media (max-width:900px){
  /* The PHOTO LIVE hero stays pinned at the top. It becomes compact after scrolling
     so it does not cover too much of the gallery. */
  .gallery-page .gallery-hero{
    position:sticky !important;
    top:0 !important;
    z-index:58 !important;
    height:270px !important;
    min-height:270px !important;
    transition:height .22s ease,min-height .22s ease,box-shadow .22s ease !important;
    box-shadow:none;
  }
  .gallery-page .plv-mobile-brand{
    transition:padding .22s ease,transform .22s ease !important;
  }
  .gallery-page .plv-mobile-brand img{
    transition:width .22s ease,max-height .22s ease,margin .22s ease !important;
  }
  .gallery-page .plv-mobile-brand strong,
  .gallery-page .plv-mobile-brand span{
    transition:font-size .22s ease,margin .22s ease,opacity .18s ease !important;
  }
  .gallery-page.header-is-stuck .gallery-hero{
    height:88px !important;
    min-height:88px !important;
    box-shadow:0 5px 18px rgba(0,0,0,.16) !important;
  }
  .gallery-page.header-is-stuck .plv-mobile-brand{
    padding:9px 16px !important;
  }
  .gallery-page.header-is-stuck .plv-mobile-brand img{
    width:min(170px,52vw) !important;
    max-height:46px !important;
    margin:0 !important;
  }
  .gallery-page.header-is-stuck .plv-mobile-brand strong{
    font-size:32px !important;
    margin:0 !important;
  }
  .gallery-page.header-is-stuck .plv-mobile-brand span{
    display:none !important;
  }

  /* Tabs/toolbar remain below the compact pinned hero. */
  .gallery-page .plv-mobile-nav{
    top:88px !important;
    z-index:55 !important;
  }

  /* Quick actions stay anchored near the bottom-right, but disappear while scrolling. */
  .gallery-page .plv-mobile-fabs{
    position:fixed !important;
    top:auto !important;
    right:10px !important;
    bottom:max(12px,calc(env(safe-area-inset-bottom) + 10px)) !important;
    transform:none !important;
    opacity:1 !important;
    pointer-events:auto !important;
    transition:opacity .18s ease,transform .2s cubic-bezier(.2,.8,.2,1) !important;
  }
  .gallery-page .plv-mobile-fabs.is-scrolling{
    opacity:0 !important;
    transform:translateX(48px) !important;
    pointer-events:none !important;
  }
}
@media (max-width:390px){
  .gallery-page .gallery-hero{height:250px !important;min-height:250px !important;}
  .gallery-page.header-is-stuck .gallery-hero{height:82px !important;min-height:82px !important;}
  .gallery-page.header-is-stuck .plv-mobile-brand img{width:min(155px,50vw) !important;max-height:42px !important;}
  .gallery-page .plv-mobile-nav{top:82px !important;}
  .gallery-page .plv-mobile-fabs{right:8px !important;bottom:max(10px,calc(env(safe-area-inset-bottom) + 8px)) !important;}
}


/* V6.0.3 — full-size opaque sticky mobile hero */
@media (max-width:900px){
  .gallery-page .gallery-hero,
  .gallery-page.header-is-stuck .gallery-hero{
    position:sticky !important;
    top:0 !important;
    z-index:58 !important;
    width:100% !important;
    height:142px !important;
    min-height:142px !important;
    padding:0 !important;
    overflow:hidden !important;
    opacity:1 !important;
    isolation:isolate !important;
    background-color:#b9b9b9 !important;
    background-blend-mode:normal !important;
    box-shadow:0 2px 10px rgba(0,0,0,.14) !important;
    transition:none !important;
  }
  .gallery-page .gallery-hero::before,
  .gallery-page.header-is-stuck .gallery-hero::before{
    content:"" !important;
    position:absolute !important;
    inset:0 !important;
    z-index:0 !important;
    background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(0,0,0,.07)) !important;
    opacity:1 !important;
    pointer-events:none !important;
  }
  .gallery-page .gallery-hero::after,
  .gallery-page.header-is-stuck .gallery-hero::after{
    display:none !important;
  }
  .gallery-page .plv-mobile-brand,
  .gallery-page.header-is-stuck .plv-mobile-brand{
    display:flex !important;
    position:relative !important;
    z-index:2 !important;
    width:100% !important;
    height:100% !important;
    padding:14px 18px 13px !important;
    align-items:center !important;
    justify-content:center !important;
    flex-direction:column !important;
    transform:none !important;
    opacity:1 !important;
    transition:none !important;
  }
  .gallery-page .plv-mobile-brand img,
  .gallery-page.header-is-stuck .plv-mobile-brand img{
    width:min(330px,88vw) !important;
    max-width:100% !important;
    max-height:72px !important;
    margin:0 0 9px !important;
    object-fit:contain !important;
    opacity:1 !important;
    transition:none !important;
  }
  .gallery-page .plv-mobile-brand strong,
  .gallery-page.header-is-stuck .plv-mobile-brand strong{
    font-size:clamp(34px,10vw,48px) !important;
    line-height:1 !important;
    margin:0 0 10px !important;
    opacity:1 !important;
    transition:none !important;
  }
  .gallery-page .plv-mobile-brand span,
  .gallery-page.header-is-stuck .plv-mobile-brand span{
    display:block !important;
    max-width:94% !important;
    font-size:13px !important;
    line-height:1.25 !important;
    font-weight:700 !important;
    opacity:1 !important;
    transition:none !important;
  }
  .gallery-page .plv-mobile-nav,
  .gallery-page.header-is-stuck .plv-mobile-nav{
    top:142px !important;
  }
}
@media (max-width:390px){
  .gallery-page .gallery-hero,
  .gallery-page.header-is-stuck .gallery-hero{
    height:138px !important;
    min-height:138px !important;
  }
  .gallery-page .plv-mobile-brand img,
  .gallery-page.header-is-stuck .plv-mobile-brand img{
    width:min(315px,88vw) !important;
    max-height:68px !important;
  }
  .gallery-page .plv-mobile-nav,
  .gallery-page.header-is-stuck .plv-mobile-nav{
    top:138px !important;
  }
}


/* V6.0.4 — compact balanced sticky hero */
@media (max-width:900px){
  .gallery-page .gallery-hero,
  .gallery-page.header-is-stuck .gallery-hero{
    height:104px !important;
    min-height:104px !important;
    background-color:#b9b9b9 !important;
    opacity:1 !important;
  }
  .gallery-page .plv-mobile-brand,
  .gallery-page.header-is-stuck .plv-mobile-brand{
    padding:7px 14px 8px !important;
    justify-content:center !important;
    gap:0 !important;
  }
  .gallery-page .plv-mobile-brand img,
  .gallery-page.header-is-stuck .plv-mobile-brand img{
    width:min(300px,82vw) !important;
    max-height:52px !important;
    margin:0 0 3px !important;
  }
  .gallery-page .plv-mobile-brand strong,
  .gallery-page.header-is-stuck .plv-mobile-brand strong{
    font-size:clamp(30px,9vw,42px) !important;
    line-height:.96 !important;
    margin:0 0 4px !important;
  }
  .gallery-page .plv-mobile-brand span,
  .gallery-page.header-is-stuck .plv-mobile-brand span{
    max-width:96% !important;
    font-size:12px !important;
    line-height:1.15 !important;
    margin:0 !important;
  }
  .gallery-page .plv-mobile-nav,
  .gallery-page.header-is-stuck .plv-mobile-nav{
    top:104px !important;
  }
}
@media (max-width:390px){
  .gallery-page .gallery-hero,
  .gallery-page.header-is-stuck .gallery-hero{
    height:100px !important;
    min-height:100px !important;
  }
  .gallery-page .plv-mobile-brand,
  .gallery-page.header-is-stuck .plv-mobile-brand{
    padding:6px 12px 7px !important;
  }
  .gallery-page .plv-mobile-brand img,
  .gallery-page.header-is-stuck .plv-mobile-brand img{
    width:min(285px,80vw) !important;
    max-height:49px !important;
    margin-bottom:2px !important;
  }
  .gallery-page .plv-mobile-brand span,
  .gallery-page.header-is-stuck .plv-mobile-brand span{
    font-size:11.5px !important;
  }
  .gallery-page .plv-mobile-nav,
  .gallery-page.header-is-stuck .plv-mobile-nav{
    top:100px !important;
  }
}
