:root{--bg:#fff;--panel:#fff;--text:#172033;--muted:#5d6779;--line:#d9dee7;--accent:#2563eb;--accent-text:#fff;--open:#2563eb;--registered:#7c3aed;--private:#0f766e;--danger:#b91c1c;--warn-bg:#fff6e0;--shadow:0 8px 28px #0f172a2e;--radius:10px;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px}@media (prefers-color-scheme:dark){:root{--bg:#11151d;--panel:#1b212c;--text:#e6e9ef;--muted:#9aa3b2;--line:#333b49;--accent:#4f8cff;--open:#4f8cff;--registered:#a78bfa;--private:#2dd4bf;--danger:#f87171;--warn-bg:#3a2f12;--shadow:0 8px 28px #00000080}}*{box-sizing:border-box}html,body,#root,.app{height:100%;margin:0}.app{flex-direction:column;display:flex}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:6px 12px}button:disabled{opacity:.5;cursor:not-allowed}button.primaer,button.aktiv{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}button.gefahr{color:var(--danger);border-color:var(--danger)}button.link{background:0 0;border:none;text-decoration:underline}button.icon{background:0 0;border:none;padding:2px 6px;font-size:20px;line-height:1}input,select,textarea{border:1px solid var(--line);background:var(--bg);border-radius:8px;width:100%;padding:6px 8px}input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--accent);flex:none;margin:.2em 0 0;padding:0}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.kopf{border-bottom:1px solid var(--line);background:var(--panel);z-index:2000;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;display:flex}.logo{color:var(--accent);font-size:18px}.anbieter select{width:auto}.abstand{flex:1}main{flex:1;min-height:0;position:relative}.map-root,.map{position:absolute;inset:0}.map-root.platzieren .map{cursor:crosshair}.here-map,.here-overlay-layer{position:absolute;inset:0}.here-overlay-layer{pointer-events:none;overflow:hidden}.here-overlay-layer>.chmap-overlay{position:absolute;top:0;left:0}.chmap-anchor{background:0 0;border:none}.chmap-overlay{pointer-events:auto;width:0;height:0}.karten-fehler{background:var(--warn-bg);z-index:3000;border-radius:8px;padding:8px 12px;position:absolute;top:12px;left:50%;transform:translate(-50%)}.chat-marker{--farbe:var(--open);background:var(--farbe);color:#fff;white-space:nowrap;border:2px solid #fff;border-radius:999px;align-items:center;gap:6px;max-width:200px;height:30px;padding:0 4px 0 12px;font-size:13px;font-weight:600;line-height:1;transition:transform .12s,box-shadow .12s;display:inline-flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 8px #0000004d}.chat-marker .titel{text-overflow:ellipsis;min-width:0;overflow:hidden}.chat-marker .anzahl{text-align:center;background:#ffffff40;border-radius:999px;flex:none;min-width:22px;padding:3px 6px;font-size:.85em}.chat-marker .symbol{flex:none;margin-right:-2px;font-size:.9em;font-style:normal}.chat-marker.stufe-gross{border-width:3px;max-width:240px;height:36px;padding-left:14px;font-size:15px;font-weight:700}.chat-marker.stufe-klein{max-width:160px;height:26px;padding-left:10px;font-size:12px}.chat-marker.sichtbarkeit-registered{--farbe:var(--registered)}.chat-marker.sichtbarkeit-private{--farbe:var(--private)}.chat-marker:hover,.chat-marker:focus-visible,.chat-marker.aktiv{transform:translate(-50%,-50%)scale(1.06);box-shadow:0 4px 14px #0006}.chat-marker.kompakt{border-width:2px;justify-content:center;gap:0;width:16px;height:16px;padding:0}.chat-marker.kompakt>*{display:none}.chat-marker.kompakt:hover,.chat-marker.kompakt:focus-visible{gap:6px;width:auto;height:26px;padding:0 10px;font-size:12px;transform:translate(-50%,-50%)}.chat-marker.kompakt:hover>.titel,.chat-marker.kompakt:focus-visible>.titel{display:block}.chat-window{background:var(--panel);border-radius:var(--radius);width:min(400px,92vw);max-height:420px;box-shadow:var(--shadow);cursor:default;flex-direction:column;gap:6px;padding:10px;display:flex;position:absolute;bottom:30px;left:0;transform:translate(-50%)}.chat-window:after{content:"";background:var(--panel);width:16px;height:16px;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)rotate(45deg)}.chat-window header{align-items:flex-start;gap:4px;display:flex}.chat-window header>div{flex:1;min-width:0}.chat-window h2{overflow-wrap:anywhere;margin:0;font-size:15px}.chat-window small{color:var(--muted)}.chat-window label{color:var(--muted);gap:4px;display:grid}.nachrichten{flex:1;min-height:80px;margin:0;padding:0;list-style:none;overflow-y:auto}.nachrichten li{border-bottom:1px solid var(--line);padding:4px 0;position:relative}.nachrichten li.eigene .autor{color:var(--accent)}.nachrichten .autor{background:0 0;border:none;padding:0;font-weight:600}.nachrichten .autor:disabled{opacity:1;cursor:default}.nachrichten time{color:var(--muted);margin-left:6px;font-size:12px}.nachrichten p{white-space:pre-wrap;overflow-wrap:anywhere;margin:2px 0 0}.nachrichten .leer{color:var(--muted);border:none}.menue{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.nachrichten li.wischbar{touch-action:pan-y;transition:transform .15s ease-out}@media (pointer:coarse){.menue button{flex:140px;min-height:44px}form.melden label{align-items:center;min-height:40px}form.melden button{min-height:44px}.nachrichten:has(li.wischbar):after{content:"← Nachricht wischen für Melden / Abstimmung →";text-align:center;color:var(--muted);padding:4px 0;font-size:11px;display:block}}.zeile{gap:6px;display:flex}.poll{background:var(--warn-bg);border-radius:8px;justify-content:space-between;align-items:center;gap:6px;padding:6px 8px;display:flex}.poll button{margin-left:4px;padding:2px 8px}.hinweis,.fehler,.anmelden{margin:0;font-size:13px}.fehler{color:var(--danger)}.einladungen{position:relative}.einladungen ul{background:var(--panel);box-shadow:var(--shadow);border-radius:var(--radius);min-width:260px;margin:0;padding:8px;list-style:none;position:absolute;top:110%;left:0}.einladungen li{align-items:center;gap:6px;padding:4px 0;display:flex}.einladungen li span{flex:1}.badge{background:var(--danger);color:#fff;border-radius:10px;padding:0 6px;font-size:12px}.einladungen ul.mitteilungen{min-width:300px;max-width:min(420px,100vw - 32px);max-height:60vh;overflow-y:auto}.mitteilungen li{border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start}.mitteilungen li.neu span{font-weight:600}.mitteilungen time{color:var(--muted);font-size:12px}.beta-hinweis,.freigabe-hinweis{text-align:center;background:var(--warn-bg);border-bottom:1px solid var(--line);margin:0;padding:6px 16px;font-size:13px}.systemmitteilung{background:color-mix(in srgb, var(--accent) 14%, var(--bg,#fff));border-bottom:1px solid var(--line);justify-content:center;align-items:center;gap:8px;margin:0;padding:6px 16px;font-size:14px;display:flex}.systemmitteilung.stufe-warnung{background:var(--warn-bg);color:var(--danger);font-weight:600}.systemmitteilung button{cursor:pointer;color:inherit;background:0 0;border:0;font-size:18px;line-height:1}.nachrichten p.ausgeblendet{color:var(--muted);font-style:italic}form.melden{border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:6px;margin-top:6px;padding:8px;display:flex}form.melden fieldset{border:none;flex-direction:column;gap:4px;margin:0;padding:0;display:flex}form.melden legend{margin-bottom:4px;font-weight:600}form.melden label{align-items:flex-start;gap:6px;display:flex}form.melden p{margin:0}.cookie-banner{background:var(--panel);max-width:640px;box-shadow:var(--shadow);border-radius:var(--radius);z-index:5000;margin:0 auto;padding:16px;position:fixed;bottom:16px;left:16px;right:16px}.cookie-banner h2{margin-top:0;font-size:16px}.knoepfe{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.dialog-hintergrund{z-index:5000;background:#0006;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.dialog{background:var(--panel);border-radius:var(--radius);width:min(520px,100%);max-height:90vh;padding:16px;overflow-y:auto}.dialog header{justify-content:space-between;display:flex}.dialog h2{margin:0}.dialog h3{margin-bottom:4px;font-size:15px}.startfehler{padding:24px}.chmap-heatmap{pointer-events:none;position:absolute;top:0;left:0}.analyse{z-index:1500;background:var(--panel);border-right:1px solid var(--line);flex-direction:column;gap:10px;width:340px;padding:12px 14px;display:flex;position:absolute;top:0;bottom:0;left:0;overflow-y:auto}main.mit-analyse .map-root{left:340px}.analyse-kopf{justify-content:space-between;align-items:center;display:flex}.analyse h2,.analyse h3{margin:0;font-size:16px}.analyse form{flex-direction:column;gap:8px;display:flex}.analyse form>label{flex-direction:column;gap:4px;display:flex}.analyse .modus{border:none;flex-wrap:wrap;gap:6px 18px;margin:0;padding:0;display:flex}.analyse .modus label{white-space:nowrap;align-items:center;gap:6px;margin:0;display:inline-flex}.analyse .modus input{width:auto;margin:0}.analyse-ergebnis p{margin:0 0 6px}.legende{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:flex}.legende .verlauf{background:linear-gradient(90deg,#253494,#2c7fb8,#41b6c4,#fecc5c,#fd8d3c,#d7191c);border-radius:5px;flex:1;height:10px}.treffer{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.treffer button{text-align:left;flex-direction:column;gap:2px;width:100%;display:flex}.treffer .titel{font-weight:600}.treffer .text{overflow-wrap:anywhere}.treffer time,.hinweis.klein{color:var(--muted);font-size:12px}@media (width<=720px){.analyse{border-right:none;border-top:1px solid var(--line);width:auto;height:45%;top:auto;right:0}main.mit-analyse .map-root{bottom:45%;left:0}}.fuss{border-top:1px solid var(--line,#d9dee7);flex-wrap:wrap;justify-content:center;gap:4px 16px;padding:4px 16px;font-size:12px;display:flex}.fuss a{color:inherit;opacity:.75}.zustimmung{flex-direction:column;gap:6px;margin:8px 0;display:flex}.zustimmung label{align-items:flex-start;gap:8px;display:flex}.chat-koerper{flex:1;gap:8px;min-height:250px;display:flex;overflow:hidden}.chat-inhalt{flex-direction:column;flex:1;gap:6px;min-width:0;min-height:0;display:flex}.anzeigen-streifen{border-left:1px solid var(--line);flex-direction:column;flex:0 0 20%;gap:4px;max-width:20%;padding-left:6px;font-size:11px;display:flex}.anzeige-kennung{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:9px}.anzeige-bild,.anzeige-platzhalter{width:100%;min-height:60px;max-height:calc(var(--streifen-breite,80px) * 3);object-fit:cover;border-radius:6px;flex:1 1 0}.anzeige-platzhalter{text-align:center;background:repeating-linear-gradient(135deg, var(--bg) 0 8px, transparent 8px 16px);border:1px dashed var(--line);flex-direction:column;justify-content:center;gap:6px;padding:6px;line-height:1.25;display:flex;overflow:hidden}.anzeige-zeit{background:var(--line);border-radius:2px;height:4px;overflow:hidden}.anzeige-zeit span{background:var(--accent);height:100%;transition:width 1s linear;display:block}.anzeige-rest{color:var(--muted);text-align:center;font-variant-numeric:tabular-nums}.anzeige-sichern{background:var(--accent);color:#fff;border-color:var(--accent);flex-direction:column;align-items:center;margin-top:auto;padding:4px 2px;font-size:11px;font-weight:600;line-height:1.2;display:flex}.anzeige-sichern span{font-weight:400}.anzeige-sichern:disabled{background:var(--panel);color:var(--muted);border-color:var(--line)}.anzeige-melden{color:var(--muted);padding:0;font-size:10px}.anzeige-meldeformular{gap:4px;display:grid}.anzeige-meldeformular select,.anzeige-meldeformular button{padding:2px 4px;font-size:10px}.zustimmung-zeile{align-items:flex-start;gap:8px;display:flex!important}.produkt ul{margin:4px 0 0;padding-left:18px}.anzeige-auswahl{align-items:flex-start;gap:12px;display:flex}.anzeige-vorschau canvas,.anzeige-vorschau img{border:1px solid var(--line);background:var(--bg);border-radius:6px;display:block}.anzeige-regler{flex-direction:column;flex:1;gap:8px;display:flex}.anzeige-regler label{gap:2px;display:grid}.anzeige-regler input[type=range]{padding:0}.mehrbetrag{flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0;display:flex}.mehrbetrag input{width:8em}.orte{margin:4px 0 12px;padding-left:1.4em}.orte button{text-align:left;cursor:pointer;width:100%;color:inherit;background:0 0;border:0;justify-content:space-between;gap:8px;padding:3px 0;display:flex}.orte button:hover .titel{text-decoration:underline}.orte .anzahl{font-variant-numeric:tabular-nums;opacity:.75}
