:root{--bg:#f7f3ea;--card:#fff;--ink:#1f2a24;--mut:#5d6b62;--acc:#2f6b4f;--acc2:#e3a72f;--sand:#ebe2cf}
*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink);line-height:1.5}
a{color:var(--acc)}.wrap{max-width:980px;margin:0 auto;padding:0 16px}
.top{background:var(--acc);color:#fff}.top .wrap{display:flex;align-items:center;justify-content:space-between;padding:12px 16px}
.logo{display:flex;align-items:center;gap:8px;color:#fff;text-decoration:none;font-weight:800;font-size:1.35rem;letter-spacing:-.5px}
.logo svg{width:34px;height:34px}.logo .i{color:var(--acc2)}.nav a{color:#fff;opacity:.9;text-decoration:none;font-size:.9rem;margin-left:14px}
.hero{background:linear-gradient(160deg,#2f6b4f,#3f8a63 60%,#6f9e57);color:#fff;padding:36px 0 30px}
.hero h1{font-size:2rem;line-height:1.15;margin:0 0 10px;max-width:720px}@media(min-width:700px){.hero h1{font-size:2.6rem}}
.hero p{max-width:640px;opacity:.95;margin:0 0 18px}
.news{background:rgba(255,255,255,.14);border-radius:12px;padding:12px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;max-width:620px}
.news input{flex:1;min-width:180px;padding:10px;border-radius:8px;border:0}button,.btn{padding:10px 14px;border:0;border-radius:8px;background:var(--acc2);color:#222;font-weight:700;font:inherit;font-weight:700}
button[disabled]{cursor:not-allowed;opacity:.85}.ph{font-size:.75rem;opacity:.85;width:100%}
h2{font-size:1.25rem;margin:30px 0 8px;color:var(--acc)}
.towns{display:grid;gap:12px;grid-template-columns:1fr 1fr}@media(min-width:700px){.towns{grid-template-columns:repeat(4,1fr)}}
.town{display:block;background:#fff;border-radius:14px;padding:16px;text-decoration:none;color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.07);border:2px solid transparent}
.town.live:hover{border-color:var(--acc)}.town b{display:block;font-size:1.1rem}.town small{color:var(--mut)}
.badge{display:inline-block;margin-top:8px;font-size:.72rem;font-weight:700;border-radius:999px;padding:2px 9px}.badge.live{background:#d7eedd;color:#1d5a3a}.badge.soon{background:var(--sand);color:#6a5a3a}
.town.soon{opacity:.75}
.cols{display:grid;gap:14px}@media(min-width:700px){.cols{grid-template-columns:1fr 1fr 1fr}}
.box{background:#fff;border-radius:14px;padding:16px;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.ctrl{position:sticky;top:0;background:var(--bg);padding:12px 0;z-index:2;border-bottom:1px solid var(--sand)}
.ctrl input[type=search]{width:100%;padding:11px;border:1px solid #ccc;border-radius:10px;font-size:1rem}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.chip{border:1px solid var(--acc);color:var(--acc);background:#fff;border-radius:999px;padding:5px 12px;font-size:.85rem;cursor:pointer;font-weight:500}
.chip.on{background:var(--acc);color:#fff}
h3{font-size:.9rem;color:var(--mut);margin:14px 0 6px}
.grid{display:grid;gap:10px}@media(min-width:700px){.grid{grid-template-columns:1fr 1fr}}
.card{background:var(--card);border-radius:12px;padding:12px 14px;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.card .t{font-weight:650}.meta{font-size:.85rem;color:var(--mut)}.d{font-size:.88rem;margin:6px 0}
.aud{font-size:.72rem;background:var(--sand);border-radius:4px;padding:1px 6px;margin-right:4px}.rec{background:#d7eedd}
.sp{border:2px dashed #c9bb98;border-radius:12px;padding:16px;text-align:center;color:var(--mut);margin:24px 0}
form{display:grid;gap:8px;background:#fff;border-radius:12px;padding:14px}form input,form textarea,form select{padding:9px;border:1px solid #ccc;border-radius:8px;font:inherit}
.warn{background:#fff3cd;border-radius:8px;padding:8px;font-size:.85rem}
footer{margin-top:40px;padding:22px 0;background:#1f2a24;color:#cfd8d2;font-size:.85rem}footer a{color:#a8d5b8}
.empty{color:var(--mut);padding:20px 0}
label{display:grid;gap:4px;font-size:.9rem}.row2,.row3{display:grid;gap:8px}@media(min-width:600px){.row2{grid-template-columns:1fr 1fr}.row3{grid-template-columns:2fr 1fr 1fr}}
fieldset{border:1px solid #ddd;border-radius:8px;padding:8px 10px}legend{font-size:.9rem}.ck{display:inline-flex;gap:6px;align-items:center;margin-right:14px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}#formmsg{font-weight:600;color:var(--acc)}
.near{font-size:.72rem;background:#e7eef9;color:#28467a;border-radius:4px;padding:1px 6px;margin-right:4px}
#tilfoej{scroll-margin-top:16px}
.addbtn{display:inline-block;background:#e3a72f;color:#1d2b22;font-weight:700;padding:10px 18px;border-radius:999px;text-decoration:none;box-shadow:0 2px 6px rgba(0,0,0,.2)}.addbtn:hover{background:#f0b940}
.addfab{display:none}@media(max-width:700px){.addfab{display:block;position:fixed;right:14px;bottom:14px;z-index:50;background:#e3a72f;color:#1d2b22;font-weight:700;padding:10px 16px;border-radius:999px;text-decoration:none;box-shadow:0 3px 10px rgba(0,0,0,.3)}}

/* filtre */
.srcbox{margin-top:8px}.srcbox summary{cursor:pointer;font-size:.9rem;color:var(--acc);font-weight:600;padding:4px 0}
#area{margin-top:8px;padding:8px;border:1px solid #ccc;border-radius:8px;font-size:16px;background:#fff;max-width:100%}
@media(max-width:700px){.ctrl{position:static;padding:10px 0}
 .chips.audrow{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px;scrollbar-width:none}.chips.audrow::-webkit-scrollbar{display:none}.chips.audrow .chip{flex:0 0 auto}
 .ctrl input[type=search]{font-size:16px}}
/* formular */
#addform{display:flex;flex-direction:column;gap:14px;padding:16px}
#addform *{box-sizing:border-box}
#addform label{display:flex;flex-direction:column;gap:6px;font-size:.95rem;font-weight:600;width:100%;float:none;text-align:left}
#addform input:not([type=checkbox]),#addform textarea,#addform select{display:block;width:100%;max-width:100%;font-size:16px;font-family:inherit;padding:11px 12px;min-height:46px;border:1px solid #bbb;border-radius:10px;background:#fff;color:#222;-webkit-appearance:none;appearance:none;margin:0}
#addform textarea{min-height:110px;resize:vertical}
#addform input[type=date],#addform input[type=time]{line-height:22px;text-align:left}
#addform input::-webkit-date-and-time-value{text-align:left}
#addform .row2,#addform .row3{display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width:700px){#addform .row2{grid-template-columns:1fr 1fr}#addform .row3{grid-template-columns:2fr 1fr 1fr}}
#addform fieldset{margin:0;padding:10px 12px 12px;border:1px solid #bbb;border-radius:10px;display:grid;grid-template-columns:1fr 1fr;gap:10px}
#addform legend{font-weight:600;padding:0 4px}
#addform .ck{flex-direction:row;align-items:center;gap:10px;font-weight:400;margin:0}
#addform fieldset .ck{background:#f6f3ec;border-radius:8px;padding:10px}
#addform input[type=checkbox]{width:22px;height:22px;flex:0 0 22px;margin:0;accent-color:var(--acc)}
#addform button[type=submit]{width:100%;font-size:1.1rem;padding:15px;border-radius:12px;background:var(--acc);color:#fff;min-height:52px}
#addform .hp{position:absolute;left:-9999px}
@media(max-width:700px){.addfab{bottom:calc(14px + env(safe-area-inset-bottom))}}
#addform .ck>span{flex:1;line-height:1.4}#addform .ck{align-items:flex-start}#addform fieldset .ck{align-items:center}
#addform input:not([type=checkbox]),#addform textarea{font-weight:400}
/* kontrast (WCAG AA) */
.hero{background:linear-gradient(160deg,#1f4d38,#2a6146 60%,#3a6533)}
.hero p{opacity:1}
.hero a.addbtn,a.addbtn{display:inline-block;background:#fff8e7;color:#1f4d38;font-weight:800;font-size:1.05rem;padding:12px 22px;border-radius:999px;text-decoration:none;border:2px solid #fff8e7;box-shadow:0 3px 10px rgba(0,0,0,.25);margin:4px 0 6px}
.hero a.addbtn:hover{background:#fff;color:#163a2a}
.news input{background:#fff;color:#222}.news input::placeholder{color:#555}
.hero .ph,.news .ph{opacity:1;color:#fff}
.chip{color:#1f5a40;border-color:#1f5a40}

/* filterlinje */
.ctrl.stick{position:sticky;top:0;z-index:20;padding:8px 0;box-shadow:0 2px 6px rgba(0,0,0,.06)}
.ctrl.rest{position:static;padding:4px 0 10px}
.seg{display:flex;margin-top:8px;border:1.5px solid #1f5a40;border-radius:10px;overflow:hidden;background:#fff}
.seg button{flex:1;border:0;border-radius:0;background:#fff;color:#1f5a40;font-size:.85rem;font-weight:700;padding:8px 4px;min-height:38px}
.seg button+button{border-left:1.5px solid #1f5a40}.seg button.on{background:#1f5a40;color:#fff}
.flab{font-size:.78rem;font-weight:700;color:#3b3b3b;margin:8px 0 -2px;text-transform:uppercase;letter-spacing:.04em}
.chip.on{background:#1f5a40;color:#fff}
.aud.age{background:#e7eef9;color:#1c3d6e}.cnt{font-weight:400;font-size:.9rem;color:#555}
@media(max-width:700px){.ctrl.stick{position:sticky}.seg button{font-size:.8rem}}
.seg button{flex:1 1 auto;padding:8px 8px}
