*{box-sizing:border-box}[hidden]{display:none!important}
:root{--bg:#09090a;--panel:#121214;--panel2:#18181b;--line:#2b2b31;--text:#f4f4f2;--muted:#929298;--red:#ff3b4d;--green:#aee8ba}
html,body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
body{min-height:100dvh}button,input,select{font:inherit}button{cursor:pointer}a{text-decoration:none}
.raf-logo{display:block;height:auto!important;object-fit:contain}
.login-logo{width:190px;max-width:62vw}
.top-logo{width:116px;max-width:34vw}
.sidebar-logo{width:150px;max-width:100%}
.footer-logo{width:140px;margin:auto}
.eyebrow{font-size:10px;letter-spacing:.2em;font-weight:800;color:#aaa;margin:0 0 10px}.muted{color:var(--muted);line-height:1.5}.error{color:#ff9b9b}
.primary,.ghost,.danger,.seg,.lb-btn{border:0;border-radius:12px;padding:12px 15px;font-weight:750}
.primary{background:#f5f5f2;color:#0b0b0c}.ghost{background:#18181b;color:#eee;border:1px solid #34343a}.danger{background:#3c191d;color:#ffd2d7;border:1px solid #71343b}
input,select{width:100%;background:#0e0e10;border:1px solid #34343a;color:#fff;border-radius:12px;padding:13px 14px;outline:none}input:focus,select:focus{border-color:#72727a}
.notice{padding:12px 14px;border-radius:12px;border:1px solid #38383e;background:#17171a;color:#ccc;margin:12px 0}.notice.ok{color:#bcefc6;border-color:#315a3c}.notice.error,.error-box{color:#ffb4b4;border-color:#68363b}
.toast{position:fixed;z-index:999;left:50%;bottom:22px;transform:translateX(-50%);background:#f4f4f1;color:#111;padding:11px 17px;border-radius:999px;font-weight:750;box-shadow:0 16px 48px #0009}

/* login */
.lock-screen{min-height:100dvh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 10%,#29292e,#111113 37%,#09090a 72%)}
.lock-card{width:min(460px,100%);padding:42px;border:1px solid #2e2e33;border-radius:26px;background:#111113;box-shadow:0 35px 100px #0008}.lock-card h1{font-size:44px;line-height:1;letter-spacing:-.05em;margin:24px 0 8px}.lock-card form{display:grid;gap:12px;margin-top:26px}

/* client */
.client-topbar{position:absolute;z-index:30;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:14px clamp(14px,4vw,52px);background:linear-gradient(#070708d5,transparent)}
.top-actions{display:flex;gap:8px}.client-hero{position:relative;min-height:330px;padding-top:90px;background:#151517 center/cover no-repeat;display:flex;align-items:flex-end}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,#0003,#0000 40%,#09090be9)}
.hero-content{position:relative;z-index:2;width:min(1450px,100%);margin:auto;padding:0 clamp(18px,5vw,72px) 42px}.hero-content h1{font-size:clamp(48px,6vw,82px);line-height:.92;letter-spacing:-.055em;margin:0}.hero-content>p:not(.eyebrow){font-size:18px;color:#d0d0d4}.hero-meta{display:flex;gap:16px;color:#9999a0;font-size:13px}
.client-controls{position:sticky;top:0;z-index:25;display:flex;justify-content:space-between;align-items:center;padding:13px clamp(12px,4vw,54px);background:#0b0b0def;border-bottom:1px solid #242428;backdrop-filter:blur(14px)}
.segments{display:flex;background:#151517;border:1px solid #2a2a2f;border-radius:12px;padding:4px}.seg{background:transparent;color:#999;padding:8px 13px}.seg.active{background:#f3f3f0;color:#111}.selection-count{color:#999}.selection-count strong{color:#fff}
.select-progress{max-width:1450px;margin:14px auto 0;padding:0 clamp(12px,4vw,54px)}.progress-track{height:6px;background:#222226;border-radius:999px;overflow:hidden}.progress-bar{height:100%;width:0;background:#f2f2ef;transition:width .2s}.select-progress small{display:block;text-align:right;color:#85858c;margin-top:7px}
.loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:50px;color:#8e8e95}.spinner{width:20px;height:20px;border:2px solid #333;border-top-color:#eee;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.photo-grid{columns:4 270px;column-gap:10px;padding:16px max(10px,calc((100vw - 1500px)/2)) 70px}.photo-card{position:relative;isolation:isolate;break-inside:avoid;margin-bottom:10px;border-radius:9px;overflow:hidden;background:#151518}
.photo-skeleton{position:absolute;inset:0;z-index:0;pointer-events:none;min-height:180px;background:linear-gradient(100deg,#151518 30%,#222226 45%,#151518 60%);background-size:200% 100%;animation:skeleton 1.2s linear infinite;transition:opacity .18s}@keyframes skeleton{to{background-position:-200% 0}}
.photo-card.is-loaded .photo-skeleton{opacity:0;visibility:hidden}.photo-card img{display:block;width:100%;height:auto;min-height:120px;position:relative;z-index:1;opacity:0;transition:opacity .2s,transform .2s}.photo-card img.loaded{opacity:1}.photo-card:hover img{transform:scale(1.008)}
.photo-fav{position:absolute!important;z-index:20!important;top:9px;right:9px;width:42px;height:42px;padding:0;border-radius:999px;border:1px solid #ffffff3d;background:#09090bbc;color:#fff;font-size:21px;pointer-events:auto!important;touch-action:manipulation}.photo-fav.active{color:var(--red)!important;border-color:#ff3b4dc9!important;background:#09090bd8!important;box-shadow:0 0 0 1px #ff3b4d20}
.client-footer{text-align:center;padding:45px 20px 65px;border-top:1px solid #202024}

/* lightbox */
.lightbox{position:fixed;inset:0;z-index:100;background:#050506;display:grid;grid-template-rows:58px 1fr}.lightbox-top{display:flex;align-items:center;justify-content:space-between;padding:8px 12px 8px 20px;border-bottom:1px solid #1b1b1f;color:#aaa}.lightbox-actions{display:flex;gap:7px}.lb-btn{display:grid;place-items:center;width:42px;height:42px;padding:0;background:#151518;color:#fff;border:1px solid #303036;font-size:20px}.lb-btn.active{color:var(--red);border-color:#ff3b4dc9}.lightbox-stage{display:grid;place-items:center;padding:10px 70px 20px}.lightbox-stage img{max-width:100%;max-height:calc(100dvh - 90px);object-fit:contain}.lb-arrow{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:70px;border-radius:14px;border:1px solid #303036;background:#111114c8;color:#fff;font-size:38px}.lb-left{left:12px}.lb-right{right:12px}

/* admin */
.sidebar{position:fixed;left:0;top:0;bottom:0;width:230px;display:flex;flex-direction:column;justify-content:space-between;padding:28px 18px 18px;border-right:1px solid #242428;background:#09090a}.sidebar small,.side-bottom{color:#777}.side-bottom{display:grid;gap:10px}.admin-main{margin-left:230px;min-height:100dvh;padding:42px clamp(24px,4vw,60px) 80px}
.admin-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px}.admin-head h1{font-size:clamp(42px,5vw,72px);letter-spacing:-.05em;margin:0}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:34px 0}.stats article{background:#121214;border:1px solid #2a2a2f;border-radius:16px;padding:18px}.stats span{display:block;color:#8e8e94;font-size:12px}.stats strong{display:block;font-size:32px;margin-top:6px}
.toolbar{display:grid;grid-template-columns:1fr 220px;gap:10px;margin-bottom:18px}.gallery-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.gallery-card{background:#121214;border:1px solid #29292e;border-radius:18px;overflow:hidden}
.gallery-cover{height:180px;background:#19191c center/cover no-repeat;position:relative}.gallery-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent,#121214)}.gallery-status{position:absolute;z-index:2;top:12px;left:12px;padding:6px 9px;border-radius:999px;background:#121214df;border:1px solid #39393f;font-size:11px;font-weight:750}.gallery-status.off{background:#371a1d;color:#ffc3c3;border-color:#663338}
.gallery-body{padding:18px}.gallery-body h3{font-size:24px;margin:0 0 6px}.gallery-meta{display:flex;gap:12px;flex-wrap:wrap;color:#8f8f96;font-size:12px}.gallery-link{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:15px}.gallery-link input{font-size:11px}.gallery-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.gallery-actions button,.gallery-actions a{font-size:12px;padding:9px 11px}
.dialog{width:min(760px,calc(100% - 24px));max-height:90dvh;overflow:auto;border:1px solid #34343a;border-radius:24px;background:#121214;color:#f4f4f2;padding:26px}.dialog::backdrop{background:#000c;backdrop-filter:blur(4px)}.dialog.small{width:min(500px,calc(100% - 24px))}.dialog.wide{width:min(920px,calc(100% - 24px))}.dialog.xl{width:min(1180px,calc(100% - 24px))}
.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.dialog h2{font-size:32px;letter-spacing:-.04em;margin:0 0 12px}.close-btn{width:42px;height:42px;padding:0;font-size:20px}.dialog label{display:grid;gap:7px;margin:14px 0;color:#bbb;font-size:13px}.form2,.form3{display:grid;gap:12px}.form2{grid-template-columns:1fr 1fr}.form3{grid-template-columns:1fr 1fr 1fr}.check{display:flex!important;align-items:center;gap:9px!important;padding:14px;border:1px solid #2d2d31;border-radius:12px}.check input{width:auto}
.actions{display:flex;align-items:center;gap:9px;margin-top:22px}.actions.right{justify-content:flex-end}.actions.equal>*{flex:1}.spacer{flex:1}.success{width:58px;height:58px;border-radius:999px;display:grid;place-items:center;background:#1d3a25;color:#bff0c9;font-size:28px;margin-bottom:18px}.copy{display:grid;grid-template-columns:1fr auto;gap:8px}
.drop{border:1px dashed #4a4a52!important;border-radius:18px!important;padding:42px 20px!important;text-align:center;cursor:pointer;background:#0e0e10}.drop>*{display:block;margin:5px auto}.drop b{font-size:40px}.drop span,.drop small{color:#8e8e95}.upload-meta{display:flex;justify-content:space-between;color:#929299;margin:13px 0}
.photo-manager{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.pm-item{background:#19191c;border:1px solid #29292e;border-radius:12px;overflow:hidden}.pm-thumb{aspect-ratio:4/3;background:#222 center/cover no-repeat}.pm-info{padding:10px}.pm-name{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pm-actions{display:flex;gap:6px;margin-top:8px}.pm-actions button{flex:1;padding:8px;font-size:11px}
.selection-client{border:1px solid #29292e;border-radius:16px;padding:16px;margin-top:12px}.selection-list{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin-top:12px}.selection-item{background:#19191c;border-radius:9px;padding:9px 10px;font:12px ui-monospace,Consolas,monospace}.selection-tools{display:flex;gap:7px;margin-top:12px}

@media(max-width:1000px){.gallery-cards{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr 1fr}.photo-manager{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){
  .top-actions #shareBtn,.top-actions #logoutBtn{display:none}.top-logo{height:32px}.client-hero{min-height:280px;padding-top:78px}.hero-content{padding-bottom:30px}.hero-content h1{font-size:50px}.hero-content>p:not(.eyebrow){font-size:15px}
  .photo-grid{columns:2 150px;column-gap:6px;padding:8px 6px 55px}.photo-card{margin-bottom:6px;border-radius:7px}.photo-fav{width:36px;height:36px;top:7px;right:7px}.lightbox-stage{padding:8px 4px 70px}.lb-arrow{top:auto;bottom:12px;width:44px;height:44px;border-radius:999px}
  .sidebar{display:none}.admin-main{margin-left:0;padding:24px 14px 70px}.admin-head{align-items:flex-start}.admin-head h1{font-size:42px}.stats{grid-template-columns:1fr}.toolbar{grid-template-columns:1fr}.form2,.form3{grid-template-columns:1fr}.photo-manager{grid-template-columns:repeat(2,1fr)}.selection-list{grid-template-columns:1fr}.dialog{padding:20px}.actions{flex-wrap:wrap}.actions .spacer{display:none}.actions>*{flex:1}.copy{grid-template-columns:1fr}
}

/* ===== v11.1: logo sizes are locked by width ===== */
.lock-card .raf-logo{
  width:190px !important;
  height:auto !important;
  max-width:70% !important;
}
.client-topbar .raf-logo{
  width:116px !important;
  height:auto !important;
  max-width:32vw !important;
}
.sidebar .raf-logo{
  width:150px !important;
  height:auto !important;
}
.client-footer .raf-logo{
  width:140px !important;
  height:auto !important;
  margin:0 auto !important;
}

/* Clear login feedback */
.login-status{
  font-size:13px;
  line-height:1.45;
  margin:3px 0 0;
}
.login-status.error{color:#ff9b9b}
.login-status.ok{color:#aee8ba}

@media(max-width:760px){
  .lock-card .raf-logo{width:160px !important}
  .client-topbar .raf-logo{width:98px !important}
}


/* ===== v11.3: osobny wybór do pobierania ===== */
.photo-card-tools{
  position:absolute;
  top:9px;
  right:9px;
  z-index:25;
  display:flex;
  gap:6px;
  pointer-events:auto;
}

.photo-card-tools .photo-fav,
.photo-card-tools .photo-download,
.photo-card-tools .photo-select-download{
  position:static !important;
  width:40px;
  height:40px;
  padding:0;
  display:grid;
  place-items:center;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.24);
  background:rgba(9,9,11,.78);
  color:#fff;
  backdrop-filter:blur(10px);
  cursor:pointer;
  pointer-events:auto !important;
  font-size:19px;
  line-height:1;
}

.photo-card-tools .photo-fav.active{
  color:var(--red) !important;
  border-color:rgba(255,59,77,.75) !important;
  background:rgba(9,9,11,.88) !important;
}

.photo-card-tools .photo-select-download.active{
  color:#111 !important;
  background:#f4f4f1 !important;
  border-color:#f4f4f1 !important;
}

.photo-card-tools .photo-download:hover,
.photo-card-tools .photo-select-download:hover,
.photo-card-tools .photo-fav:hover{
  transform:translateY(-1px);
}

.download-bar{
  position:sticky;
  top:66px;
  z-index:24;
  max-width:1450px;
  margin:12px auto 0;
  padding:12px 14px 12px 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  background:rgba(20,20,23,.94);
  border:1px solid #35353b;
  border-radius:16px;
  backdrop-filter:blur(15px);
  box-shadow:0 12px 40px rgba(0,0,0,.28);
}

.download-bar-info strong{display:block}
.download-bar-info small{
  display:block;
  margin-top:3px;
  color:#8d8d94;
}
.download-bar-actions{
  display:flex;
  gap:8px;
  flex-shrink:0;
}

.download-dialog{
  width:min(560px,calc(100% - 24px));
}
.download-dialog .progress-track{
  margin-top:18px;
}
#zipProgress{
  width:0%;
}

@media(max-width:760px){
  .photo-card-tools{
    top:6px;
    right:6px;
    gap:4px;
  }

  .photo-card-tools .photo-fav,
  .photo-card-tools .photo-download,
  .photo-card-tools .photo-select-download{
    width:33px;
    height:33px;
    font-size:16px;
  }

  .download-bar{
    top:59px;
    margin:8px 6px 0;
    padding:10px;
    border-radius:13px;
  }

  .download-bar-info small{display:none}
  .download-bar-actions .ghost{display:none}
  .download-bar-actions .primary{
    padding:10px 12px;
    font-size:12px;
    white-space:nowrap;
  }
}


/* ===== v11.5: logowanie administratora ===== */
.admin-password-wrap{
  position:relative;
}
.admin-password-wrap input{
  padding-right:112px;
}
.show-password-btn{
  position:absolute;
  right:7px;
  top:50%;
  transform:translateY(-50%);
  border:0;
  background:transparent;
  color:#777;
  font-size:11px;
  font-weight:750;
  padding:8px;
  cursor:pointer;
}
.show-password-btn:hover{
  color:#eee;
}
.password-manager-note{
  display:block;
  color:#707077;
  font-size:10px;
  line-height:1.35;
  text-align:center;
}

/* ukryte ramki służące wyłącznie do natywnego pobierania */
.raf-download-frame{
  position:fixed;
  width:1px;
  height:1px;
  left:-9999px;
  top:-9999px;
  border:0;
  opacity:0;
  pointer-events:none;
}


/* ===== v12: ADMIN LOGIN ===== */
.remember-login{
  display:flex !important;
  align-items:center;
  gap:9px !important;
  margin:2px 0 0 !important;
  color:#8b8b92 !important;
  font-size:11px !important;
  cursor:pointer;
}
.remember-login input{
  width:auto;
  margin:0;
}
.admin-password-wrap{
  position:relative;
}
.admin-password-wrap input{
  padding-right:108px;
}
.show-password-btn{
  position:absolute;
  right:6px;
  top:50%;
  transform:translateY(-50%);
  border:0;
  border-radius:8px;
  background:#202024;
  color:#d0d0d5;
  font-size:10px;
  font-weight:750;
  padding:7px 9px;
  cursor:pointer;
  z-index:5;
}
.show-password-btn:hover{
  background:#29292e;
  color:#fff;
}

/* ===== v12: DOWNLOAD DIALOG ===== */
.download-dialog{
  width:min(570px,calc(100% - 24px));
}
.download-dialog .progress-track{
  margin-top:18px;
}
#zipProgress{
  width:0%;
}


/* ===== v12.2 login cleanup ===== */
#adminLoginForm{
  display:grid;
  gap:12px;
}
.admin-password-wrap{
  position:relative;
  width:100%;
}
.admin-password-wrap input{
  width:100%;
  padding-right:108px;
}
.show-password-btn{
  z-index:10;
  pointer-events:auto;
}


/* ===== v12.3: przewidywalne logowanie ===== */
#adminLoginForm{
  display:grid;
  gap:10px;
}

.login-options{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:1px 0 2px;
}

.remember-login{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  gap:7px !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  color:#8b8b91 !important;
  font-size:10px !important;
  cursor:pointer;
}

.remember-login input{
  width:auto !important;
  margin:0 !important;
}

.show-password-under{
  flex-shrink:0;
  border:0;
  background:transparent;
  color:#b6b6bc;
  padding:4px 0;
  font-size:10px;
  font-weight:750;
  cursor:pointer;
  text-decoration:underline;
  text-underline-offset:2px;
}

.show-password-under:hover{
  color:#fff;
}

/* Hide browser's native reveal decoration where available */
#adminPassword::-ms-reveal,
#adminPassword::-ms-clear{
  display:none;
}

@media(max-width:500px){
  .login-options{
    align-items:flex-start;
    flex-direction:column;
    gap:5px;
  }
}


/* ===== v13: cover, slideshow, QR, expiry ===== */
.cover-editor{display:grid;grid-template-columns:minmax(260px,420px) 1fr;gap:16px;align-items:stretch;margin-bottom:16px;padding:16px;border:1px solid #2d2d31;border-radius:18px;background:#151518}.cover-editor-preview{min-height:210px;border-radius:16px;background:#1b1b1f center/cover no-repeat;border:1px solid #2d2d31}.cover-editor-panel{display:grid;gap:12px;align-content:start}.cover-editor-panel h3{margin:0;font-size:24px}.cover-editor-panel label{margin:0!important}.qr-wrap{display:grid;place-items:center;padding:14px 0 18px}.qr-wrap canvas{background:#fff;border-radius:18px;padding:12px;box-shadow:0 10px 30px rgba(0,0,0,.26)}
.photo-manager .pm-item.current-cover{outline:2px solid rgba(255,255,255,.6)}
@media(max-width:760px){.cover-editor{grid-template-columns:1fr}.cover-editor-preview{min-height:180px}}


/* ===== v14 ===== */
.intro-screen{position:relative;min-height:100dvh;display:grid;place-items:center;overflow:hidden;background:#09090a}
.intro-backdrop,.intro-overlay{position:absolute;inset:0}.intro-backdrop{background:#111 center/cover no-repeat;transform:scale(1.03);filter:blur(3px)}.intro-overlay{background:linear-gradient(180deg,rgba(0,0,0,.45),rgba(0,0,0,.72))}
.intro-card{position:relative;z-index:2;max-width:760px;width:min(92vw,760px);padding:38px 26px;border:1px solid #2d2d31;border-radius:28px;background:rgba(10,10,12,.68);backdrop-filter:blur(12px);text-align:center;box-shadow:0 24px 60px rgba(0,0,0,.38)}
.intro-card h1{margin:.25rem 0 .5rem;font-size:clamp(34px,5vw,68px);line-height:1.04}.intro-date{margin:0;color:#d2d2d6;font-size:14px;letter-spacing:.18em;text-transform:uppercase}.intro-meta{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin:16px 0 22px;color:#d2d2d6}.intro-meta span{padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.08)}
.wide-segments{flex-wrap:wrap}
.compare-bar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:14px 0 18px;padding:14px 16px;border:1px solid #2d2d31;border-radius:18px;background:#111114}.compare-bar-info{display:grid;gap:4px}.compare-bar-actions{display:flex;gap:10px;flex-wrap:wrap}
.photo-card{position:relative;overflow:hidden}.photo-card.rejected{opacity:.6}.photo-card.compare-active{outline:2px solid rgba(255,255,255,.35);outline-offset:0}.photo-card.fav-active{box-shadow:0 12px 28px rgba(198,32,64,.12)}
.photo-filename{padding:10px 12px 12px;font-size:12px;color:#b7b7bc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.photo-card-tools{display:flex;flex-wrap:wrap;gap:8px;position:absolute;right:12px;top:12px;z-index:3}
.photo-reject,.photo-compare,.photo-download,.photo-select-download,.photo-fav{min-width:38px;height:38px;padding:0 10px;border-radius:999px;border:1px solid rgba(255,255,255,.16);background:rgba(8,8,10,.68);color:#fff;backdrop-filter:blur(10px);font-weight:700;cursor:pointer}
.photo-compare{font-size:11px;letter-spacing:.03em}.photo-reject.active{background:rgba(255,255,255,.14);color:#fff}.photo-compare.active{background:#fff;color:#111}.photo-fav.active{background:#b81d39;border-color:#b81d39}.photo-select-download.active{background:#1b5630;border-color:#1b5630}
.client-footer{display:grid;gap:18px;justify-items:center;padding:40px 16px 56px}.footer-message{display:grid;gap:8px;justify-items:center;text-align:center;max-width:760px}.footer-message h3{margin:0;font-size:28px}.footer-message p{margin:0;color:#c9c9ce}.footer-links{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.footer-links a{padding:10px 14px;border-radius:999px;border:1px solid #2d2d31;background:#111114;color:#fff;text-decoration:none}
.compare-dialog{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:rgba(0,0,0,.82);padding:18px}.compare-dialog-card{width:min(1200px,96vw);max-height:92dvh;border:1px solid #2d2d31;border-radius:26px;background:#0f0f12;overflow:hidden;display:grid;grid-template-rows:auto 1fr}.compare-top{padding:18px 20px}.compare-stage{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#24242a}.compare-pane{position:relative;background:#0b0b0d;display:grid;grid-template-rows:1fr auto;min-height:58dvh}.compare-pane img{width:100%;height:100%;object-fit:contain;background:#0b0b0d}.compare-label{position:absolute;left:14px;top:14px;z-index:2;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14)}.compare-caption{padding:14px 16px;color:#d2d2d6;border-top:1px solid #24242a;word-break:break-word}
@media (max-width: 860px){.compare-stage{grid-template-columns:1fr}.compare-pane{min-height:36dvh}.compare-bar{flex-direction:column;align-items:stretch}.compare-bar-actions{width:100%}.compare-bar-actions>*{flex:1}}


/* ===== v14.1: jeden wspólny klient / wybór ===== */
.selection-single{padding:0;border:0;background:transparent}
.selection-single-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}
.selection-single-head h3{margin:0 0 6px;font-size:24px}
.selection-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.selection-photo-card{overflow:hidden;border:1px solid #29292e;border-radius:14px;background:#19191c}
.selection-photo-thumb{aspect-ratio:4/3;background:#222 center/cover no-repeat}
.selection-photo-info{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px}
.selection-photo-info strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.selection-photo-info button{flex-shrink:0;padding:8px 10px;font-size:11px}
#downloadFavoritesBtn{white-space:nowrap}
@media(max-width:760px){
  .selection-single-head{align-items:stretch;flex-direction:column}
  .selection-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .selection-photo-info{align-items:stretch;flex-direction:column}
}

.favorite-selection-row{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:7px}.favorite-selection-row small{margin-top:0!important}.favorite-selection-row button{padding:8px 11px;font-size:11px}@media(max-width:760px){.favorite-selection-row{justify-content:space-between}.favorite-selection-row button{display:block!important}.top-actions #downloadFavoritesBtn{display:none}}


/* ===== v15: site editor + sticky A/B + configurable gallery ===== */
:root{
  --gallery-cols-desktop:4;
  --gallery-cols-tablet:3;
  --gallery-cols-mobile:2;
  --gallery-gap:10px;
  --gallery-card-radius:9px;
  --gallery-button-size:40px;
  --gallery-button-gap:6px;
  --gallery-button-bg:#111114;
  --gallery-heart-color:#ff3b4d;
  --gallery-compare-color:#22c55e;
  --gallery-download-color:#1b7f46;
  --gallery-filter-bg:#f3f3f0;
  --gallery-filter-text:#111111;
}

.photo-grid{
  column-count:var(--gallery-cols-desktop) !important;
  column-width:auto !important;
  column-gap:var(--gallery-gap) !important;
}
.photo-card{
  margin-bottom:var(--gallery-gap) !important;
  border-radius:var(--gallery-card-radius) !important;
}
.photo-card-tools{gap:var(--gallery-button-gap) !important}
.photo-card-tools .photo-fav,
.photo-card-tools .photo-reject,
.photo-card-tools .photo-compare,
.photo-card-tools .photo-download,
.photo-card-tools .photo-select-download{
  min-width:var(--gallery-button-size) !important;
  height:var(--gallery-button-size) !important;
  background:color-mix(in srgb,var(--gallery-button-bg) 86%,transparent) !important;
}
.photo-card-tools .photo-fav.active{
  background:var(--gallery-heart-color) !important;
  border-color:var(--gallery-heart-color) !important;
  color:#fff !important;
}
.photo-card-tools .photo-compare.active{
  background:var(--gallery-compare-color) !important;
  border-color:var(--gallery-compare-color) !important;
  color:#fff !important;
  box-shadow:0 0 0 2px color-mix(in srgb,var(--gallery-compare-color) 30%,transparent);
}
.photo-card-tools .photo-select-download.active{
  background:var(--gallery-download-color) !important;
  border-color:var(--gallery-download-color) !important;
  color:#fff !important;
}
.seg.active{
  background:var(--gallery-filter-bg) !important;
  color:var(--gallery-filter-text) !important;
}

/* Pasek A/B jest stale przy ekranie po wybraniu pierwszego zdjęcia. */
.compare-bar{
  position:fixed !important;
  left:50%;
  bottom:max(12px,env(safe-area-inset-bottom));
  transform:translateX(-50%);
  width:min(1120px,calc(100% - 24px));
  z-index:88;
  margin:0 !important;
  box-shadow:0 18px 60px rgba(0,0,0,.55);
  background:rgba(17,17,20,.96) !important;
  backdrop-filter:blur(18px);
}
.client-body.compare-bar-visible #galleryView{padding-bottom:110px}

@media(max-width:1000px) and (min-width:761px){
  .photo-grid{column-count:var(--gallery-cols-tablet) !important}
}
@media(max-width:760px){
  .photo-grid{column-count:var(--gallery-cols-mobile) !important;column-gap:var(--gallery-gap) !important;padding-left:6px !important;padding-right:6px !important}
  .compare-bar{width:calc(100% - 12px);bottom:max(6px,env(safe-area-inset-bottom));padding:10px 12px !important;gap:8px !important}
  .compare-bar-info small{display:none}
  .compare-bar-actions{width:auto !important;flex-wrap:nowrap !important}
  .compare-bar-actions .ghost{display:none}
  .compare-bar-actions .primary{white-space:nowrap;padding:10px 12px;font-size:12px}
  .client-body.compare-bar-visible #galleryView{padding-bottom:92px}
}

/* Admin: pełny edytor strony */
.site-settings-dialog{width:min(1280px,calc(100% - 20px)) !important}
.site-editor-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:18px;margin-top:16px}
.site-editor-controls{display:grid;gap:14px}
.site-settings-section{border:1px solid #2d2d31;border-radius:18px;background:#151518;padding:16px}
.site-settings-section h3{margin:0 0 8px;font-size:19px}
.color-field{height:48px;padding:5px;cursor:pointer}
.site-live-preview{position:sticky;top:0;align-self:start;border:1px solid #2d2d31;border-radius:20px;background:#0d0d0f;padding:16px;overflow:hidden}
.ui-preview-filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;--preview-filter-bg:#f3f3f0;--preview-filter-text:#111}
.ui-preview-filters span{padding:7px 10px;border:1px solid #303036;border-radius:9px;color:#aaa;font-size:11px;font-weight:750}
.ui-preview-filters span.active{background:var(--preview-filter-bg);color:var(--preview-filter-text)}
.ui-preview-grid{--preview-cols:2;--preview-gap:10px;--preview-radius:9px;display:grid;grid-template-columns:repeat(var(--preview-cols),minmax(0,1fr));gap:var(--preview-gap)}
.ui-preview-card{min-width:0;border-radius:var(--preview-radius);overflow:hidden;background:#19191c;border:1px solid #2b2b31}
.ui-preview-image{position:relative;aspect-ratio:4/3;background:linear-gradient(135deg,#958a70,#4f604c 45%,#141414)}
.ui-preview-image.alt{background:linear-gradient(135deg,#3a3a3c,#8a745c 55%,#19221b)}
.ui-preview-name{padding:8px 9px;color:#bbb;font-size:10px}
.ui-preview-tools{--preview-button-size:40px;--preview-button-gap:6px;--preview-button-bg:#111114;--preview-heart:#ff3b4d;--preview-compare:#22c55e;--preview-download:#1b7f46;position:absolute;right:7px;top:7px;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--preview-button-gap)}
.ui-preview-tools button{min-width:var(--preview-button-size);height:var(--preview-button-size);border:1px solid #ffffff2c;border-radius:999px;background:var(--preview-button-bg);color:#fff;font-size:10px;font-weight:800;padding:0 7px}
.ui-preview-tools .preview-heart.active{background:var(--preview-heart);border-color:var(--preview-heart)}
.ui-preview-tools .preview-compare.active{background:var(--preview-compare);border-color:var(--preview-compare)}
.ui-preview-tools .preview-download.active{background:var(--preview-download);border-color:var(--preview-download)}
.ui-preview-tip{font-size:11px;margin-bottom:0}
@media(max-width:900px){.site-editor-layout{grid-template-columns:1fr}.site-live-preview{position:static}.site-settings-section .form3,.site-settings-section .form2{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.site-settings-section .form3,.site-settings-section .form2{grid-template-columns:1fr}.ui-preview-grid{--preview-cols:2 !important}}


/* ===== v15.1: permissions, protection, centered intro logo ===== */
.intro-card .raf-logo.login-logo{
  width:min(230px,56vw) !important;
  max-width:230px !important;
  height:auto !important;
  margin:0 auto 24px !important;
  display:block !important;
}

/* Utrudnia zwykłe zapisywanie zdjęć z przeglądarki. */
.client-body img,
.client-hero,
.intro-backdrop{
  -webkit-user-drag:none;
  -webkit-touch-callout:none;
  user-select:none;
}
.photo-card img,.lightbox-stage img,.compare-pane img{pointer-events:auto}

.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.permission-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}
.permissions-section h4{margin:18px 0 4px;color:#d7d7dc;font-size:14px}
.permissions-section .check{margin:0!important;align-items:flex-start!important;min-height:64px}
.permissions-section .check span{display:grid;gap:3px}
.permissions-section .check small{color:#83838a;line-height:1.35}
.permission-master{border-color:#56565f!important;background:#1b1b1f!important}
.protection-toggle{margin-top:12px!important}

.photo-card-tools button:disabled{opacity:.38;cursor:not-allowed;filter:saturate(.25)}

@media(max-width:760px){
  .intro-card .raf-logo.login-logo{width:min(190px,52vw)!important;margin-bottom:20px!important}
  .permission-grid,.permission-grid.compact{grid-template-columns:1fr}
}


/* ===== v15.2: Firebase Storage Monitor ===== */
.storage-monitor{
  margin:0 0 28px;
  padding:20px;
  border:1px solid #2d2d31;
  border-radius:20px;
  background:
    radial-gradient(circle at 90% 0%, rgba(255,255,255,.055), transparent 28%),
    #121214;
}
.storage-monitor-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:18px;
}
.storage-monitor-head h2{
  margin:0 0 6px;
  font-size:28px;
  letter-spacing:-.035em;
}
.storage-monitor-head .muted{margin:0}
.storage-main{
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(320px,.6fr);
  gap:14px;
}
.storage-usage,
.storage-stats article{
  border:1px solid #2b2b30;
  background:#0e0e10;
  border-radius:16px;
}
.storage-usage{padding:17px}
.storage-usage-line{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
}
.storage-usage-line span,
.storage-stats span{
  display:block;
  color:#85858c;
  font-size:11px;
}
.storage-usage-line strong{
  display:block;
  margin-top:5px;
  font-size:28px;
  letter-spacing:-.035em;
}
.storage-limit{text-align:right}
.storage-limit-edit{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  margin-top:5px;
}
.storage-limit-edit input{
  width:82px;
  padding:8px 9px;
  text-align:right;
}
.storage-limit-edit b{font-size:12px;color:#aaa}
.storage-meter{
  height:12px;
  margin-top:16px;
  overflow:hidden;
  border-radius:999px;
  background:#242429;
  box-shadow:inset 0 0 0 1px #2f2f35;
}
.storage-meter-bar{
  height:100%;
  width:0;
  border-radius:inherit;
  background:#f3f3f0;
  transition:width .35s ease;
}
.storage-meter-bar.warning{background:#f2c14e}
.storage-meter-bar.danger{background:#ff884d}
.storage-meter-bar.critical{background:#ff3b4d}
.storage-meter-meta{
  display:flex;
  justify-content:space-between;
  gap:12px;
  margin-top:8px;
  color:#8c8c92;
  font-size:11px;
}
.storage-stats{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
}
.storage-stats article{
  padding:14px;
}
.storage-stats strong{
  display:block;
  margin-top:8px;
  font-size:20px;
  letter-spacing:-.02em;
}
.storage-scan-status{
  margin:13px 0;
  padding:10px 12px;
  border:1px solid #2d2d31;
  border-radius:12px;
  background:#151518;
  color:#96969d;
  font-size:12px;
}
.storage-scan-status.scanning{color:#eee}
.storage-scan-status.ok{border-color:#315a3c;color:#bcefc6}
.storage-scan-status.error{border-color:#68363b;color:#ffb4b4}
.storage-ranking-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  margin:18px 0 10px;
  color:#cfcfd3;
  font-size:12px;
}
.storage-ranking-head span{color:#74747b}
.storage-ranking{
  display:grid;
  gap:8px;
}
.storage-empty{
  padding:20px;
  border:1px dashed #34343a;
  border-radius:14px;
  text-align:center;
  color:#75757c;
  font-size:12px;
}
.storage-ranking-row{
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  gap:10px;
  padding:12px;
  border:1px solid #29292e;
  border-radius:14px;
  background:#0f0f11;
}
.storage-rank-number{
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  border:1px solid #303036;
  border-radius:10px;
  color:#8e8e95;
  font-size:11px;
  font-weight:800;
}
.storage-rank-main{min-width:0}
.storage-rank-top{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
}
.storage-rank-top strong{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.storage-rank-top b{white-space:nowrap}
.storage-rank-bar{
  height:5px;
  margin:8px 0;
  overflow:hidden;
  border-radius:999px;
  background:#222226;
}
.storage-rank-bar span{
  display:block;
  height:100%;
  border-radius:inherit;
  background:#d8d8d4;
}
.storage-rank-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px 13px;
  color:#77777e;
  font-size:10px;
}
.storage-rank-meta .storage-free{color:#a9d8b2}
.storage-footnote{
  margin:15px 0 0;
  color:#67676e;
  font-size:10px;
  line-height:1.5;
}
.gallery-storage-badge{
  color:#b9d8be !important;
}

@media(max-width:900px){
  .storage-main{grid-template-columns:1fr}
}
@media(max-width:650px){
  .storage-monitor{padding:14px;margin-bottom:20px}
  .storage-monitor-head{align-items:stretch;flex-direction:column}
  .storage-monitor-head #refreshStorageBtn{width:100%}
  .storage-usage-line{align-items:flex-start;flex-direction:column}
  .storage-limit{text-align:left}
  .storage-limit-edit{justify-content:flex-start}
  .storage-stats{grid-template-columns:1fr 1fr 1fr}
  .storage-stats strong{font-size:16px}
  .storage-ranking-head{flex-direction:column}
  .storage-rank-meta .storage-free{flex-basis:100%}
}


/* ===== v15.3: Admin Login Editor + hard-centered logo ===== */

/* Admin login receives its own variables so gallery login/intro are unaffected. */
#adminLogin.lock-screen{
  background:
    radial-gradient(
      circle at 50% 10%,
      var(--admin-login-bg-top,#29292e),
      var(--admin-login-bg-middle,#111113) 37%,
      var(--admin-login-bg-bottom,#09090a) 72%
    );
  color:var(--admin-login-text,#f4f4f2);
}

#adminLogin .lock-card{
  width:min(var(--admin-login-card-width,460px),100%);
  padding:var(--admin-login-card-padding,42px);
  border:1px solid var(--admin-login-card-border,#2e2e33);
  border-radius:var(--admin-login-card-radius,26px);
  background:var(--admin-login-card-bg,#111113);
  text-align:center;
}

/* THIS is the hard fix: the logo can no longer sit on the left. */
#adminLogin .lock-card .raf-logo.login-logo{
  display:block !important;
  margin:0 auto 24px !important;
  height:auto !important;
  object-fit:contain !important;
}

#adminLogin .lock-card h1{
  font-size:var(--admin-login-title-size,44px);
  color:var(--admin-login-text,#f4f4f2);
  text-align:center;
}

#adminLogin .lock-card > .eyebrow{
  color:var(--admin-login-accent,#aaa);
  text-align:center;
}

#adminLogin .lock-card > .muted{
  color:var(--admin-login-muted,#929298);
  text-align:center;
}

#adminLogin .lock-card form{
  gap:var(--admin-login-form-gap,12px);
}

#adminLogin .lock-card input{
  background:var(--admin-login-input-bg,#0e0e10);
  border-color:var(--admin-login-input-border,#34343a);
}

#adminLogin .lock-card #adminLoginSubmit{
  background:var(--admin-login-button-bg,#f5f5f2);
  color:var(--admin-login-button-text,#0b0b0c);
}

#adminLogin .login-options{
  color:var(--admin-login-muted,#929298);
}

.admin-head-actions{
  display:flex;
  align-items:center;
  gap:9px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.login-editor-dialog{
  width:min(1320px,calc(100% - 20px)) !important;
}

.login-editor-layout{
  display:grid;
  grid-template-columns:minmax(0,1.32fr) minmax(330px,.68fr);
  gap:18px;
  margin-top:16px;
}

.login-editor-controls{
  display:grid;
  gap:14px;
}

.login-live-preview{
  position:sticky;
  top:0;
  align-self:start;
  border:1px solid #2d2d31;
  border-radius:20px;
  background:#0d0d0f;
  padding:16px;
}

.login-preview-screen{
  min-height:610px;
  display:grid;
  place-items:center;
  padding:20px;
  border:1px solid #2b2b30;
  border-radius:16px;
  overflow:hidden;
}

.login-preview-card{
  max-width:100%;
  border:1px solid #2e2e33;
  box-shadow:0 26px 80px rgba(0,0,0,.45);
  text-align:center;
}

.login-preview-card img{
  display:block;
  height:auto;
  max-width:80%;
  margin:0 auto 20px;
  object-fit:contain;
}

.login-preview-eyebrow{
  margin-bottom:9px;
  font-size:9px;
  letter-spacing:.2em;
  font-weight:800;
}

.login-preview-card h3{
  margin:0 0 8px;
  letter-spacing:-.05em;
  line-height:1;
}

.login-preview-card > p{
  margin:0 0 20px;
  font-size:12px;
  line-height:1.5;
}

.login-preview-form{
  display:grid;
  gap:12px;
}

.login-preview-input{
  padding:12px 13px;
  border:1px solid;
  border-radius:10px;
  text-align:left;
  font-size:11px;
}

.login-preview-options{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  font-size:9px;
  text-align:left;
}

.login-preview-button{
  padding:12px 13px;
  border-radius:10px;
  font-weight:800;
  font-size:11px;
}

.login-preview-tip{
  margin-bottom:0;
  font-size:10px;
}

@media(max-width:950px){
  .login-editor-layout{grid-template-columns:1fr}
  .login-live-preview{position:static}
}

@media(max-width:760px){
  .admin-head-actions{
    width:100%;
    justify-content:stretch;
  }
  .admin-head-actions button{flex:1}
  .login-preview-screen{min-height:500px;padding:12px}
}



/* ===== v15.4: CLIENT LOGIN EDITOR ===== */
#lockScreen.lock-screen{
  background:
    radial-gradient(
      circle at 50% 10%,
      var(--client-login-bg-top,#29292e),
      var(--client-login-bg-middle,#111113) 37%,
      var(--client-login-bg-bottom,#09090a) 72%
    );
  color:var(--client-login-text,#f4f4f2);
}
#lockScreen .lock-card{
  width:min(var(--client-login-card-width,460px),100%);
  padding:var(--client-login-card-padding,42px);
  border:1px solid var(--client-login-card-border,#2e2e33);
  border-radius:var(--client-login-card-radius,26px);
  background:var(--client-login-card-bg,#111113);
  text-align:center;
}
#lockScreen .lock-card .raf-logo.login-logo{
  display:block !important;
  margin:0 auto 24px !important;
  height:auto !important;
  object-fit:contain !important;
}
#lockScreen .lock-card h1{
  font-size:var(--client-login-title-size,44px);
  color:var(--client-login-text,#f4f4f2);
  text-align:center;
}
#lockScreen .lock-card > .eyebrow{
  color:var(--client-login-accent,#aaa);
  text-align:center;
}
#lockScreen .lock-card > .muted{
  color:var(--client-login-muted,#929298);
  text-align:center;
}
#lockScreen .lock-card form{gap:var(--client-login-form-gap,12px)}
#lockScreen .lock-card input{
  background:var(--client-login-input-bg,#0e0e10);
  border-color:var(--client-login-input-border,#34343a);
}
#lockScreen .lock-card #clientLoginSubmit{
  background:var(--client-login-button-bg,#f5f5f2);
  color:var(--client-login-button-text,#0b0b0c);
}

/* ===== v15.4: MORE COMPACT + CONFIGURABLE ADMIN PANEL ===== */
#adminPanel{
  background:var(--admin-page-bg,#09090a);
  --admin-content-width:1320px;
  --admin-panel-padding-x:28px;
  --admin-section-gap:14px;
  --admin-radius:15px;
  --admin-card-padding:16px;
  --admin-gallery-columns:2;
  --admin-card-bg:#121214;
  --admin-border:#29292e;
  --admin-primary-bg:#f5f5f2;
  --admin-primary-text:#0b0b0c;
  --admin-muted:#929298;
}
#adminPanel .admin-main{
  padding-left:var(--admin-panel-padding-x);
  padding-right:var(--admin-panel-padding-x);
}
#adminPanel .admin-content{
  width:100%;
  max-width:var(--admin-content-width);
  margin:0 auto;
}
#adminPanel .admin-head{margin-bottom:var(--admin-section-gap)}
#adminPanel .stats{
  margin:var(--admin-section-gap) 0;
  gap:10px;
}
#adminPanel .stats article,
#adminPanel .storage-monitor,
#adminPanel .gallery-card,
#adminPanel .toolbar input,
#adminPanel .toolbar select{
  border-color:var(--admin-border);
}
#adminPanel .stats article,
#adminPanel .storage-monitor,
#adminPanel .gallery-card{
  background:var(--admin-card-bg);
  border-radius:var(--admin-radius);
}
#adminPanel .stats article{padding:var(--admin-card-padding)}
#adminPanel .storage-monitor{
  margin-bottom:var(--admin-section-gap);
  padding:var(--admin-card-padding);
}
#adminPanel .gallery-cards{
  grid-template-columns:repeat(var(--admin-gallery-columns),minmax(0,1fr));
  gap:var(--admin-section-gap);
}
#adminPanel .gallery-body{padding:var(--admin-card-padding)}
#adminPanel .toolbar{
  margin-bottom:var(--admin-section-gap);
}
#adminPanel .primary{
  background:var(--admin-primary-bg);
  color:var(--admin-primary-text);
}
#adminPanel .muted,
#adminPanel .gallery-meta{color:var(--admin-muted)}

#adminPanel.compact-stats .stats article{padding:12px 15px}
#adminPanel.compact-stats .stats strong{font-size:26px;margin-top:3px}
#adminPanel.compact-storage .storage-monitor-head{margin-bottom:12px}
#adminPanel.compact-storage .storage-main{gap:9px}
#adminPanel.compact-storage .storage-usage{padding:13px}
#adminPanel.compact-storage .storage-stats article{padding:11px}
#adminPanel.compact-storage .storage-scan-status{margin:9px 0}
#adminPanel.compact-storage .storage-ranking-head{margin:13px 0 8px}
#adminPanel.compact-storage .storage-ranking-row{padding:9px 11px}

.storage-rank-top-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
.storage-orphan-row{
  border-color:#62353a !important;
  background:linear-gradient(90deg,rgba(120,30,40,.08),transparent 38%),#0f0f11;
}
.storage-orphan-delete{
  padding:7px 9px !important;
  font-size:10px !important;
  white-space:nowrap;
}

.admin-panel-editor-layout{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(330px,.8fr);
  gap:18px;
  margin-top:16px;
}
.panel-live-preview{
  position:sticky;
  top:0;
  align-self:start;
  border:1px solid #2d2d31;
  border-radius:20px;
  padding:16px;
  background:#0d0d0f;
}
.admin-panel-preview{
  display:grid;
  gap:10px;
  padding:16px;
  border:1px solid #2d2d31;
  transition:.2s;
}
.panel-preview-head{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:center;
}
.panel-preview-head div{display:grid;gap:4px}
.panel-preview-head small{font-size:7px;letter-spacing:.15em}
.panel-preview-head strong{font-size:18px}
.panel-preview-head span{
  padding:7px 9px;
  border-radius:8px;
  font-size:8px;
  font-weight:800;
}
.panel-preview-stats{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:7px;
}
.panel-preview-stats i,
.panel-preview-storage,
.panel-preview-galleries i{
  display:block;
  border:1px solid #2d2d31;
}
.panel-preview-stats i{height:48px}
.panel-preview-storage{height:110px}
.panel-preview-galleries{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:7px;
}
.panel-preview-galleries i{height:78px}

@media(max-width:1100px){
  #adminPanel .gallery-cards{grid-template-columns:1fr}
}
@media(max-width:950px){
  .admin-panel-editor-layout{grid-template-columns:1fr}
  .panel-live-preview{position:static}
}
@media(max-width:760px){
  #adminPanel .admin-main{
    padding-left:14px;
    padding-right:14px;
  }
  #adminPanel .admin-content{max-width:none}
}



/* v15.4.1 - logo size variables override legacy !important rules */
#lockScreen .lock-card .raf-logo.login-logo{
  width:var(--client-login-logo-width,190px) !important;
}
#adminLogin .lock-card .raf-logo.login-logo{
  width:var(--admin-login-logo-width,190px) !important;
}


/* ===== v16 WORKFLOW / FEATURED / HERO / HEALTH ===== */
.client-hero{
  min-height:var(--hero-height-desktop,330px) !important;
  background-color:var(--hero-bg-color,#09090a) !important;
  background-repeat:no-repeat !important;
}
.client-hero[data-hero-mode="cover"]{background-size:cover !important}
.client-hero[data-hero-mode="contain"]{background-size:contain !important;background-position:center !important}
.client-hero[data-hero-mode="fixed"]{background-size:var(--hero-image-width,1500px) auto !important;background-position:center !important}
.client-hero[data-hero-mode="none"]{background-image:none !important}
@media(max-width:760px){.client-hero{min-height:var(--hero-height-mobile,280px) !important}}

.selection-workflow{
  display:flex;justify-content:space-between;align-items:center;gap:14px;
  width:min(1500px,calc(100% - 20px));margin:10px auto 18px;padding:13px 15px;
  border:1px solid #2d2d31;border-radius:16px;background:#111114;
}
.selection-workflow-info{display:grid;gap:3px}.selection-workflow-info small{color:#8f8f96}
.selection-workflow-actions{display:flex;gap:8px;flex-wrap:wrap}.danger-soft{border-color:#63343b!important;color:#ffb2b8!important}
@media(max-width:720px){.selection-workflow{align-items:stretch;flex-direction:column}.selection-workflow-actions>*{flex:1}}

.photo-featured-badge{
  position:absolute;left:9px;top:9px;z-index:4;padding:6px 9px;border-radius:999px;
  background:rgba(156,111,10,.92);color:#fff4bd;font-size:10px;font-weight:800;box-shadow:0 4px 14px #0005;
}
.pm-item.pm-featured{outline:1px solid #8c7425}.pm-item.pm-hidden-client{opacity:.5;outline:1px dashed #85515a}
.pm-item.pm-hidden-client .pm-thumb::after{content:"UKRYTE PRZED KLIENTEM";display:grid;place-items:center;height:100%;background:#0008;color:#fff;font-size:10px;font-weight:900}
.hero-file-info{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:9px 11px;border:1px solid #303036;border-radius:10px;background:#0f0f11}.hero-file-info span{color:#85858c;font-size:11px}

.approval-badge{color:#b9efc4!important}
.approval-history{display:grid;gap:10px;margin-bottom:18px}.approval-history-head{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:14px;border:1px solid #2d2d31;border-radius:14px;background:#111114}.approval-history-head h3{margin:2px 0 0}
.approval-history-list{display:grid;gap:8px}.approval-log-row{padding:12px;border:1px solid #2a2a2f;border-radius:13px;background:#0f0f11}.approval-log-row.latest{border-color:#315b3d;background:linear-gradient(90deg,#14321a55,transparent 45%),#0f0f11}.approval-log-row>div{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.approval-log-row span{color:#8f8f96;font-size:11px}.approval-log-row details{margin-top:8px}.approval-log-row summary{cursor:pointer;color:#bbb;font-size:11px}.approval-filenames{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.approval-filenames span{padding:5px 7px;border-radius:8px;background:#1a1a1e;color:#ddd}

.health-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:14px 0}.health-summary article{padding:14px;border:1px solid #2d2d31;border-radius:14px;background:#101012}.health-summary span{display:block;color:#85858c;font-size:10px}.health-summary strong{display:block;margin-top:6px;font-size:20px}.health-actions{justify-content:flex-start;margin-bottom:12px}.health-results{display:grid;gap:10px;margin-top:12px}.health-gallery-block{padding:13px;border:1px solid #2d2d31;border-radius:14px;background:#0f0f11}.health-gallery-block h3{margin:0 0 9px}.health-issue{display:flex;gap:10px;padding:8px 0;border-top:1px solid #222228}.health-issue:first-of-type{border-top:0}.health-issue b{min-width:75px;font-size:9px;color:#ffb2b8}.health-issue span{font-size:11px;color:#bbb}.health-perfect{padding:25px;text-align:center;border:1px solid #315b3d;border-radius:14px;background:#11271855;color:#c4f5cf}
@media(max-width:700px){.health-summary{grid-template-columns:1fr 1fr}}


/* ===== v16.1: MANAGE PHOTO BUTTONS FIX ===== */
.photo-manager-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:12px 14px;
  margin-bottom:12px;
  border:1px solid #2d2d31;
  border-radius:14px;
  background:#111114;
}
.photo-manager-toolbar > div:first-child{
  display:grid;
  gap:3px;
}
.photo-manager-toolbar strong{font-size:13px}
.photo-manager-toolbar small{font-size:10px;color:#888890}
.photo-manager-toolbar-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.photo-manager{
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  align-items:start;
}
.pm-item{
  overflow:hidden;
  min-width:0;
}
.pm-info{
  overflow:visible;
  padding:11px;
}
.pm-actions{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:7px !important;
  align-items:stretch;
  overflow:visible !important;
}
.pm-actions button{
  width:100%;
  min-width:0;
  min-height:38px;
  padding:8px 7px !important;
  white-space:normal;
  line-height:1.15;
  overflow:visible;
  text-overflow:clip;
  cursor:pointer !important;
  pointer-events:auto !important;
  position:relative;
  z-index:5;
}
.pm-actions button.delete{
  grid-column:1 / -1;
}
.pm-actions button.active{
  background:#f3f3f0 !important;
  color:#111 !important;
  border-color:#f3f3f0 !important;
}
.pm-actions button.featured.active{
  background:#d4ae37 !important;
  border-color:#d4ae37 !important;
  color:#12100a !important;
}
.pm-actions button.client-hide.active{
  background:#743944 !important;
  border-color:#9a5561 !important;
  color:#fff !important;
}
.pm-actions button.working{
  opacity:.65;
  cursor:wait !important;
}

.pm-item.pm-hidden-client{
  opacity:1 !important;
}
.pm-item.pm-hidden-client .pm-thumb{
  opacity:.48;
  position:relative;
}
.pm-item.pm-hidden-client .pm-thumb::after{
  content:"UKRYTE PRZED KLIENTEM";
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  background:#0008;
  color:#fff;
  font-size:10px;
  font-weight:900;
  pointer-events:none;
}

@media(max-width:1050px){
  .photo-manager{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
}
@media(max-width:650px){
  .photo-manager-toolbar{
    align-items:stretch;
    flex-direction:column;
  }
  .photo-manager-toolbar-actions button{width:100%}
  .photo-manager{grid-template-columns:1fr !important}
  .pm-actions{grid-template-columns:1fr 1fr !important}
}

/* v16.1: Health button/dialog always clickable */
#healthPanelBtn,
#runHealthScanBtn,
#repairHealthBtn{
  pointer-events:auto !important;
  cursor:pointer !important;
}



/* ===== v16.2: HERO DESIGNER / RESPONSIVE COLLAGE ===== */
.client-hero{
  min-height:var(--hero-height-desktop,360px) !important;
  background:var(--hero-bg-color,#09090a) !important;
  overflow:hidden;
}
.hero-media{
  position:absolute;
  z-index:0;
  inset:0 auto 0 50%;
  width:min(100%,var(--hero-max-width,1600px));
  height:100%;
  transform:translateX(-50%);
  display:grid;
  gap:var(--hero-tile-gap,6px);
  background:var(--hero-bg-color,#09090a);
  pointer-events:none;
}
.hero-media[hidden]{display:none !important}
.hero-media-tile{
  min-width:0;
  min-height:0;
  border-radius:var(--hero-tile-radius,10px);
  background-color:var(--hero-bg-color,#09090a);
  background-repeat:no-repeat;
  background-position:center;
  background-size:var(--hero-fit,cover);
  overflow:hidden;
}

/* One */
.client-hero[data-hero-layout="single"] .hero-media{
  grid-template-columns:1fr;
}

/* Two equal panels — no ultra-wide stretching */
.client-hero[data-hero-layout="duo"] .hero-media{
  grid-template-columns:repeat(2,minmax(0,1fr));
}

/* Golden mean: main image 62%, two smaller stacked */
.client-hero[data-hero-layout="trio"] .hero-media{
  grid-template-columns:minmax(0,1.62fr) minmax(0,1fr);
  grid-template-rows:1fr 1fr;
}
.client-hero[data-hero-layout="trio"] .hero-media-tile-1{
  grid-row:1 / 3;
}

/* Four */
.client-hero[data-hero-layout="mosaic4"] .hero-media{
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-template-rows:repeat(2,minmax(0,1fr));
}

.client-hero[data-hero-layout="none"] .hero-media{
  display:none !important;
}

.hero-shade{
  z-index:1 !important;
  background:
    linear-gradient(
      180deg,
      rgba(0,0,0,calc(var(--hero-overlay-opacity,.46) * .60)),
      rgba(0,0,0,.08) 43%,
      rgba(9,9,11,var(--hero-overlay-opacity,.46))
    ) !important;
}
.hero-content{z-index:2 !important}

@media(max-width:1000px){
  .client-hero{
    min-height:var(--hero-height-tablet,320px) !important;
  }
}

@media(max-width:760px){
  .client-hero{
    min-height:var(--hero-height-mobile,300px) !important;
  }

  /* On mobile Smart Trio becomes one large top image + two bottom tiles. */
  .client-hero[data-hero-layout="trio"] .hero-media{
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-rows:minmax(0,1.55fr) minmax(0,1fr);
  }
  .client-hero[data-hero-layout="trio"] .hero-media-tile-1{
    grid-column:1 / 3;
    grid-row:1;
  }

  .client-hero[data-hero-layout="duo"] .hero-media{
    grid-template-columns:1fr 1fr;
  }
}

/* ===== Admin Hero Designer ===== */
.hero-designer-section{
  overflow:hidden;
}
.hero-designer-title{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin-bottom:14px;
}
.hero-designer-title h3{margin-bottom:5px}
.hero-smart-badge{
  flex:0 0 auto;
  padding:7px 9px;
  border:1px solid #3d553f;
  border-radius:999px;
  background:#18251a;
  color:#9cdaa4;
  font-size:9px;
  font-weight:900;
  letter-spacing:.08em;
}
.hero-designer-layout{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr);
  gap:16px;
  align-items:start;
}
.hero-designer-controls{
  display:grid;
  gap:11px;
}
.hero-photo-selectors{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.hero-device-preview-wrap{
  position:sticky;
  top:0;
  padding:13px;
  border:1px solid #2d2d31;
  border-radius:16px;
  background:#0d0d0f;
}
.hero-device-tabs{
  display:flex;
  gap:6px;
  margin-bottom:10px;
}
.hero-device-tabs button{
  flex:1;
  padding:8px 7px;
  font-size:10px;
}
.hero-device-tabs button.active{
  background:#f3f3f0;
  border-color:#f3f3f0;
  color:#111;
}
.hero-device-preview{
  position:relative;
  margin:0 auto;
  overflow:hidden;
  border:1px solid #35353b;
  border-radius:12px;
  background:var(--hero-preview-bg,#09090a);
  transition:width .25s ease, aspect-ratio .25s ease;
}
.hero-device-preview.device-desktop{
  width:100%;
  aspect-ratio:16/5;
}
.hero-device-preview.device-tablet{
  width:76%;
  aspect-ratio:4/2.2;
}
.hero-device-preview.device-mobile{
  width:46%;
  aspect-ratio:9/12;
}
.hero-preview-media{
  position:absolute;
  inset:0;
  display:grid;
  gap:var(--hero-preview-gap,6px);
  background:var(--hero-preview-bg,#09090a);
}
.hero-preview-tile{
  min-width:0;
  min-height:0;
  border-radius:var(--hero-preview-radius,10px);
  background-repeat:no-repeat;
  background-position:center;
  background-size:var(--hero-preview-fit,cover);
}
.hero-preview-layout-single{grid-template-columns:1fr}
.hero-preview-layout-duo{grid-template-columns:repeat(2,1fr)}
.hero-preview-layout-trio{
  grid-template-columns:1.62fr 1fr;
  grid-template-rows:1fr 1fr;
}
.hero-preview-layout-trio .hero-preview-tile-1{grid-row:1 / 3}
.hero-preview-layout-mosaic4{
  grid-template-columns:repeat(2,1fr);
  grid-template-rows:repeat(2,1fr);
}
.hero-preview-layout-none{display:none}
.hero-device-preview.device-mobile .hero-preview-layout-trio{
  grid-template-columns:1fr 1fr;
  grid-template-rows:1.55fr 1fr;
}
.hero-device-preview.device-mobile .hero-preview-layout-trio .hero-preview-tile-1{
  grid-column:1 / 3;
  grid-row:1;
}
.hero-preview-shade{
  position:absolute;
  z-index:2;
  inset:0;
  background:linear-gradient(180deg,#0005,#0001 45%,#08080bcc);
  pointer-events:none;
}
.hero-preview-copy{
  position:absolute;
  z-index:3;
  left:7%;
  bottom:12%;
  display:grid;
  gap:2px;
  max-width:74%;
  color:#fff;
}
.hero-preview-copy small{
  font-size:6px;
  letter-spacing:.12em;
  color:#ddd;
}
.hero-preview-copy strong{
  font-size:clamp(13px,2.1vw,26px);
  line-height:1;
}
.hero-preview-copy span{
  font-size:7px;
  color:#d2d2d6;
}
.hero-preview-help{
  margin:9px 0 0;
  font-size:10px;
  line-height:1.45;
}

@media(max-width:1050px){
  .hero-designer-layout{grid-template-columns:1fr}
  .hero-device-preview-wrap{position:static}
}
@media(max-width:600px){
  .hero-photo-selectors{grid-template-columns:1fr}
  .hero-designer-title{flex-direction:column}
  .hero-device-preview.device-tablet{width:88%}
  .hero-device-preview.device-mobile{width:62%}
}



/* ===== v16.2.2: HERO LAYOUT FIX ===== */
.client-topbar{
  position:relative !important;
  top:auto !important;
  left:auto !important;
  right:auto !important;
  z-index:30 !important;
  width:100% !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:14px !important;
  padding:14px clamp(14px,4vw,52px) !important;
  background:#09090a !important;
  border-bottom:1px solid #202024 !important;
}
.top-actions{flex-wrap:wrap;justify-content:flex-end}
.client-hero{
  position:relative !important;
  padding-top:0 !important;
  min-height:var(--hero-height-desktop,360px) !important;
  display:flex !important;
  align-items:flex-end !important;
}
.hero-media{
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  transform:none !important;
  max-width:none !important;
}
.hero-content{
  width:min(1450px,100%) !important;
  margin:0 auto !important;
  padding:0 clamp(18px,5vw,72px) 42px !important;
}
@media(max-width:760px){
  .client-topbar{
    padding:12px 10px !important;
    align-items:flex-start !important;
  }
  .top-actions{gap:6px !important}
  .top-actions .ghost{padding:9px 10px;font-size:12px}
  .client-hero{min-height:var(--hero-height-mobile,300px) !important}
}


/* ===== v16.2.3: PIXEL-PERFECT HERO + AMBIENT FILL ===== */
.client-hero{
  isolation:isolate !important;
  background:var(--hero-bg-color,#09090a) !important;
}
.client-hero::before{
  content:"";
  position:absolute;
  z-index:0;
  inset:-34px;
  background-image:var(--hero-ambient-image,none);
  background-position:center;
  background-size:cover;
  filter:blur(30px) saturate(.75) brightness(.52);
  transform:scale(1.07);
  opacity:.72;
  pointer-events:none;
}
.client-hero::after{
  content:"";
  position:absolute;
  z-index:0;
  inset:0;
  background:rgba(5,5,6,.24);
  pointer-events:none;
}
.hero-media{
  z-index:1 !important;
  inset:0 auto 0 50% !important;
  width:min(100%,var(--hero-max-width,1600px)) !important;
  max-width:var(--hero-max-width,1600px) !important;
  transform:translateX(-50%) !important;
}
.hero-shade{z-index:2 !important}
.hero-content{
  z-index:3 !important;
  width:min(var(--hero-max-width,1600px),100%) !important;
}

/* Exact virtual preview: full-size canvas is scaled as one unit. */
.hero-preview-viewport{
  position:relative;
  width:100%;
  min-height:80px;
  overflow:hidden;
  border-radius:12px;
  background:#09090a;
}
.hero-device-preview{
  position:absolute !important;
  top:0;
  left:0;
  margin:0 !important;
  max-width:none !important;
  overflow:hidden;
  border:1px solid #35353b;
  border-radius:12px;
  background:var(--hero-preview-bg,#09090a);
  transition:none !important;
}
.hero-device-preview.device-desktop,
.hero-device-preview.device-tablet,
.hero-device-preview.device-mobile{
  width:auto;
  aspect-ratio:auto;
}
.hero-preview-media{
  gap:var(--hero-preview-gap,6px) !important;
}
.hero-preview-tile{
  border-radius:var(--hero-preview-radius,10px) !important;
  background-size:var(--hero-preview-fit,cover) !important;
}
.hero-preview-shade{
  opacity:1 !important;
  background:
    linear-gradient(
      180deg,
      rgba(0,0,0,calc(var(--hero-preview-overlay,.46) * .60)),
      rgba(0,0,0,.08) 43%,
      rgba(9,9,11,var(--hero-preview-overlay,.46))
    ) !important;
}
.hero-preview-copy small{font-size:10px !important}
.hero-preview-copy strong{line-height:.92 !important}

/* Range sliders paired with numeric HERO controls */
.hero-range{
  width:100%;
  height:22px;
  padding:0 !important;
  margin:3px 0 0 !important;
  border:0 !important;
  background:transparent !important;
  accent-color:#f3f3f0;
  cursor:ew-resize;
}
.hero-range::-webkit-slider-runnable-track{
  height:4px;
  border-radius:999px;
  background:#34343a;
}
.hero-range::-webkit-slider-thumb{
  -webkit-appearance:none;
  width:16px;
  height:16px;
  margin-top:-6px;
  border-radius:50%;
  background:#f3f3f0;
  border:2px solid #111114;
  box-shadow:0 0 0 1px #56565e;
}
.hero-range::-moz-range-track{
  height:4px;
  border-radius:999px;
  background:#34343a;
}
.hero-range::-moz-range-thumb{
  width:14px;
  height:14px;
  border-radius:50%;
  background:#f3f3f0;
  border:2px solid #111114;
}


/* ===== v16.2.4: STICKY WORKFLOW ===== */
/* Main action bar follows the client while scrolling. It remains in normal
   document flow, so it never overlaps the HERO. */
.client-topbar{
  position:sticky !important;
  top:0 !important;
  z-index:90 !important;
  background:rgba(9,9,10,.97) !important;
  backdrop-filter:blur(16px) !important;
  -webkit-backdrop-filter:blur(16px) !important;
  box-shadow:0 8px 24px rgba(0,0,0,.22) !important;
}

/* Filters form the second level of the sticky stack. */
.client-controls{
  position:sticky !important;
  top:var(--client-topbar-height,64px) !important;
  z-index:80 !important;
  background:rgba(11,11,13,.96) !important;
  box-shadow:0 7px 20px rgba(0,0,0,.18) !important;
}

/* Approval/reset bar follows immediately below topbar + filters. */
.selection-workflow:not([hidden]){
  position:sticky !important;
  top:calc(var(--client-topbar-height,64px) + var(--client-controls-height,58px) + 8px) !important;
  z-index:70 !important;
  background:rgba(17,17,20,.97) !important;
  backdrop-filter:blur(16px) !important;
  -webkit-backdrop-filter:blur(16px) !important;
  box-shadow:0 12px 30px rgba(0,0,0,.32) !important;
}

/* Keep sticky bars readable and prevent buttons from shrinking into each other. */
.client-topbar .top-actions > *,
.selection-workflow-actions > *{
  flex-shrink:0;
}

@media(max-width:760px){
  .client-topbar{
    position:sticky !important;
    top:0 !important;
  }
  .client-controls{
    top:var(--client-topbar-height,58px) !important;
  }
  .selection-workflow:not([hidden]){
    top:calc(var(--client-topbar-height,58px) + var(--client-controls-height,70px) + 6px) !important;
    width:calc(100% - 12px) !important;
    margin-left:auto !important;
    margin-right:auto !important;
    padding:10px 11px !important;
  }
  .selection-workflow-actions{
    width:100%;
  }
  .selection-workflow-actions > *{
    flex:1 1 150px !important;
  }
}


/* ===== v16.2.5: MOBILE GRID + COMPACT UI ===== */
@media(max-width:760px){
  .photo-grid{column-count:var(--gallery-cols-mobile) !important;column-gap:var(--gallery-gap-mobile,8px) !important;padding-left:6px !important;padding-right:6px !important}
  .photo-card{margin-bottom:var(--gallery-gap-mobile,8px) !important;border-radius:var(--gallery-card-radius-mobile,8px) !important}
  .photo-card-tools{gap:var(--gallery-button-gap-mobile,4px) !important}
  .photo-card-tools .photo-fav,.photo-card-tools .photo-reject,.photo-card-tools .photo-compare,.photo-card-tools .photo-download,.photo-card-tools .photo-select-download{min-width:var(--gallery-button-size-mobile,34px) !important;height:var(--gallery-button-size-mobile,34px) !important;font-size:calc(12px * var(--gallery-mobile-ui-scale,.88)) !important;padding:0 calc(7px * var(--gallery-mobile-ui-scale,.88)) !important}
  .client-topbar{padding:calc(10px * var(--gallery-mobile-ui-scale,.88)) clamp(10px,3vw,14px) !important}
  .client-topbar .raf-logo{width:calc(132px * var(--gallery-mobile-ui-scale,.88)) !important}
  .top-actions{gap:calc(6px * var(--gallery-mobile-ui-scale,.88)) !important}
  .top-actions .ghost{padding:calc(8px * var(--gallery-mobile-ui-scale,.88)) calc(10px * var(--gallery-mobile-ui-scale,.88)) !important;font-size:calc(12px * var(--gallery-mobile-ui-scale,.88)) !important;border-radius:calc(14px * var(--gallery-mobile-ui-scale,.88)) !important}
  .client-controls{padding:calc(10px * var(--gallery-mobile-ui-scale,.88)) clamp(8px,3vw,12px) !important}
  .segments{padding:calc(3px * var(--gallery-mobile-ui-scale,.88)) !important;border-radius:calc(12px * var(--gallery-mobile-ui-scale,.88)) !important}
  .seg{padding:calc(8px * var(--gallery-mobile-ui-scale,.88)) calc(11px * var(--gallery-mobile-ui-scale,.88)) !important;font-size:calc(12px * var(--gallery-mobile-ui-scale,.88)) !important}
  .selection-count{font-size:calc(12px * var(--gallery-mobile-ui-scale,.88)) !important}
  .selection-workflow:not([hidden]){padding:calc(10px * var(--gallery-mobile-ui-scale,.88)) calc(11px * var(--gallery-mobile-ui-scale,.88)) !important;border-radius:calc(18px * var(--gallery-mobile-ui-scale,.88)) !important}
  .selection-workflow-info strong{font-size:calc(15px * var(--gallery-mobile-ui-scale,.88)) !important}
  .selection-workflow-info small{font-size:calc(11px * var(--gallery-mobile-ui-scale,.88)) !important;line-height:1.3 !important}
  .selection-workflow-actions{gap:calc(7px * var(--gallery-mobile-ui-scale,.88)) !important}
  .selection-workflow-actions > *{padding:calc(12px * var(--gallery-mobile-ui-scale,.88)) calc(10px * var(--gallery-mobile-ui-scale,.88)) !important;font-size:calc(12px * var(--gallery-mobile-ui-scale,.88)) !important;border-radius:calc(16px * var(--gallery-mobile-ui-scale,.88)) !important}
}


/* ===== v16.3.1: REJECT WORKFLOW ===== */
.photo-card.rejected{
  opacity:1 !important;
  outline:1px solid rgba(255,74,84,.48);
  box-shadow:inset 0 0 0 1px rgba(255,74,84,.18) !important;
}
.photo-card.rejected img{
  filter:grayscale(1) brightness(.52) contrast(.9) !important;
  opacity:.68 !important;
  transition:filter .2s ease,opacity .2s ease;
}
.photo-card.rejected::after{
  content:"× ODRZUCONE";
  position:absolute;
  z-index:2;
  left:10px;
  bottom:10px;
  padding:6px 9px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:999px;
  background:rgba(139,22,34,.92);
  color:#fff;
  font-size:9px;
  font-weight:900;
  letter-spacing:.08em;
  pointer-events:none;
  box-shadow:0 6px 18px rgba(0,0,0,.32);
}
.photo-card-tools .photo-reject.active,
.photo-reject.active{
  background:#c72f43 !important;
  border-color:#e14a5d !important;
  color:#fff !important;
  box-shadow:0 0 0 2px rgba(225,74,93,.22);
}
.lightbox-stage img.rejected-preview{
  filter:grayscale(1) brightness(.52) contrast(.9);
  opacity:.72;
}
.rejected-count-summary{
  flex-shrink:0;
  color:#d8a4aa;
  font-size:13px;
  white-space:nowrap;
}
.rejected-count-summary strong{color:#ff7584}
.rejection-workflow{
  border-color:rgba(211,62,80,.42) !important;
  background:rgba(31,15,19,.97) !important;
}
.rejection-workflow-info{min-width:0}
.rejected-client-list{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  max-height:86px;
  overflow:auto;
  margin-top:9px;
  padding:8px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:12px;
  background:rgba(0,0,0,.18);
}
.rejected-client-list span{
  padding:5px 8px;
  border-radius:999px;
  background:rgba(205,55,72,.14);
  border:1px solid rgba(226,80,97,.26);
  color:#ffc0c6;
  font-size:10px;
  font-weight:800;
}
.reject-approval-badge{color:#ffadb7 !important}
.rejection-approval-history{
  display:grid;
  gap:9px;
  margin:12px 0 16px;
  padding:12px;
  border:1px solid rgba(212,69,85,.28);
  border-radius:14px;
  background:rgba(91,23,31,.10);
}

@media(max-width:760px){
  .photo-card.rejected::after{
    left:7px;
    bottom:7px;
    padding:4px 6px;
    font-size:7px;
  }
  .rejected-count-summary{
    font-size:calc(12px * var(--gallery-mobile-ui-scale,.88));
  }
  .rejected-client-list{
    max-height:68px;
    gap:4px;
    padding:6px;
  }
  .rejected-client-list span{
    padding:4px 6px;
    font-size:8px;
  }
}


/* ===== v16.3.2: REJECT HISTORY CLEANUP ===== */
.rejection-history-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
}
.rejection-history-head .eyebrow{margin:0}
.rejection-history-head .danger,
.rejection-delete-entry{
  padding:7px 10px !important;
  font-size:10px !important;
  white-space:nowrap;
}
.approval-log-mainline{
  display:flex !important;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}
.approval-log-mainline > div{
  display:grid;
  gap:3px;
  min-width:0;
}
.approval-log-mainline > div span{display:block}

@media(max-width:650px){
  .approval-log-mainline{
    align-items:stretch;
    flex-direction:column;
  }
  .rejection-delete-entry{align-self:flex-start}
  .rejection-history-head .danger{width:100%}
}
