:root{
  --zr-red:#ED1C24; --zr-red-dark:#B0151B; --zr-red-glow:#FDEDE5; --zr-honey:#F0A93B; --zr-honey-tint:#FDF1DD;
  --zr-ink:#23262B; --zr-soft:#6B6F76; --zr-cream:#FBF7F1; --zr-line:#EAE2D6;
  --zr-green:#2E9E5B; --zr-green-tint:#E5F5EC; --zr-sky:#EAF3FB;
}
.zr-app, .zr-hero, .zr-page{box-sizing:border-box;}
.zr-app *, .zr-hero *, .zr-page *{box-sizing:border-box;}
.zr-hero h1,.zr-hero h2,.zr-app h2,.zr-app h3{font-family:Arial,'Liberation Sans','Helvetica Neue',Helvetica,sans-serif;margin:0;font-weight:800;}
.zr-app button{font-family:inherit;cursor:pointer;}
.zr-app input{font-family:inherit;}
.zr-hidden{display:none !important;}
.zr-page{max-width:1180px;margin:0 auto;padding:0 20px 60px;font-family:Arial,'Liberation Sans','Helvetica Neue',Helvetica,sans-serif;color:var(--zr-ink);}

/* ---------- HERO ---------- */
.zr-hero{background:linear-gradient(135deg,var(--zr-red) 0%,#C42A1F 100%);border-radius:0 0 32px 32px;
          padding:34px 24px 40px;color:#fff;position:relative;overflow:hidden;margin-bottom:-26px;
          font-family:Arial,'Liberation Sans','Helvetica Neue',Helvetica,sans-serif;}
.zr-hero::before{content:"";position:absolute;inset:0;opacity:.12;
  background-image:radial-gradient(circle,#fff 2px,transparent 2px);background-size:26px 26px;}
.zr-hero-inner{position:relative;max-width:840px;margin:0 auto;display:flex;align-items:center;justify-content:center;gap:26px;}
.zr-hero-text{flex:1;min-width:0;text-align:left;}
.zr-org-row{display:flex;align-items:center;gap:8px;margin-bottom:14px;}
.zr-org-logo{width:32px;height:32px;flex:none;border-radius:50%;background:#fff;padding:2px;}
.zr-hero .zr-org{display:inline-block;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.35);
  font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:6px 14px;border-radius:999px;}
.zr-hero h1{font-size:clamp(26px,4vw,40px);line-height:1.08;margin-bottom:10px;font-weight:800;}
.zr-hero p{font-size:15px;opacity:.92;margin:0;}
.zr-hero-doclink{margin-top:10px !important;}
.zr-hero-doclink a{color:#fff;text-decoration:underline;font-size:13.5px;opacity:1 !important;}
.zr-bear-hero-new{flex:none;height:140px;width:auto;filter:drop-shadow(0 8px 10px rgba(0,0,0,.25));}
@media(max-width:700px){
  .zr-hero-inner{flex-direction:column;text-align:center;}
  .zr-hero-text{text-align:center;}
  .zr-org-row{justify-content:center;}
  .zr-bear-hero-new{height:100px;}
}

.zr-app{position:relative;background:#fff;border-radius:26px;box-shadow:0 18px 50px -18px rgba(158,27,20,.28);
        padding:26px;max-width:1080px;margin:0 auto;font-family:Arial,'Liberation Sans','Helvetica Neue',Helvetica,sans-serif;}

/* ---------- LOGIN / REGISTER ---------- */
.zr-login-box{max-width:440px;margin:16px auto;padding:10px;}
.zr-login-logo{display:block;width:46px;height:46px;margin:0 auto 12px;border-radius:50%;}
.zr-login-box h2{font-size:22px;margin-bottom:6px;font-weight:800;}
.zr-login-box p.zr-hint-lg{color:var(--zr-soft);font-size:14px;margin:0 0 14px;}
.zr-login-box p.zr-hint-lg a{color:var(--zr-red-dark);font-weight:700;}
.zr-field{margin-bottom:14px;}
.zr-field label{display:block;font-size:12.5px;font-weight:700;margin-bottom:5px;color:var(--zr-soft);text-transform:uppercase;letter-spacing:.03em;}
.zr-field input, .zr-field select{width:100%;padding:11px 13px;border:1.5px solid var(--zr-line);border-radius:12px;font-size:15px;background:#fff;}
.zr-field input:focus, .zr-field select:focus{outline:none;border-color:var(--zr-red);}
.zr-btn{background:var(--zr-red);color:#fff;font-weight:700;font-size:14.5px;padding:13px 18px;border-radius:12px;border:none;width:100%;
        box-shadow:0 8px 18px -8px rgba(208,39,29,.55);}
.zr-btn:disabled{opacity:.45;box-shadow:none;cursor:not-allowed;}
.zr-btn-ghost{background:#fff;color:var(--zr-red);border:1.5px solid var(--zr-red);box-shadow:none;}

.zr-tabs{display:flex;gap:6px;background:var(--zr-cream);border-radius:12px;padding:5px;margin-bottom:18px;}
.zr-tab{flex:1;background:transparent;border:none;padding:10px;border-radius:9px;font-weight:700;font-size:13.5px;color:var(--zr-soft);}
.zr-tab-active{background:#fff;color:var(--zr-red-dark);box-shadow:0 2px 6px rgba(0,0,0,.08);}

.zr-consent-box{background:var(--zr-cream);border:1px solid var(--zr-line);border-radius:12px;padding:12px 14px;margin:16px 0;}
.zr-consent-file-label{display:block;font-size:12.5px;font-weight:700;margin-bottom:6px;color:var(--zr-soft);}
#zr-input-consent-file, #zr-reg-consent-file{display:block;width:100%;font-size:12.5px;margin-bottom:6px;}
.zr-consent-label{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;color:var(--zr-soft);cursor:pointer;line-height:1.5;margin-top:10px;}
.zr-consent-label input{margin-top:3px;flex:none;width:16px;height:16px;}
.zr-consent-label a{color:var(--zr-red-dark);font-weight:700;}
.zr-hint{font-size:12px;color:#B7BCC4;margin-top:8px;}
.zr-hint a{color:var(--zr-red-dark);font-weight:700;}
.zr-login-error{color:var(--zr-red);font-size:12.5px;font-weight:700;margin-top:10px;min-height:1px;}
.zr-forgot-link{background:none;border:none;color:var(--zr-soft);font-size:12.5px;text-decoration:underline;padding:0;margin-top:10px;cursor:pointer;display:block;}
.zr-forgot-input{width:100%;padding:10px;border:1.5px solid var(--zr-line);border-radius:10px;font-size:14px;box-sizing:border-box;margin-bottom:8px;margin-top:8px;}
.zr-inline-msg{font-size:12.5px;font-weight:700;margin-top:8px;}

.zr-gallery-hook{margin-top:36px;padding-top:28px;border-top:1px solid var(--zr-line);}
.zr-gallery-heading{text-align:center;font-size:22px;margin-bottom:4px;}

/* ---------- TOPBAR ---------- */
.zr-topbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:16px;}
.zr-topbar h2{font-size:20px;font-weight:800;}
.zr-topbar .zr-class{font-size:12.5px;color:var(--zr-soft);font-weight:600;}
.zr-topbar-actions{display:flex;gap:8px;}
.zr-logout{background:var(--zr-cream);border:1px solid var(--zr-line);color:var(--zr-soft);font-size:12px;font-weight:700;padding:9px 13px;border-radius:10px;}
#zr-account-panel{margin-bottom:16px;}

/* ---------- MAPA MESTA ---------- */
.zr-map-wrap{position:relative;background:var(--zr-sky);border:1px solid var(--zr-line);border-radius:22px;padding:8px;margin-bottom:22px;overflow:hidden;}
.zr-map-svg{width:100%;height:auto;display:block;border-radius:16px;}
.zr-mapbox{position:relative;}

.zr-pin{position:absolute;width:40px;height:40px;transform:translate(-50%,-100%);cursor:pointer;transition:transform .15s;}
.zr-pin:hover{transform:translate(-50%,-100%) scale(1.08);}
.zr-pin-shape{width:38px;height:38px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);
  display:flex;align-items:center;justify-content:center;box-shadow:0 4px 8px rgba(0,0,0,.22);
  background:#fff;border:3px solid var(--zr-line);}
.zr-pin-num{transform:rotate(45deg);font-weight:800;font-size:14px;color:var(--zr-soft);}
.zr-pin.zr-done .zr-pin-shape{background:var(--zr-green);border-color:var(--zr-green);}
.zr-pin.zr-done .zr-pin-num{color:#fff;}
.zr-pin.zr-active .zr-pin-shape{background:var(--zr-red);border-color:var(--zr-red);animation:zrPulse 1.6s ease-in-out infinite;}
.zr-pin.zr-active .zr-pin-num{color:#fff;}
.zr-pin.zr-locked{cursor:not-allowed;opacity:.55;}
.zr-pin.zr-locked .zr-pin-num{color:#B9BEC6;}
@keyframes zrPulse{0%,100%{box-shadow:0 4px 8px rgba(0,0,0,.22),0 0 0 0 rgba(208,39,29,.35);}50%{box-shadow:0 4px 8px rgba(0,0,0,.22),0 0 0 10px rgba(208,39,29,0);}}

.zr-sign{position:absolute;transform:translate(-50%,4px);background:#2C5F8A;color:#fff;font-size:9.5px;font-weight:700;
  padding:3px 7px;border-radius:5px;white-space:nowrap;box-shadow:0 2px 4px rgba(0,0,0,.18);letter-spacing:.01em;}
.zr-sign.zr-sign-big{font-size:11.5px;padding:4px 10px;font-weight:800;}

#zr-amb{position:absolute;font-size:34px;transform:translate(-50%,-58%);
  transition:left .8s cubic-bezier(.4,0,.2,1), top .8s cubic-bezier(.4,0,.2,1), transform .3s ease;
  filter:drop-shadow(0 3px 4px rgba(0,0,0,.32));z-index:6;pointer-events:none;}
#zr-amb.zr-amb-flip{transform:translate(-50%,-58%) scaleX(-1);}
@media(max-width:640px){ #zr-amb{font-size:24px;} }

/* ---------- STOP CARD ---------- */
.zr-card{background:#fff;border:1px solid var(--zr-line);border-radius:20px;padding:26px;margin-bottom:16px;
         box-shadow:0 10px 26px -18px rgba(35,38,43,.25);}
.zr-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:8px;}
.zr-card-head h2{font-size:21px;font-weight:800;}
.zr-badge-done{background:var(--zr-green-tint);color:var(--zr-green);font-size:12px;font-weight:800;padding:6px 11px;border-radius:999px;white-space:nowrap;}
.zr-materials{background:var(--zr-red-glow);border-radius:13px;padding:13px 15px;font-size:13.5px;margin:14px 0;}
.zr-materials strong{color:var(--zr-red-dark);}
.zr-card p.zr-desc{font-size:14.5px;color:var(--zr-soft);line-height:1.55;margin:0 0 14px;}

.zr-upload-zone{border:2px dashed var(--zr-line);border-radius:16px;padding:20px;text-align:center;margin-bottom:14px;background:var(--zr-cream);}
.zr-upload-zone input{display:none;}
.zr-upload-btn{display:inline-block;background:var(--zr-red);color:#fff;font-weight:700;font-size:13.5px;padding:10px 18px;border-radius:11px;}
.zr-thumbs{display:flex;flex-wrap:wrap;gap:9px;margin-top:14px;}
.zr-thumb{position:relative;width:78px;height:78px;border-radius:12px;overflow:hidden;border:1px solid var(--zr-line);}
.zr-thumb img{width:100%;height:100%;object-fit:cover;}
.zr-thumb button{position:absolute;top:3px;right:3px;background:rgba(0,0,0,.55);color:#fff;border:none;border-radius:50%;width:19px;height:19px;font-size:11px;line-height:1;}
.zr-submit{margin-top:12px;}
.zr-upload-status{font-size:12px;color:var(--zr-green);margin-top:8px;font-weight:700;}

.zr-material-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px;}
.zr-material-link{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1.5px solid var(--zr-line);
  color:var(--zr-red-dark);font-weight:700;font-size:13px;padding:9px 14px;border-radius:11px;text-decoration:none;margin-bottom:0;}
.zr-material-link:hover{border-color:var(--zr-red);}

.zr-final-card{background:linear-gradient(135deg,var(--zr-red) 0%,#C42A1F 100%);color:#fff;text-align:center;
  animation:zrPop .4s ease;}
@keyframes zrPop{from{transform:scale(.94);opacity:0;}to{transform:scale(1);opacity:1;}}
.zr-final-card .zr-emoji{font-size:44px;margin-bottom:6px;}
.zr-final-card h2{font-size:23px;color:#fff;}
.zr-final-card h3{font-size:18px;color:#fff;margin:8px 0 10px;}
.zr-final-card p{color:#fff;max-width:460px;margin:10px auto 16px;}
.zr-final-card .zr-materials{background:rgba(255,255,255,.14);color:#fff;text-align:left;max-width:440px;margin:0 auto 16px;}
.zr-final-card .zr-materials strong{color:#fff;font-weight:800;}
.zr-final-card a.zr-btn{display:inline-block;width:auto;text-decoration:none;background:#fff;color:var(--zr-red);padding:13px 26px;font-weight:800;}
.zr-final-card .zr-hint{color:#fff !important;}
.zr-discount{background:rgba(255,255,255,.16);border:1px dashed rgba(255,255,255,.55);border-radius:13px;
  padding:13px 15px;font-size:13.5px;margin:14px auto;max-width:460px;color:#fff;}
.zr-discount strong{color:#fff;font-weight:800;}

.zr-competition-box{background:rgba(255,255,255,.14);color:#fff;border-radius:14px;padding:16px;max-width:460px;margin:0 auto 14px;text-align:left;border:1px solid rgba(255,255,255,.25);}
.zr-competition-box .zr-consent-label{color:#fff;}
.zr-competition-box .zr-consent-label a{color:#fff;font-weight:800;text-decoration:underline;}
.zr-final-card .zr-upload-zone .zr-hint{color:#fff;}

.zr-footer-note{text-align:center;font-size:12px;color:#B7BCC4;margin-top:8px;}

/* ---------- GALÉRIA ---------- */
.zr-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px;margin-top:10px;}
.zr-gallery-card{background:#fff;border:1px solid var(--zr-line);border-radius:18px;overflow:hidden;box-shadow:0 10px 26px -18px rgba(35,38,43,.25);}
.zr-gallery-card img{width:100%;height:170px;object-fit:cover;display:block;}
.zr-gallery-info{padding:14px 16px;}
.zr-gallery-info h3{font-size:15px;margin:0 0 2px;}
.zr-gallery-region{font-size:11.5px;color:var(--zr-soft);margin-bottom:8px;}
.zr-gallery-votes{font-size:13px;font-weight:700;color:var(--zr-red-dark);margin-bottom:10px;}
.zr-vote-btn{width:100%;}
.zr-vote-form{margin-top:10px;display:flex;flex-direction:column;gap:6px;}
.zr-vote-form input{padding:9px 11px;border:1.5px solid var(--zr-line);border-radius:9px;font-size:13px;}
.zr-vote-msg{font-size:12px;font-weight:700;min-height:14px;}


/* ---------- ODPOČET SÚŤAŽE ---------- */
.zr-countdown{
  text-align:center;
  background:linear-gradient(135deg,#FFF6EB,#FCEFE3);
  border:1.5px solid #F0D5B8;
  border-radius:16px;
  padding:16px 18px;
  margin:18px auto 8px;
  max-width:420px;
}
.zr-countdown-label{font-size:13px;font-weight:700;color:#B0151B;margin-bottom:6px;}
.zr-countdown-digits{
  display:flex;align-items:baseline;justify-content:center;gap:4px;
  font-size:28px;font-weight:800;color:#2B2B2B;letter-spacing:0.5px;
}
.zr-countdown-digits small{font-size:12px;font-weight:600;color:#8A7A6A;margin-right:8px;}
.zr-countdown-date{font-size:12px;color:#8A7A6A;margin-top:6px;}

/* ---------- VÍŤAZ V GALÉRII ---------- */
.zr-gallery-card--winner{
  border:3px solid #D4AF37 !important;
  box-shadow:0 0 0 3px rgba(212,175,55,.35), 0 14px 32px -14px rgba(180,130,20,.45) !important;
  position:relative;
  background:linear-gradient(180deg,#FFFDF5 0%,#fff 40%);
}
.zr-gallery-card--winner img{
  border-bottom:2px solid #E8C96A;
}
.zr-winner-ribbon{
  position:absolute;top:10px;left:10px;z-index:2;
  background:linear-gradient(135deg,#F5D76E,#D4AF37);
  color:#5C4500;font-size:12px;font-weight:800;
  padding:5px 12px;border-radius:999px;
  border:1px solid #C9A227;
  box-shadow:0 4px 10px rgba(180,130,20,.35);
}
.zr-winner-note{
  font-size:12.5px;font-weight:700;color:#8B6914;
  background:#FFF6D6;border-radius:8px;padding:8px 10px;text-align:center;
}


/* ---------- ORIENTÁCIA MOBILU ---------- */
.zr-orient-overlay{
  position:fixed;inset:0;z-index:99999;
  background:rgba(25,20,18,.94);
  display:flex;align-items:center;justify-content:center;
  padding:24px;text-align:center;
}
.zr-orient-overlay.zr-hidden{display:none !important;}
.zr-orient-box{
  max-width:340px;color:#fff;
}
.zr-orient-box .zr-orient-icon{font-size:52px;margin-bottom:12px;}
.zr-orient-box h2{color:#fff;font-size:20px;margin:0 0 10px;}
.zr-orient-box p{color:#fff;font-size:14.5px;line-height:1.55;margin:0;}
.zr-orient-box strong{font-weight:800;}
