:root{--ink:#0f2f3c;--teal:#0b7f8a;--bg:#f2f7f8;--muted:#587178;--line:#d9e7e9}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.65 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
header{background:#0f2f3c;padding:14px 20px}header a{color:#fff;text-decoration:none;font-weight:800;letter-spacing:.02em}
main{max-width:780px;margin:0 auto;padding:28px 20px 60px}
h1{font-size:2rem;line-height:1.2;margin:.2em 0}h2{font-size:1.25rem;margin:2em 0 .4em;color:var(--teal)}
a{color:var(--teal)}.meta{color:var(--muted);font-size:.92rem}
.note{background:#fff8d6;border:1px solid #ecd96a;border-radius:10px;padding:12px 14px;margin:18px 0;font-size:.95rem}
li{margin:.3em 0}footer{max-width:780px;margin:0 auto;padding:0 20px 40px;color:var(--muted);font-size:.9rem}

#cookieBanner{position:fixed;left:16px;right:16px;bottom:16px;z-index:9999;max-width:760px;margin:0 auto;background:#0f2f3c;color:#fff;border-radius:16px;padding:16px 18px;display:flex;gap:16px;align-items:center;flex-wrap:wrap;box-shadow:0 12px 40px rgba(0,0,0,.35)}
#cookieBanner .cookie-text{flex:1 1 320px}#cookieBanner p{margin:.3em 0 0;font-size:.9rem;line-height:1.45;color:#d6e6ea}
#cookieBanner a{color:#d4f23a}#cookieBanner .cookie-actions{display:flex;gap:8px;flex-wrap:wrap}
#cookieBanner button{min-height:44px;padding:0 16px;border-radius:12px;border:0;font-weight:700;cursor:pointer;background:#d4f23a;color:#0f2f3c}
#cookieBanner button.secondary{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.4)}
.admin-tools{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0 12px}.admin-tools input{flex:1 1 220px;min-height:44px}
.admin-right{text-align:right}.admin-table .listrow{align-items:center}
@media(max-width:700px){.admin-right{text-align:left}}
.monthly-km-challenges{margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--surface,var(--paper))}.monthly-km-challenges> .row{align-items:flex-start;margin-bottom:8px}.monthly-km-challenges h3{margin:3px 0}.monthly-km-challenges .pill{font-size:11px}.monthly-km-challenge{padding:12px 0;border-top:1px solid var(--line)}.monthly-km-challenge:first-of-type{border-top:0}.monthly-km-challenge>.row b:last-child{white-space:nowrap}.monthly-km-challenge .bar{height:7px;margin:8px 0}.challenge-progress-foot{justify-content:space-between;gap:5px;flex-wrap:wrap}.challenge-progress-foot small{color:var(--muted)}.monthly-tiers{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.monthly-tier{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);border-radius:999px;padding:4px 8px;color:var(--muted);font-size:12px}.monthly-tier.earned{background:var(--lime);border-color:var(--green);color:var(--ink)}.monthly-tier small{font-size:11px;font-weight:700}.monthly-challenge-admin{margin-top:24px;padding-top:4px}.monthly-challenge-admin hr{border:0;border-top:1px solid var(--line);margin:20px 0}.monthly-challenge-list{margin-top:14px}.monthly-challenge-list .listrow>span{min-width:0}.monthly-challenge-list small{display:block;margin-top:4px}.group-board-tabs{display:flex;gap:7px;overflow-x:auto;padding:5px 0 10px;margin:10px 0;border-bottom:1px solid var(--line);scrollbar-width:thin}.group-board-tabs button{flex:0 0 auto;padding:9px 13px;background:var(--surface,var(--paper));color:var(--ink);border:1px solid var(--line);border-radius:999px;font-size:13px}.group-board-tabs button[aria-selected=true]{background:var(--green);color:#fff;border-color:var(--green)}.group-board-pane{padding:8px 0}.group-overview-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}.group-overview-cards button{display:grid;justify-items:start;gap:3px;background:var(--surface,var(--paper));color:var(--ink);border:1px solid var(--line);padding:10px;border-radius:12px}.group-overview-cards button b{font-size:16px}.group-overview-cards button small{color:var(--muted)}.group-name-award{display:inline-flex;align-items:center;gap:3px;white-space:normal;vertical-align:middle;font-size:10px;line-height:1.2;padding:3px 6px;margin:2px;background:var(--soft);border:1px solid var(--line);border-radius:999px;color:var(--ink);font-weight:700}.group-name-award img{width:15px;height:15px;object-fit:contain}.group-name-award small{font-size:10px}.group-named-badge{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}.group-named-badge>b{min-width:0}.group-person-row .group-name-award{margin-left:5px}@media(max-width:650px){.monthly-km-challenges{padding:9px}.monthly-km-challenges>.row{align-items:flex-start;flex-direction:column}.monthly-km-challenge{padding:9px 0}.monthly-km-challenge>.row{align-items:flex-start;flex-direction:row}.challenge-progress-foot{display:block}.challenge-progress-foot small{display:block;margin-top:3px}.group-overview-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.group-board-tabs{gap:5px}.group-board-tabs button{padding:8px 10px;font-size:12px}.group-named-badge{align-items:flex-start}}

.group-training-create{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:4px 0 14px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface,var(--paper))}.group-training-create p{margin:0}@media(max-width:650px){.group-training-create{align-items:stretch}.group-training-create button{width:100%}}
