:root{--green:#7EA52F;--dark:#1f3517;--light:#F4F8EF;--cream:#FFF8E8;--sky:#E8F5FF;--line:#DCE8C7;--text:#1D2B13;--muted:#59664B;--danger:#B94B4B}
*{box-sizing:border-box} html,body{margin:0;padding:0;background:var(--light);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif} body{padding-bottom:92px}
button,input,select,textarea{font:inherit} input:not([type="radio"]):not([type="checkbox"]){width:100%;padding:13px;border-radius:15px;border:1px solid var(--line);background:white;margin:6px 0 12px}
input[type="radio"],input[type="checkbox"]{width:auto;accent-color:var(--green);margin:0 8px 0 0;flex-shrink:0}
label{font-weight:900;font-size:13px}.appbar{position:sticky;top:0;z-index:20;background:rgba(244,248,239,.94);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.appbar-inner{display:flex;align-items:center;gap:12px;padding:12px 16px;max-width:800px;margin:auto}.app-icon{width:42px;height:42px;border-radius:14px}.title{font-weight:900;line-height:1.05}.subtitle{font-size:12px;color:var(--muted);font-weight:700}
.container{max-width:800px;margin:0 auto;padding:16px}.screen{display:none}.screen.active{display:block}.hero,.card,.tile{background:#fff;border:1px solid var(--line);border-radius:26px;box-shadow:0 8px 22px rgba(0,0,0,.04)}.hero{padding:18px;overflow:hidden}.hero-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:12px;align-items:center}.hero h1{margin:0 0 8px;color:var(--green);font-size:31px;line-height:1.05}.hero p,p{line-height:1.5}.muted{color:var(--muted)}.kika{width:100%;max-height:220px;object-fit:contain}
.card{padding:16px;margin:14px 0}.card h2,.card h3{margin:0 0 8px;color:var(--dark)}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.tile{padding:16px;min-height:116px;text-align:left;border:1px solid var(--line)}.tile .emoji{font-size:28px}.tile strong{display:block;margin:8px 0 4px}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.btn{border:0;border-radius:999px;padding:12px 16px;background:var(--green);color:white;font-weight:900;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn.secondary{background:#E9F2D8;color:var(--dark)}.btn.ghost{background:white;color:var(--dark);border:1px solid var(--line)}.btn.danger{background:var(--danger)}
.progress{height:12px;background:#E6EED8;border-radius:999px;overflow:hidden}.progress span{display:block;height:100%;width:0;background:var(--green);border-radius:999px;transition:.3s}.badge{display:inline-flex;padding:7px 10px;border-radius:999px;background:#EEF5DF;border:1px solid #D7E8B2;font-weight:800;font-size:13px}
.stop-card{overflow:hidden;padding:0}.stop-card img{width:100%;height:210px;object-fit:cover;display:block}.stop-card .body{padding:16px}.question{background:var(--cream);border-radius:18px;padding:14px;margin:12px 0;border:1px solid #F0E1B6}
.map{position:relative;min-height:440px;background:linear-gradient(145deg,#E9F6FF,#F8FBEF);border:1px solid var(--line);border-radius:28px;overflow:hidden}.route-line{position:absolute;left:50%;top:40px;bottom:40px;width:5px;background:linear-gradient(var(--green),#B8D879);border-radius:999px;opacity:.65}.pin{position:absolute;left:50%;transform:translateX(-50%);width:54px;height:54px;border-radius:20px;background:white;border:2px solid var(--green);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 18px rgba(0,0,0,.12);font-size:23px}.pin.done{background:#EEF5DF}.pin span{position:absolute;left:64px;width:220px;font-size:13px;font-weight:900;color:var(--dark)}
.nav{position:fixed;left:0;right:0;bottom:0;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);border-top:1px solid var(--line);z-index:30}.nav-inner{max-width:800px;margin:auto;display:grid;grid-template-columns:repeat(5,1fr);gap:2px;padding:8px 8px 10px}.nav button{background:transparent;border:0;border-radius:16px;padding:8px 3px;color:var(--muted);font-size:11px;font-weight:800}.nav button.active{background:#EEF5DF;color:var(--dark)}.nav .nicon{font-size:21px;display:block}
.sticker-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.sticker{background:white;border:1px solid var(--line);border-radius:24px;padding:12px;text-align:center}.sticker img{width:100%;max-height:150px;object-fit:contain}.note-output{white-space:pre-wrap;background:#17220D;color:#D7F0A7;border-radius:18px;padding:14px;font:12px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:auto}.install-box{display:none;background:#fff3cd;border:1px solid #f4d47c;border-radius:22px;padding:14px;margin:14px 0}
.auth-wrap{min-height:calc(100vh - 90px);display:grid;align-items:center}.auth-card{max-width:520px;margin:0 auto;background:white;border:1px solid var(--line);border-radius:32px;padding:22px;box-shadow:0 14px 30px rgba(0,0,0,.06)}.auth-logo{display:flex;gap:12px;align-items:center;margin-bottom:16px}.auth-logo img{width:64px;height:64px;border-radius:20px}.hidden{display:none!important}.sync-pill{font-size:12px;font-weight:900;color:var(--muted)}
@media(max-width:560px){.hero-grid{grid-template-columns:1fr}.hero h1{font-size:28px}.grid2{grid-template-columns:1fr 1fr}.container{padding:14px}.pin span{width:150px;font-size:12px}.auth-card{border-radius:24px}}



/* v2.6 final web polish */
:root{--red:#E63C3C;--yellow:#FFD86B;--softgreen:#A8CF5A}
.brand-chip{display:inline-flex;align-items:center;gap:8px;background:#E9F2D8;color:var(--dark);border-radius:999px;padding:8px 12px;font-weight:900}
.info-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}
.info-mini{background:#fff;border:1px solid var(--line);border-radius:16px;padding:10px;text-align:center}
.info-mini b{display:block;color:var(--dark)}
.source-label{display:none}
body.show-verification .source-label{display:block}
.species-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.species-card{background:white;border:1px solid var(--line);border-radius:18px;padding:10px;text-align:center}
.species-card .species-icon{font-size:28px}
.admin-only{display:none}
@media(min-width:820px){.container{max-width:980px}.home-dashboard{display:grid;grid-template-columns:1.05fr .95fr;gap:14px;align-items:start}}
@media(max-width:560px){.species-grid{grid-template-columns:repeat(2,1fr)}.info-row{grid-template-columns:1fr}}




/* v2.7 image-rich nature gallery */
.nature-gallery{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.nature-card{background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden}
.nature-card img{width:100%;display:block;aspect-ratio:4/3;object-fit:cover;background:#fff}
.nature-copy{padding:12px 14px}
@media(max-width:700px){.nature-gallery{grid-template-columns:1fr}}


/* v2.8 complete image-rich web */
.featured-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.feature-card,.nature-card{background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 8px 22px rgba(0,0,0,.04)}
.feature-card img,.nature-card img{width:100%;display:block;aspect-ratio:4/3;object-fit:cover}
.feature-copy,.nature-copy{padding:12px 14px}
.nature-gallery{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.admin-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.admin-thumb{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff}
.admin-thumb img{width:100%;display:block;aspect-ratio:4/3;object-fit:cover}
.admin-thumb span{display:block;padding:8px 10px;font-size:13px}
@media(max-width:900px){.featured-gallery{grid-template-columns:1fr}.nature-gallery{grid-template-columns:1fr}.admin-thumbs{grid-template-columns:1fr 1fr}}


/* v2.9 final QA: layout, GPS, badges */
.nav-inner{grid-template-columns:repeat(6,1fr)}
.stop-meta-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.gps-small{background:#E8F5FF;border-color:#B9DDF7;color:#1f3517}
.gps-panel{background:#F7FBF0;border:1px solid var(--line);border-radius:20px;padding:12px;margin-top:12px}
.gps-panel .gps-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.stop-actions-mini{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.stop-info-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0}
.stop-info-chip{background:#F7FBF0;border:1px solid var(--line);border-radius:14px;padding:8px 10px;font-size:12px}
.badge-preview{display:flex;gap:14px;align-items:center;background:#FFF8E8;border:1px solid #F0E1B6;border-radius:20px;padding:12px;margin:12px 0}
.badge-preview img{width:82px;height:82px;object-fit:contain;filter:drop-shadow(0 6px 10px rgba(0,0,0,.12))}
.stop-card img{background:#fff}
.stop-card .body h2{line-height:1.18}
.feature-copy h3,.nature-copy h3{margin:0 0 4px}
.map{min-height:520px}
.pin{transition:transform .18s ease, box-shadow .18s ease}
.pin:hover{transform:translateX(-50%) scale(1.04)}
.pin.next{background:#FFF8E8;border-color:#E63C3C}
.pin small{position:absolute;right:62px;width:70px;text-align:right;font-size:10px;color:var(--muted);font-weight:800}
.sticker img{filter:drop-shadow(0 6px 10px rgba(0,0,0,.10))}
.sticker strong{display:block;line-height:1.2}
.auth-card{animation:softIn .25s ease-out}
@keyframes softIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:560px){
  .nav-inner{grid-template-columns:repeat(6,1fr);padding-left:4px;padding-right:4px}
  .nav button{font-size:10px;padding:7px 1px}
  .nav .nicon{font-size:19px}
  .stop-info-row{grid-template-columns:1fr}
  .badge-preview img{width:68px;height:68px}
}


/* v3.0 content refresh */
.fact-box{background:#F7F4E8}
.quiz-box{background:#F5FAEF}
.species-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.species-card.rich{display:grid;grid-template-columns:120px 1fr;gap:12px;align-items:start;text-align:left;padding:12px;border-radius:22px;box-shadow:0 8px 22px rgba(0,0,0,.04)}
.species-photo{width:120px;height:120px;object-fit:cover;border-radius:18px;border:1px solid var(--line);background:#fff}
.species-copy strong{color:var(--dark)}
.species-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.species-head .species-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:999px;background:#F0F5E2;font-size:18px}
.species-fact{background:#FFF9E8;border:1px solid #F0E1B6;border-radius:14px;padding:8px 10px;margin:8px 0;color:#5A4A14}
.species-quiz{background:#F6FAEE;border:1px solid var(--line);border-radius:14px;padding:8px 10px;line-height:1.45}
@media(max-width:720px){.species-grid{grid-template-columns:1fr}.species-card.rich{grid-template-columns:1fr}.species-photo{width:100%;height:180px}}


/* v3.1 richer cards */
.home-stops-teaser{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.teaser-card{display:grid;grid-template-columns:140px 1fr;gap:14px;background:#fff;border:1px solid var(--line);border-radius:24px;overflow:hidden;box-shadow:0 8px 22px rgba(0,0,0,.04)}
.teaser-card img{width:100%;height:100%;min-height:140px;object-fit:cover}
.teaser-copy{padding:14px}
.teaser-copy h3{margin:8px 0 8px;color:var(--dark)}
.badge.playful{background:#F0F5E2;color:var(--green);border:1px solid #DCE7C4}
.rich-stop-body h3{margin-top:10px}
.stop-top-row{display:flex;justify-content:space-between;align-items:center;gap:8px}
.stop-teaser{margin:10px 0 0}
.mini-callout{margin-top:10px;background:#FFF8E7;border:1px solid #F0E1B6;border-radius:16px;padding:10px 12px;line-height:1.45;color:#5A4A14}
.mini-callout.alt{background:#F5FAEF;border-color:var(--line);color:var(--dark)}
.related-box{background:#EEF6E2}
.mission-card{border-left:6px solid var(--green)}
.species-observe{background:#EFF6E5;border:1px solid var(--line);border-radius:14px;padding:8px 10px;margin:8px 0;color:var(--dark)}
@media(max-width:720px){.home-stops-teaser{grid-template-columns:1fr}.teaser-card{grid-template-columns:1fr}.teaser-card img{height:180px}}


/* v3.2 final user UX polish */
:root{
  --radius-big: 28px;
  --soft-shadow: 0 14px 34px rgba(31,53,23,.08);
}
body{background:linear-gradient(180deg,#F7FBF0 0%,#FFFDF6 42%,#F4F8EF 100%)}
.appbar{backdrop-filter:blur(14px)}
.hero,.card,.auth-card{box-shadow:var(--soft-shadow)}
.hero h1{letter-spacing:-.04em}
.hero p{font-size:18px;line-height:1.48}
.tile{transition:transform .18s ease, box-shadow .18s ease}
.tile:hover,.feature-card:hover,.teaser-card:hover,.species-card.rich:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(31,53,23,.10)}
.stop-card{overflow:hidden}
.stop-card > img{max-height:260px;object-fit:cover;background:#fff}
.stop-card .body{padding:18px}
.stop-card h3,.stop-card h2{line-height:1.2}
.question{line-height:1.55}
.btn{box-shadow:0 8px 18px rgba(126,165,47,.18)}
.btn.ghost{box-shadow:none}
.feature-card img,.teaser-card img,.nature-card img{filter:saturate(1.03) contrast(1.02)}
.species-card.rich{min-height:160px}
.species-photo{box-shadow:0 8px 18px rgba(0,0,0,.08)}
.nav{box-shadow:0 -10px 30px rgba(31,53,23,.08)}
.nav button{border-radius:16px}
.nav button.active{background:#F0F5E2;color:var(--green)}
.gps-panel strong{font-size:17px}
.home-stops-teaser .btn{padding:9px 12px;font-size:13px}
.badge-preview strong{color:var(--dark)}
@media(max-width:720px){
  .hero p{font-size:16px}
  .stop-card > img{max-height:220px}
  .container{padding-left:12px;padding-right:12px}
  .appbar-inner .title{font-size:16px}
  .appbar-inner .subtitle{font-size:11px}
}

/* v3.2.2 real login fix */
.demo-login-card{background:#F7FBF0!important;border:1px solid var(--line)}
.demo-credentials{display:inline-flex;align-items:center;gap:8px;background:#FFF8E8;border:1px solid #F0E1B6;border-radius:999px;padding:10px 14px;margin:8px 0 12px;color:var(--dark)}

/* v3.2.3 real login render fix */
.demo-login-card{background:#F7FBF0!important;border:1px solid var(--line)}
.demo-credentials{display:inline-flex;align-items:center;gap:8px;background:#FFF8E8;border:1px solid #F0E1B6;border-radius:999px;padding:10px 14px;margin:8px 0 12px;color:var(--dark)}

/* v4 original visual direction – Staré Mesto deťom */
:root{
  --green:#7DB343;
  --green2:#A8CF5A;
  --cream:#F7F3E7;
  --yellow:#FFD86B;
  --red:#E63C3C;
  --soft:#FFFDF4;
}
body{background:
  radial-gradient(circle at 8% 12%, rgba(168,207,90,.22), transparent 30%),
  radial-gradient(circle at 92% 6%, rgba(255,216,107,.18), transparent 25%),
  linear-gradient(180deg,#FBF8EF 0%,#FFFDF7 50%,#F4F8EF 100%);
}
.appbar{background:rgba(251,248,239,.94)}
.title{font-weight:1000;color:var(--green);letter-spacing:-.02em}
.hero{
  background:
    linear-gradient(90deg, rgba(255,255,255,.90), rgba(255,255,255,.74)),
    radial-gradient(circle at 86% 8%, rgba(126,165,47,.16), transparent 20%);
  border-radius:34px;
}
.hero h1{
  font-size:42px;
  color:var(--green);
  text-shadow:0 2px 0 rgba(255,255,255,.8);
}
.hero p strong{color:var(--dark);font-size:20px}
.visual-mini-strip{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
  margin:14px 0;
}
.visual-mini-strip span{
  background:white;
  border:1px solid var(--line);
  border-radius:22px;
  padding:14px 12px;
  font-weight:1000;
  text-align:center;
  color:var(--dark);
  box-shadow:0 8px 22px rgba(31,53,23,.05);
}
.tile,.feature-card,.teaser-card,.species-card.rich,.nature-card{
  border-radius:24px;
}
.tile .emoji{font-size:34px}
.badge.playful,.badge{
  background:#EFF7DF;
  color:var(--green);
  border-color:#D8EBC2;
}
.btn{
  background:linear-gradient(180deg,var(--green2),var(--green));
}
.btn.secondary{
  background:#FFF8E8;
  color:var(--dark);
  border:1px solid #F0E1B6;
}
.mysql-note{
  display:inline-flex;
  background:#EFF7DF;
  color:var(--green);
  border:1px solid #D8EBC2;
  border-radius:999px;
  padding:8px 12px;
  font-size:12px;
  font-weight:1000;
  margin:0 0 10px;
}
.demo-login-card{
  background:#F8FBEF!important;
}
@media(max-width:720px){
  .hero h1{font-size:34px}
  .visual-mini-strip{grid-template-columns:1fr 1fr}
}


/* v4.1 clickability and evaluation */
.clickable{cursor:pointer;transition:transform .16s ease, box-shadow .16s ease}
.clickable:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(31,53,23,.12)}
.clickable-image{cursor:pointer}
.click-hint{display:inline-flex;margin-top:8px;background:#EFF7DF;color:var(--green);border:1px solid #D8EBC2;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:1000}
.eval-box,.eval-result{background:#F8FBEF;border:1px solid var(--line);border-radius:20px;padding:14px;margin:12px 0;line-height:1.5}
.eval-result{background:#FFF8E8;border-color:#F0E1B6}
.toast{position:fixed;left:50%;bottom:92px;transform:translateX(-50%) translateY(20px);opacity:0;background:var(--dark);color:white;border-radius:999px;padding:12px 16px;font-weight:900;z-index:9999;box-shadow:0 12px 30px rgba(0,0,0,.22);transition:all .22s ease}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.stop-actions-mini{display:flex;flex-wrap:wrap;gap:8px}
.sticker{cursor:pointer}


/* v4.2 full flow fixes */
.kika{animation:kikaBounce 3.4s ease-in-out infinite;transform-origin:50% 90%}
@keyframes kikaBounce{0%,100%{transform:translateY(0) rotate(0deg)}35%{transform:translateY(-8px) rotate(-1deg)}70%{transform:translateY(-3px) rotate(1deg)}}
select{width:100%;padding:13px;border-radius:15px;border:1px solid var(--line);background:white;margin:6px 0 12px}
.sticker.unlocked{background:linear-gradient(180deg,#FFFDF6,#F6FAEE);border:2px solid #B9D988;box-shadow:0 16px 34px rgba(126,165,47,.16)}
.sticker.locked{opacity:.74}
.sticker .sticker-place-img{width:100%;height:120px;object-fit:cover;border-radius:18px;margin-bottom:10px}
.sticker .sticker-badge-img{width:84px;height:84px;object-fit:contain;margin:-52px auto 4px;display:block;filter:drop-shadow(0 8px 10px rgba(0,0,0,.12))}
.unlock-ribbon{display:inline-flex;background:#7DB343;color:white;border-radius:999px;padding:6px 10px;font-weight:1000;font-size:12px;margin:4px 0}
.rain-places-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.rain-place{background:#fff;border:1px solid var(--line);border-radius:24px;padding:14px;box-shadow:0 8px 22px rgba(31,53,23,.05)}
.rain-place .place-type{display:inline-flex;background:#EFF7DF;color:var(--green);border-radius:999px;padding:6px 10px;font-weight:1000;font-size:12px}
.rain-place h3{margin-top:10px}
.final-quiz-box{display:grid;gap:10px}
.quiz-item{background:#fff;border:1px solid var(--line);border-radius:18px;padding:12px}
.quiz-item label{display:flex;gap:8px;align-items:flex-start;font-weight:700;margin:6px 0}
.task-level-chip{display:inline-flex;border-radius:999px;background:#FFF8E8;border:1px solid #F0E1B6;padding:6px 10px;font-size:12px;font-weight:1000;margin:4px 0;color:var(--dark)}
.stop-card.opened-ok{outline:3px solid rgba(126,165,47,.25)}
@media(max-width:720px){.rain-places-grid{grid-template-columns:1fr}.sticker .sticker-place-img{height:150px}}

/* v4.2.3 cursor fix: buttons and clickable controls must show a hand cursor */
button, .btn, .nav button, .tile, .pin, [role="button"], [onclick], label.btn{cursor:pointer}
button:disabled, .btn:disabled{cursor:not-allowed}
