/* MOSCOW TV — town pages (matches mockup-v5 nature/TV theme) */
* { margin:0; padding:0; box-sizing:border-box; }
body {
  font-family:'Comic Neue', cursive;
  background:#2d5a27; color:#fff; min-height:100vh; overflow-x:hidden;
}
.nature-bg { position:fixed; inset:0; z-index:-1; overflow:hidden; }
.nature-bg::before { content:""; position:absolute; bottom:0; left:0; right:0; height:50%; background:linear-gradient(180deg,transparent 0%,#1a3d15 100%); }
.hill { position:absolute; border-radius:50% 50% 0 0; }
.hill-1 { width:300%; height:200px; bottom:100px; left:-50%; background:#4a8f42; }
.hill-2 { width:200%; height:150px; bottom:50px; left:-30%; background:#3d7a35; }
.hill-3 { width:250%; height:180px; bottom:80px; left:-20%; background:#2d5a27; }
.river { position:absolute; bottom:0; left:0; right:0; height:60px; background:linear-gradient(180deg,#64b5f6,#1565c0); opacity:.5; }
.tree { position:absolute; font-size:48px; bottom:120px; }
.tree-1{left:5%} .tree-2{left:25%} .tree-3{right:15%} .tree-4{right:35%}
.sun { position:fixed; top:20px; right:40px; font-size:60px; z-index:-1; animation:float 6s ease-in-out infinite; }
.cloud { position:fixed; font-size:44px; z-index:-1; opacity:.8; animation:drift 60s linear infinite; }
.cloud-1{top:60px} .cloud-2{top:130px; animation-duration:90s; animation-delay:-30s}
@keyframes float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-10px)} }
@keyframes drift { from{left:-10%} to{left:110%} }

.tv-frame {
  max-width:1000px; margin:24px auto; background:#1b5e20;
  border:14px solid #333; border-radius:30px;
  box-shadow:0 0 0 6px #555, 0 20px 50px rgba(0,0,0,.6); overflow:hidden;
}
.tv-screen { background:linear-gradient(160deg,#0d2b0a 0%,#1b5e20 100%); padding:26px; }
.header { text-align:center; margin-bottom:14px; }
.header h1 { font-family:'Bangers',cursive; font-size:clamp(34px,7vw,64px); color:#ffd54f; letter-spacing:3px; text-shadow:3px 3px 0 #b71c1c, 6px 6px 0 rgba(0,0,0,.4); }
.header .tagline { color:#aed581; font-weight:700; }
.topnav { display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin:12px 0 20px; }
.topnav a {
  font-family:'Bangers',cursive; letter-spacing:1px; font-size:17px; text-decoration:none;
  color:#1b5e20; background:#c5e1a5; padding:7px 16px; border-radius:22px; border:3px solid #33691e;
}
.topnav a.on, .topnav a:hover { background:#ffd54f; transform:translateY(-2px); }
.badge-live { display:inline-block; background:#b71c1c; color:#fff; border-radius:6px; padding:1px 8px; font-family:'Bangers',cursive; letter-spacing:1px; animation:pulse 1.6s infinite; }
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:.45} }

.strip { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:12px; margin-bottom:18px; }
.card { background:rgba(255,255,255,.08); border:2px solid #33691e; border-radius:14px; padding:12px 14px; }
.card h3 { color:#ffd54f; font-family:'Bangers',cursive; letter-spacing:1px; font-size:18px; margin-bottom:6px; }
.card .big { font-size:26px; font-weight:700; }
.card .sub { color:#c5e1a5; font-size:13px; }
.alert-card { border-color:#b71c1c; background:rgba(183,28,28,.25); }

.ticker { background:#111; border-top:3px solid #ffd54f; border-bottom:3px solid #ffd54f; padding:8px 0; overflow:hidden; white-space:nowrap; margin-bottom:18px; }
.ticker span { display:inline-block; padding-left:100%; animation:tick 40s linear infinite; color:#ffd54f; font-weight:700; }
@keyframes tick { to{transform:translateX(-100%)} }

h2.section { font-family:'Bangers',cursive; color:#ffd54f; letter-spacing:2px; font-size:30px; margin:22px 0 10px; text-shadow:2px 2px 0 rgba(0,0,0,.4); }
.grid { display:grid; gap:12px; }
.ev { display:flex; gap:10px; align-items:flex-start; }
.ev .when { min-width:64px; text-align:center; background:#ffd54f; color:#1b5e20; border-radius:10px; padding:4px 6px; font-weight:700; line-height:1.1; }
.ev .when small { display:block; font-size:10px; color:#33691e; }
.ev .what a { color:#fff; text-decoration:none; font-weight:700; }
.ev .what a:hover { color:#ffd54f; }
.ev .meta { font-size:12px; color:#aed581; }
.tag { background:#33691e; border-radius:10px; padding:1px 8px; font-size:11px; margin-right:4px; }
.filters { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:12px; }
.filters button { background:#2d5a27; color:#c5e1a5; border:2px solid #7cb342; border-radius:16px; padding:4px 12px; font-family:'Comic Neue',cursive; font-weight:700; cursor:pointer; }
.filters button.on { background:#ffd54f; color:#1b5e20; border-color:#ffd54f; }

.idea { display:flex; gap:12px; align-items:stretch; background:rgba(255,255,255,.07); border:2px solid #33691e; border-radius:14px; padding:12px; }
.idea.pinned { border-color:#ffd54f; }
.idea .votebtn { background:#b71c1c; color:#fff; border:none; border-radius:12px; min-width:64px; cursor:pointer; font-family:'Bangers',cursive; font-size:15px; padding:6px; letter-spacing:1px; }
.idea .votebtn:hover { background:#e53935; transform:scale(1.05); }
.idea .votebtn.done { background:#33691e; }
.idea h4 { color:#ffd54f; font-size:17px; }
.idea .details { flex:1; }
.idea .why { font-size:14px; color:#e0e0e0; }
.idea .by { font-size:12px; color:#aed581; }
.flaglink { font-size:11px; color:#81c784; cursor:pointer; text-decoration:underline; }

.plan-hero { background:#000; border:3px dashed #ffd54f; border-radius:16px; padding:18px; margin-bottom:16px; }
.plan-hero .status { font-family:'Bangers',cursive; letter-spacing:2px; font-size:20px; }
.status.draft { color:#ffb300; } .status.approved { color:#aed581; } .status.locked { color:#ffd54f; }
.plan-sec { background:rgba(255,255,255,.08); border-left:6px solid #ffd54f; border-radius:0 12px 12px 0; padding:10px 14px; margin-bottom:10px; }
.plan-sec .seg { color:#ffd54f; font-family:'Bangers',cursive; letter-spacing:1px; }
.plan-sec .why { font-size:13px; color:#c5e0c5; }
.plan-sec .ev { color:#aed581; font-size:12px; }

form.town { display:grid; gap:10px; max-width:640px; }
form.town label { color:#ffd54f; font-weight:700; font-size:14px; }
input, select, textarea { width:100%; background:#f1f8e9; color:#1b5e20; border:3px solid #33691e; border-radius:10px; padding:9px 12px; font-family:'Comic Neue',cursive; font-size:15px; }
button.primary { font-family:'Bangers',cursive; letter-spacing:2px; font-size:20px; background:#ffd54f; color:#1b5e20; border:3px solid #33691e; border-radius:14px; padding:10px 24px; cursor:pointer; }
button.primary:hover { transform:translateY(-2px); }
.msg { padding:10px; border-radius:10px; font-weight:700; }
.msg.ok { background:#33691e; } .msg.err { background:#b71c1c; }
.small { font-size:12px; color:#aed581; }
footer.tv { text-align:center; color:#aed581; padding:14px; font-size:13px; }
