:root{
  --green:#0f3d2e; --green-2:#12503b; --steel:#2b3a42; --rail:#c9a227;
  --bg:#f6f7f5; --card:#ffffff; --ink:#1c2621; --muted:#6b7772;
  --line:#e3e7e3; --shadow:0 2px 10px rgba(15,61,46,.08);
  --radius:14px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  color:var(--ink);background:var(--bg);line-height:1.6}
a{color:var(--green-2);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%}
.wrap{width:100%;max-width:1100px;margin:0 auto;padding:0 18px}

/* Header */
.site-header{background:var(--green);color:#fff;position:sticky;top:0;z-index:1000}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;height:60px}
.brand{color:#fff;font-weight:800;font-size:1.15rem;display:flex;align-items:center;gap:8px}
.brand:hover{text-decoration:none}
.main-nav{display:flex;gap:6px;flex-wrap:wrap}
.main-nav a{color:#dfeee7;padding:8px 12px;border-radius:8px;font-weight:600;font-size:.95rem}
.main-nav a:hover{background:rgba(255,255,255,.12);text-decoration:none}

/* Hero */
.hero{background:linear-gradient(160deg,var(--green),var(--green-2));color:#fff;padding:38px 0 46px}
.hero-inner{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:center}
.hero h1{font-size:2.3rem;line-height:1.15;margin:.2em 0}
.lead{font-size:1.12rem;color:#e7f1ec}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0 8px}
.hero-stats{list-style:none;display:flex;gap:22px;padding:0;margin:18px 0 0}
.hero-stats strong{display:block;font-size:1.5rem;color:var(--rail)}
.hero-stats li{color:#cfe3da;font-size:.9rem}
.hero-map{height:320px;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.hero-map #map{width:100%;height:100%}

/* Buttons */
.btn{display:inline-block;padding:11px 18px;border-radius:10px;font-weight:700;border:2px solid transparent;cursor:pointer}
.btn:hover{text-decoration:none}
.btn-primary{background:var(--rail);color:#20160a}
.btn-primary:hover{filter:brightness(1.05)}
.btn-ghost{border-color:rgba(255,255,255,.5);color:#fff}
.btn-ghost:hover{background:rgba(255,255,255,.1)}

/* Sections */
.section{padding:36px 18px}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:18px}
.section-head h2{margin:0;font-size:1.5rem}
.more{font-weight:700;white-space:nowrap}
h1{font-size:2rem;line-height:1.2}

/* Cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.cards-sm{grid-template-columns:repeat(3,1fr)}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);overflow:hidden;transition:transform .12s,box-shadow .12s;color:var(--ink)}
.card:hover{transform:translateY(-3px);box-shadow:0 8px 22px rgba(15,61,46,.14);text-decoration:none}
.card-body{padding:16px 18px}
.card h3{margin:.2em 0 .3em;font-size:1.12rem}
.card p{margin:0;color:var(--muted);font-size:.95rem}
.card-meta{display:flex;gap:14px;flex-wrap:wrap;margin-top:12px;font-size:.85rem;color:var(--steel)}
.rating{color:var(--rail);letter-spacing:1px}

/* Tags */
.tag{display:inline-block;font-size:.72rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.4px;padding:3px 9px;border-radius:20px;background:#eef3ef;color:var(--green-2)}
.tag-lehká{background:#e4f3e8;color:#1f7a3f}
.tag-střední{background:#fff2dd;color:#a4741a}
.tag-těžká{background:#fbe4e4;color:#a53434}

/* Detail */
.detail .prose{max-width:760px;font-size:1.06rem}
.prose ul{padding-left:1.2em}
.detail-meta{display:flex;gap:18px;flex-wrap:wrap;margin:14px 0 22px;color:var(--steel);font-weight:600;font-size:.95rem}
.crumbs{font-size:.88rem;color:var(--muted);margin-bottom:10px}
.back{margin-top:26px}
.center{text-align:center}
.muted{color:var(--muted)}

/* Map page */
.map-page{position:relative}
.map-page #map{height:calc(100vh - 60px);width:100%}
.detail #map{height:320px;border-radius:var(--radius);margin:24px 0;box-shadow:var(--shadow)}
.map-legend{position:absolute;bottom:16px;left:16px;z-index:800;background:#fff;
  border-radius:12px;box-shadow:var(--shadow);padding:10px 14px;display:flex;gap:14px;
  align-items:center;flex-wrap:wrap;font-size:.9rem}
.map-legend button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 10px;cursor:pointer;font-weight:600}
.legend-note{color:var(--muted);font-size:.8rem;font-style:italic}

/* Footer */
.site-footer{background:var(--steel);color:#cdd6d9;margin-top:40px;padding:30px 0}
.footer-inner{display:grid;grid-template-columns:2fr 1fr;gap:20px;align-items:start}
.site-footer strong{color:#fff}
.site-footer p{margin:.4em 0;font-size:.92rem}
.site-footer nav{display:flex;flex-direction:column;gap:6px}
.site-footer nav a{color:#cdd6d9}
.copy{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.12);padding-top:14px;font-size:.82rem;color:#9aa8ac}

/* Forms */
.narrow{max-width:680px}
.form{display:flex;flex-direction:column;gap:14px;margin:18px 0}
.form label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:.95rem}
.form input[type=text],.form input[type=email],.form input[type=password],.form input[type=number],
.form textarea,.form select{padding:10px 12px;border:1px solid var(--line);border-radius:9px;font:inherit;background:#fff}
.form textarea{resize:vertical}
.form-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.checks{display:flex;gap:18px;flex-wrap:wrap}
label.inline{flex-direction:row;align-items:center;gap:8px;font-weight:500}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
#pickmap{height:300px;border-radius:12px;border:1px solid var(--line);margin:4px 0}
.alert{background:#fbe4e4;color:#a53434;padding:10px 14px;border-radius:9px;font-weight:600}
.nav-add{background:var(--rail);color:#20160a !important;border-radius:8px}

/* Engagement (hodnocení + komentáře) */
.engagement{margin:34px 0 10px;padding-top:24px;border-top:1px solid var(--line);max-width:760px}
.stars-form{display:flex;align-items:center;gap:4px;direction:rtl;justify-content:flex-end}
.star-btn{direction:ltr;background:none;border:none;font-size:1.8rem;color:#d7d7d7;cursor:pointer;padding:0 2px;line-height:1}
.star-btn:hover,.star-btn:hover~.star-btn,.star-btn.on{color:var(--rail)}
.comment-form{margin:12px 0 20px}
.comment{padding:12px 0;border-bottom:1px solid var(--line)}
.comment-head{font-size:.9rem;margin-bottom:2px}
.comment p{margin:0}

/* Moderace */
table.mod{width:100%;border-collapse:collapse;margin:10px 0 26px}
table.mod td{padding:10px;border-bottom:1px solid var(--line);vertical-align:middle}
.mod-actions{text-align:right;white-space:nowrap}
.mod-btn{border:none;border-radius:8px;padding:7px 12px;cursor:pointer;font-weight:700;margin-left:6px}
.mod-btn.ok{background:#e4f3e8;color:#1f7a3f}
.mod-btn.no{background:#fbe4e4;color:#a53434}

/* Stanice */
.station-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;margin-top:18px}
.station-chip{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 14px;box-shadow:var(--shadow);color:var(--ink);font-weight:600}
.station-chip:hover{text-decoration:none;border-color:var(--green-2)}
.relations{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:6px}
.relations li{background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px 12px;font-size:.95rem}

/* Leaflet train marker */
.train-ico{font-size:22px;line-height:22px;text-align:center;filter:drop-shadow(0 1px 1px rgba(0,0,0,.4))}

@media(max-width:820px){
  .hero-inner{grid-template-columns:1fr}
  .hero-map{height:240px;order:-1}
  .hero h1{font-size:1.85rem}
  .cards,.cards-sm{grid-template-columns:1fr 1fr}
  .footer-inner{grid-template-columns:1fr}
}
@media(max-width:560px){
  .cards,.cards-sm{grid-template-columns:1fr}
  .main-nav{gap:2px}
  .main-nav a{padding:6px 8px;font-size:.85rem}
  .hero-stats{gap:16px}
}
