/* Nordisch-kühles Theme (Silber-Blau / Petrol), Light + Dark via [data-theme]. */
:root, [data-theme="dark"]{
  color-scheme:dark;
  --bg:#0d1822; --panel:#13212d; --panel2:#0f1a25; --field:#0e1a25;
  --border:#243744; --text:#dce8f1; --muted:#8aa0b2; --link:#88c0e8;
  --accent:#62c9c1; --primary:#0f6f6b; --primary-text:#eafffb;
  --danger:#a85a5a; --ok:#46977f; --warn:#c79a4a; --badge:#2d4150;
  --badge-pending-bg:#caa052; --badge-pending-fg:#241803;
  --shadow:0 1px 3px rgba(0,0,0,.35);
}
[data-theme="light"]{
  color-scheme:light;
  --bg:#e9f1f6; --panel:#ffffff; --panel2:#f3f8fb; --field:#ffffff;
  --border:#d2e0ea; --text:#22343f; --muted:#5d7285; --link:#1f6fb0;
  --accent:#0e8c84; --primary:#0e7c77; --primary-text:#ffffff;
  --danger:#9a3f3f; --ok:#2f7d68; --warn:#8a6a23; --badge:#dde8ef;
  --badge-pending-bg:#efd089; --badge-pending-fg:#4a3608;
  --shadow:0 1px 3px rgba(30,50,70,.10);
}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.55;transition:background .2s,color .2s}
header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1.2rem;background:var(--panel);border-bottom:1px solid var(--border);flex-wrap:wrap;position:sticky;top:0;z-index:40;transition:padding .18s ease,box-shadow .18s ease}
header.shrunk{padding-top:.32rem;padding-bottom:.32rem;box-shadow:0 4px 16px rgba(0,0,0,.28)}
header.shrunk .brand{font-size:1.02rem}
header.shrunk .brand small{display:none}
.brand{transition:font-size .18s ease}
.brand{font-size:1.2rem;font-weight:700;color:var(--text);text-decoration:none}
.brand small{color:var(--muted);font-weight:400;font-size:.7rem}
.brand small.env-test{color:var(--warn);font-weight:700;border:1px solid var(--warn);border-radius:6px;padding:.02rem .3rem;letter-spacing:.03em}
nav{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
nav a{color:var(--link);text-decoration:none}
nav .who{color:var(--muted);font-size:.9rem}
.themebtn{background:var(--field);border:1px solid var(--border);border-radius:999px;padding:.25rem .6rem;cursor:pointer;font-size:.95rem;margin:0;color:var(--text);line-height:1}
main{max-width:1100px;margin:0 auto;padding:1.5rem 1.2rem 4rem}
footer{position:fixed;bottom:0;left:0;right:0;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.35rem;font-size:.75rem;color:var(--muted);padding:.4rem;background:var(--panel);border-top:1px solid var(--border)}
footer a{color:var(--muted);text-decoration:none}
footer a:hover{color:var(--link);text-decoration:underline}
.footsep{opacity:.5}
.legal{max-width:760px;margin:0 auto;line-height:1.6}
.legal h2{font-size:1.05rem;margin:1.6rem 0 .4rem;font-weight:650}
.legal address{font-style:normal;color:var(--text)}
.legal-list{margin:.3rem 0;padding-left:1.2rem;display:flex;flex-direction:column;gap:.55rem}
.legal-list li{padding-left:.2rem}
.legal code{background:var(--field);border:1px solid var(--border);border-radius:6px;padding:.05rem .35rem;font-size:.85em}
.legal-warn{margin-bottom:1.2rem}
.legal h3{font-size:.95rem;margin:1.1rem 0 .3rem;font-weight:650}
.cookie-notice{position:fixed;left:1rem;right:1rem;bottom:3rem;max-width:660px;margin:0 auto;display:flex;flex-wrap:wrap;gap:.6rem .9rem;align-items:center;justify-content:space-between;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:.7rem 1rem;box-shadow:var(--shadow);z-index:60;font-size:.85rem}
.cookie-notice span{flex:1 1 240px}
.cookie-notice a{color:var(--link)}
.cookie-notice button{margin:0;white-space:nowrap}
.cookie-notice[hidden]{display:none}
.giftbox{margin-top:.9rem;padding-top:.8rem;border-top:1px solid var(--border)}
.giftbox form{margin:0}
.nudge-box{margin-top:.7rem;padding-top:.6rem;border-top:1px dashed var(--border)}
.nudge-box form{margin:0 0 .35rem}
.nudge-box .muted{margin:0}
h1{margin:.2rem 0 1rem;font-weight:650}
.muted{color:var(--muted)}.small{font-size:.85rem}
a.back{color:var(--link);text-decoration:none;font-size:.9rem}
.stack{display:flex;flex-direction:column;gap:1rem}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem;align-items:start}
.card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:1.1rem 1.2rem;min-width:0;box-shadow:var(--shadow)}
.card.wide{width:100%}
.card h2{margin-top:0;font-size:1.1rem;font-weight:650}
.card h3{font-size:.95rem;margin:.9rem 0 .3rem;color:var(--text)}
label{display:block;margin:.5rem 0;font-size:.9rem;color:var(--text)}
input,select,textarea{width:100%;margin-top:.2rem;padding:.5rem .6rem;background:var(--field);border:1px solid var(--border);border-radius:9px;color:var(--text);font:inherit}
textarea{resize:vertical}
button{cursor:pointer;border:1px solid transparent;border-radius:9px;padding:.5rem .9rem;background:var(--badge);color:var(--text);font:inherit;margin-top:.4rem}
button:hover{filter:brightness(1.08)}
button.primary{background:var(--primary);color:var(--primary-text)}
button.danger{background:transparent;color:var(--danger);border-color:var(--danger)}
button.tiny{padding:.28rem .6rem;font-size:.8rem;margin:0}
button.link{background:none;border:none;color:var(--link);padding:.2rem 0;font-weight:600;margin:0}
.gbtn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;width:100%;padding:.7rem 1rem;background:#fff;color:#1f1f1f;border:1px solid #dadce0;border-radius:10px;font-weight:600;font-size:.95rem;text-decoration:none;margin:.4rem 0;min-height:44px}
.gbtn:hover{background:#f7f8f8;box-shadow:0 1px 5px rgba(0,0,0,.18)}
.gicon{flex:0 0 auto}
/* Multi-Provider-Login: Buttons, E-Mail-Magic-Link, Aufklapper „Mehr Optionen" */
.login-methods{display:flex;flex-direction:column;gap:.5rem;align-items:stretch}
.oauth-btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;width:100%;padding:.7rem 1rem;background:#fff;color:#1f1f1f;border:1px solid #dadce0;border-radius:10px;font-weight:600;font-size:.95rem;text-decoration:none;min-height:44px;cursor:pointer;font-family:inherit;box-sizing:border-box}
.oauth-btn:hover{background:#f7f8f8;box-shadow:0 1px 5px rgba(0,0,0,.18)}
.oauth-ico{flex:0 0 auto;display:inline-flex;align-items:center}
.magic-form{display:flex;flex-direction:column;gap:.4rem;margin-top:.1rem}
.magic-form input[type=email]{width:100%;padding:.65rem .8rem;border:1px solid #dadce0;border-radius:10px;font-size:.95rem;min-height:44px;box-sizing:border-box}
.more-logins{width:100%;margin:.2rem 0}
.more-logins>summary{cursor:pointer;color:var(--accent,#542854);font-weight:600;font-size:.9rem;text-align:center;list-style:none;padding:.4rem}
.more-logins>summary::-webkit-details-marker{display:none}
.more-logins[open]>summary{margin-bottom:.4rem}
.inline{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}
.inline select,.inline input{width:auto;flex:1 1 auto;min-width:0}
form.inline{margin:.4rem 0}
table{width:100%;border-collapse:collapse;font-size:.92rem}
th,td{text-align:left;padding:.45rem .4rem;border-bottom:1px solid var(--border);vertical-align:middle}
th{color:var(--muted);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}
td.actions{text-align:right}
.actions{display:flex;gap:.3rem;flex-wrap:wrap;justify-content:flex-end}
.actions form{margin:0}
.badge{font-size:.7rem;padding:.14rem .55rem;border-radius:999px;background:var(--badge);text-transform:uppercase;letter-spacing:.04em;color:var(--text);white-space:nowrap}
.badge.drawn{background:var(--primary);color:var(--primary-text)}
.badge.pending{background:var(--badge-pending-bg);color:var(--badge-pending-fg)}
.st-confirmed{color:var(--ok);font-weight:600}
.st-pending,.st-leave,.warn{color:var(--warn)}
.ok-dot{color:var(--ok)}
.big{font-size:1.35rem;color:var(--accent)}
.userlist,.events,.excls,.pairs{list-style:none;padding:0;margin:.4rem 0}
.userlist li,.events li{padding:.35rem 0;border-bottom:1px solid var(--border);display:flex;gap:.6rem;align-items:center}
.userlist form{display:flex;gap:.6rem;align-items:center;margin:0}
.events a{color:var(--link);text-decoration:none}
/* Dashboard: Event-Karten-Raster (kompakt, mehrspaltig auch mobil) */
.sec-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem .8rem;flex-wrap:wrap;margin-bottom:.2rem}
.sec-head h2{margin:0}
.seg-filter{display:inline-flex;gap:.15rem;background:var(--field);border:1px solid var(--border);border-radius:999px;padding:.15rem}
.seg-filter button{margin:0;padding:.28rem .75rem;font-size:.78rem;font-weight:600;border:none;border-radius:999px;background:transparent;color:var(--muted);min-height:0}
.seg-filter button.on{background:var(--accent);color:#04120f}
.event-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.7rem;margin:.5rem 0 .2rem}
.event-card{display:flex;flex-direction:column;gap:.45rem;min-height:118px;padding:.85rem .9rem;background:var(--field);border:1px solid var(--border);border-radius:14px;text-decoration:none;color:var(--text);transition:border-color .15s,transform .08s,box-shadow .15s,opacity .15s}
.event-card:hover{border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-2px)}
.event-card .ev-icon{font-size:1.7rem;line-height:1}
.event-card .ev-name{font-weight:650;line-height:1.2;word-break:break-word}
.event-card .ev-meta{margin-top:auto}
.event-card.past{opacity:.55}
.event-card.past:hover{opacity:.85}
.event-card{position:relative}
.ev-link{position:absolute;inset:0;border-radius:inherit;z-index:1}
.drag-handle{position:absolute;top:.3rem;right:.35rem;z-index:2;cursor:grab;color:var(--muted);font-size:1.05rem;line-height:1;padding:.1rem .25rem;border-radius:6px;opacity:.4;touch-action:none;user-select:none}
.event-card:hover .drag-handle{opacity:.95}
.drag-handle:active{cursor:grabbing}
.cat-handle{display:inline-block;cursor:grab;color:var(--muted);opacity:.55;padding:0 .35rem 0 0;font-size:1rem;font-weight:400;touch-action:none;user-select:none;vertical-align:middle}
.cat-handle:active{cursor:grabbing}
.drag-ghost{opacity:.35}
.event-card.sortable-chosen,section.sortable-chosen{box-shadow:0 8px 28px rgba(0,0,0,.45)}
.badge.active{background:transparent;border:1px solid var(--accent);color:var(--accent)}
.badge.revealed{background:transparent;border:1px solid var(--border);color:var(--muted)}
.excls li{padding:.28rem 0;display:flex;gap:.6rem;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border)}
.pairs li{padding:.22rem 0;border-bottom:1px solid var(--border)}
.wishlist{background:var(--panel2);border:1px solid var(--border);border-radius:10px;padding:.7rem .9rem;margin:.4rem 0}
.wishlist :first-child{margin-top:0}.wishlist :last-child{margin-bottom:0}
.flash{padding:.6rem .9rem;border-radius:10px;margin:.4rem 0;border:1px solid var(--border)}
.flash.ok{background:color-mix(in srgb,var(--ok) 16%,var(--panel));border-color:var(--ok)}
.flash.error{background:color-mix(in srgb,var(--danger) 18%,var(--panel));border-color:var(--danger)}
.flash.reveal{background:color-mix(in srgb,var(--warn) 22%,var(--panel));border-color:var(--warn)}
.notice{background:var(--panel2);border:1px solid var(--border);border-left:3px solid var(--warn);border-radius:8px;padding:.6rem .8rem;margin:.6rem 0}
.mail pre{white-space:pre-wrap;margin:0;font-size:.85rem}
.cb{display:flex;align-items:center;gap:.3rem;width:auto;margin:0;white-space:nowrap}
.cb input{width:auto;margin:0}
.optin{display:flex;gap:.6rem;align-items:flex-start;margin:.7rem 0;font-size:.92rem;line-height:1.45}
.optin input{width:auto;flex:none;margin:.25rem 0 0}
/* On/Off-Schalter (statt Häkchen) */
.toggle-row{display:flex;align-items:center;gap:.6rem;margin:.85rem 0;font-size:.92rem;line-height:1.4;cursor:pointer;flex-wrap:wrap}
.toggle-input{position:absolute;opacity:0;width:0;height:0;margin:0}
.toggle-sw{flex:0 0 auto;position:relative;width:46px;height:26px;background:var(--field);border:1px solid var(--border);border-radius:999px;transition:background .15s,border-color .15s}
.toggle-knob{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:var(--muted);transition:transform .15s,background .15s}
.toggle-input:checked + .toggle-sw{background:var(--accent);border-color:var(--accent)}
.toggle-input:checked + .toggle-sw .toggle-knob{transform:translateX(20px);background:#fff}
.toggle-input:focus-visible + .toggle-sw{outline:2px solid var(--link);outline-offset:2px}
.toggle-state{flex:0 0 auto;width:2.4em;font-weight:700;font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.toggle-state::after{content:"Aus"}
.toggle-input:checked ~ .toggle-state{color:var(--accent)}
.toggle-input:checked ~ .toggle-state::after{content:"An"}
.toggle-text{flex:1 1 240px;min-width:0}
/* Avatare (Initialen auf Farbe oder Emoji) */
.avatar{display:inline-flex;align-items:center;justify-content:center;width:1.8rem;height:1.8rem;border-radius:50%;font-size:1.05rem;line-height:1;vertical-align:middle;flex:none;overflow:hidden}
.avatar.sm{width:1.45rem;height:1.45rem;font-size:.9rem}
.avatar.lg{width:2.4rem;height:2.4rem;font-size:1.45rem}
.avatar-init{color:#fff;font-weight:700;font-size:.62em;letter-spacing:.02em;background:hsl(var(--h) 55% 42%)}
.avatar-img{object-fit:cover}
.av-thumb{width:1.7rem;height:1.7rem;object-fit:cover;border-radius:50%;display:inline-block;vertical-align:middle}
.av-opts{display:flex;flex-direction:column;gap:.5rem;margin:.7rem 0 .3rem}
.av-opt{display:flex;align-items:center;gap:.6rem;justify-content:flex-start;width:100%;margin:0;padding:.75rem .95rem;background:var(--field);border:1px solid var(--border);border-radius:12px;color:var(--text);font-size:.98rem;text-align:left}
.av-opt:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--field))}
.av-opt-ic{font-size:1.25rem;line-height:1}
.av-recent{margin:.2rem 0 .4rem}
.av-recent-row{display:flex;gap:.5rem;margin-top:.35rem;flex-wrap:wrap}
.av-recent-btn{margin:0;padding:0;border:2px solid var(--border);border-radius:50%;width:2.6rem;height:2.6rem;overflow:hidden;background:none;cursor:pointer;min-height:0}
.av-recent-btn:hover{border-color:var(--accent)}
.av-recent-btn img{width:100%;height:100%;object-fit:cover;display:block}
/* Event teilen / beitreten */
.dash-top{display:flex;flex-wrap:wrap;gap:.6rem;margin:0 0 1.1rem}
.dash-tool-d{flex:1 1 260px}
.dash-tool-d>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:.4rem;padding:.62rem .9rem;background:var(--panel);border:1px solid var(--border);border-radius:14px;font-weight:600;font-size:.95rem;user-select:none}
.dash-tool-d>summary::-webkit-details-marker{display:none}
.dash-tool-d>summary::after{content:'▾';margin-left:auto;color:var(--muted);transition:transform .15s}
.dash-tool-d[open]>summary{border-bottom-left-radius:0;border-bottom-right-radius:0}
.dash-tool-d[open]>summary::after{transform:rotate(180deg)}
.dash-tool-d[open]>.dash-tool{border-top:0;border-top-left-radius:0;border-top-right-radius:0}
.dash-tool{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:.7rem .9rem}
.dash-tool select,.dash-tool input{flex:1 1 170px;min-width:130px;margin:0}
.dash-tool button{margin:0}
.card-share{position:absolute;top:.4rem;right:.4rem;z-index:3;margin:0;padding:.12rem .4rem;font-size:.95rem;line-height:1;background:var(--field);border:1px solid var(--border);border-radius:8px;min-height:0}
.card-share:hover{border-color:var(--accent)}
.admin-share-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin:.2rem 0 1rem}
.wm-modal.share-modal{max-width:560px;max-height:90vh;overflow-y:auto}
.share-opt{padding:.7rem 0;border-top:1px solid var(--border)}
.share-opt:first-of-type{border-top:0;padding-top:.2rem}
.share-opt-h{font-weight:700;font-size:.92rem;margin:0 0 .1rem}
.share-row{display:flex;gap:.5rem;margin:.45rem 0;align-items:center}
.share-row input{flex:1;margin:0;font-family:ui-monospace,monospace;font-size:.85rem}
.share-row button{margin:0;white-space:nowrap}
.share-row .share-code{flex:1;margin:0;padding:.45rem .6rem;background:var(--field);border:1px solid var(--border);border-radius:10px;text-align:center}
.share-code{font-family:ui-monospace,monospace;font-size:1.15rem;letter-spacing:.12em;font-weight:700}
.share-wide{width:100%;margin:.2rem 0 0;white-space:nowrap}
.share-qr-wrap{text-align:center;margin:.5rem 0}
.share-qr{width:190px;height:190px;border:1px solid var(--border);border-radius:10px;background:#fff;padding:6px;image-rendering:pixelated}
#share-regen{margin:.7rem 0 0}
.scan-video{width:100%;max-height:60vh;border-radius:12px;background:#000;display:block}
.crop-modal{max-width:360px}
.crop-stage{display:flex;justify-content:center;margin:.5rem 0 .2rem}
#crop-canvas{width:280px;height:280px;max-width:78vw;max-height:78vw;touch-action:none;border-radius:12px;background:#0b0b0b;cursor:grab;display:block}
#crop-canvas:active{cursor:grabbing}
.crop-zoom{width:100%;margin:.3rem 0 .2rem;accent-color:var(--primary)}
/* Hilfe-Panel + FAQ */
.help-modal{max-width:520px}
.help-search,.faq-search{width:100%;margin:.2rem 0 .6rem}
.help-list{margin:.2rem 0}   /* kein eigener Scroll mehr — das Modal scrollt als Ganzes (ein Scroll-Kontext) */
/* Hilfe-Abschnitte als aufklappbare Details-Blöcke (kompaktes Modal, weniger Scrollen) */
.help-sec{border-top:1px solid var(--border);margin-top:.5rem;padding-top:.35rem}
.help-sec>summary{cursor:pointer;font-weight:600;font-size:.95rem;padding:.4rem .1rem;list-style:none}
.help-sec>summary::-webkit-details-marker{display:none}
.help-sec>summary::before{content:'▸ ';color:var(--muted)}
.help-sec[open]>summary::before{content:'▾ '}
.help-item,.faq-item{border:1px solid var(--border);border-radius:10px;margin:.35rem 0;background:var(--field)}
.help-item>summary,.faq-item>summary{cursor:pointer;padding:.6rem .8rem;font-weight:600;font-size:.95rem;list-style:none}
.help-item>summary::-webkit-details-marker,.faq-item>summary::-webkit-details-marker{display:none}
.help-item>summary::before,.faq-item>summary::before{content:'▸ ';color:var(--muted)}
.help-item[open]>summary::before,.faq-item[open]>summary::before{content:'▾ '}
.help-item>p,.faq-item>p{margin:0;padding:0 .85rem .7rem;color:var(--text);line-height:1.55}
.help-foot{display:flex;justify-content:space-between;gap:.6rem;flex-wrap:wrap;align-items:center;margin:.5rem 0 .2rem;font-size:.92rem}
/* KI-Hilfe (Phase B) — freie Frage im Panel */
.help-ai{margin:.7rem 0 .3rem;border-top:1px solid var(--border);padding-top:.7rem}
.help-ai-label{display:block;font-weight:600;font-size:.92rem;margin:0 0 .4rem}
.help-ai-row{display:flex;gap:.4rem;align-items:stretch}
.help-ai-input{flex:1;min-width:0;margin:0}
.help-ai-send{margin:0;white-space:nowrap}
.help-ai-answer{margin:.6rem 0 .2rem;border:1px solid var(--border);border-radius:10px;padding:.65rem .8rem;background:var(--field);line-height:1.55;max-height:45vh;overflow-y:auto;overscroll-behavior:contain}
.help-ai-answer.is-loading{color:var(--muted);font-style:italic}
.help-ai-answer.is-error{border-color:var(--warn)}
.help-ai-answer.is-ok{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 8%,var(--field))}
.help-ai-badge{display:inline-block;font-size:.72rem;font-weight:700;color:var(--primary);letter-spacing:.03em;margin:0 0 .3rem}
.help-ai-text{margin:0 0 .45rem;color:var(--text)}
.help-ai-src{font-size:.85rem;color:var(--muted)}
.help-ai-src a{color:var(--primary)}
.faq-cat{margin:1.3rem 0}
.faq-cat h2{font-size:1.05rem;margin:0 0 .5rem}
/* Ungespeichert-Dialog + Feld-Hervorhebung */
.unsaved-actions{display:flex;flex-direction:column;gap:.5rem;margin:.7rem 0 .2rem}
.unsaved-actions button{margin:0;width:100%}
.unsaved-actions .primary{font-size:1.05rem;padding:.75rem}
.unsaved-hint{text-align:center;margin:.4rem 0 0}
.field-dirty{outline:2px solid var(--warn)!important;outline-offset:1px;border-radius:6px;background:color-mix(in srgb,var(--warn) 14%,var(--field))}
.help-fab{position:fixed;right:1rem;bottom:1rem;z-index:45;width:2.9rem;height:2.9rem;border-radius:50%;
  background:var(--primary);color:var(--primary-text);font-size:1.45rem;font-weight:700;line-height:1;
  border:none;box-shadow:0 4px 14px rgba(0,0,0,.4);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;min-height:0}
.help-fab:hover{filter:brightness(1.08)}
body.cookie-on .help-fab{display:none}   /* FAB nicht über dem Cookie-Hinweis */
.help-fab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
/* Statistiken + Abzeichen (P1) */
.stat-grid{list-style:none;padding:0;margin:.6rem 0;display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}
.stat-grid li{background:rgba(127,127,127,.12);border-radius:10px;padding:.5rem;text-align:center}
.stat-grid b{display:block;font-size:1.3rem;line-height:1.1}
.stat-grid span{font-size:.72rem;opacity:.7}
.badge-grid{list-style:none;padding:0;margin:.6rem 0;display:flex;flex-wrap:wrap;gap:.5rem}
.badge-grid .badge{display:flex;flex-direction:column;align-items:center;gap:.1rem;width:5rem;padding:.5rem .25rem;border-radius:10px;background:rgba(127,127,127,.12);text-align:center}
.badge-grid .badge.locked{opacity:.45;filter:grayscale(1)}
.badge-emoji{font-size:1.6rem;line-height:1}
.badge-name{font-size:.76rem;font-weight:600}
.badge-tier{font-size:.7rem;opacity:.85}
.profile-head{text-align:center}
.profile-head h1{margin:.3rem 0 .2rem}
.friend-cta{margin:.2rem 0 0}
a.who-link,.who-link{cursor:pointer;text-decoration:none}
.frbtn{display:inline-block;margin-left:.25rem}
.gform{display:flex;flex-direction:column;align-items:center;gap:.5rem}
button.gbtn{border:none;cursor:pointer;font:inherit;width:100%}
.remember-row{display:flex;align-items:center;gap:.4rem;font-size:.85rem;opacity:.85}
.remember-row input{width:auto;margin:0}
.device-list{list-style:none;padding:0;margin:.4rem 0;display:flex;flex-direction:column;gap:.4rem}
.device-list li{display:flex;justify-content:space-between;align-items:center;gap:.5rem;flex-wrap:wrap}
/* Editor: Link-Hover-Karte + Easy/Pro-Umschalter */
.link-card{position:absolute;z-index:60;display:flex;gap:.15rem;background:var(--field);border:1px solid var(--border);border-radius:8px;padding:.2rem;box-shadow:0 4px 14px rgba(0,0,0,.35)}
.link-card[hidden]{display:none}
.link-card button{margin:0;border:none;background:transparent;color:inherit;cursor:pointer;font-size:.78rem;padding:.25rem .45rem;border-radius:6px;white-space:nowrap;min-height:0}
.link-card button:hover{background:rgba(127,127,127,.2)}
.md-toolbar .editor-mode-toggle{margin:0 0 0 auto;gap:.4rem;font-size:.8rem;cursor:pointer}
.md-toolbar .editor-mode-toggle .toggle-text{flex:0 0 auto;min-width:0;opacity:.8}
.md-toolbar .editor-mode-toggle .toggle-sw{width:38px;height:22px}
.md-toolbar .editor-mode-toggle .toggle-knob{width:16px;height:16px}
.md-toolbar .editor-mode-toggle .toggle-input:checked + .toggle-sw .toggle-knob{transform:translateX(16px)}
#wishlist-preview[contenteditable=true]{min-height:8rem;border:1px solid rgba(127,127,127,.4);border-radius:8px;padding:.6rem;outline:none}
#wishlist-preview[contenteditable=true]:focus{border-color:var(--accent)}
#wishlist-preview[contenteditable=true]:empty:before{content:attr(data-ph);opacity:.5}
/* Globale Fokus-Sichtbarkeit (A11y) — nur bei Tastatur-Fokus */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
/* Bewegung reduzieren, wenn vom System gewünscht (A11y) */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}
.nameav{display:inline-flex;align-items:center;gap:.4rem}
.who{display:inline-flex;align-items:center;gap:.35rem;text-decoration:none}
nav a.who:hover{color:var(--text)}
.me-link{display:inline-block;border-radius:50%;text-decoration:none;vertical-align:middle}
.me-link:hover{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 45%,transparent)}
/* Emoji-Picker */
.emojipick{display:inline-flex;align-items:center;gap:.3rem}
.emoji-trigger,.avatar-trigger{margin:0;font-size:1.3rem;line-height:1;padding:.2rem .45rem;background:var(--field);border:1px solid var(--border);border-radius:9px;min-width:2.4rem;min-height:2.2rem;display:inline-flex;align-items:center;justify-content:center}
.emoji-clear{margin:0}
.emoji-modal{max-width:430px;width:100%}
#emoji-search{width:100%;margin-bottom:.6rem}
.emoji-grid{max-height:46vh;overflow:auto;display:flex;flex-wrap:wrap;gap:.15rem;align-content:flex-start}
.emoji-cat{flex:0 0 100%;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:.45rem 0 .1rem;padding-top:.25rem;border-top:1px solid var(--border)}
.emoji-cell{margin:0;padding:.1rem;font-size:1.35rem;line-height:1;background:none;border:1px solid transparent;border-radius:7px;width:2.1rem;height:2.1rem;display:flex;align-items:center;justify-content:center}
.emoji-cell:hover{background:var(--badge);border-color:var(--border)}
/* Schaubild-Knoten */
.cyc-emoji{font-size:18px}
.cyc-mono{fill:#fff;font-size:12px;font-weight:700}
/* Dashboard: „+ Neues Event" als Aufklapper */
.newevent{margin-top:.7rem;border:1px solid var(--border);border-radius:10px;padding:0 .8rem;background:var(--panel2)}
.newevent>summary{cursor:pointer;font-weight:600;padding:.6rem 0;list-style:none}
.newevent>summary::-webkit-details-marker{display:none}
.newevent[open]{padding-bottom:.6rem}
.avatarform{align-items:center;gap:.5rem}
/* Hinweise (stille, wegklickbar) + Historie */
.notice-hint{display:flex;align-items:center;justify-content:space-between;gap:.6rem;background:color-mix(in srgb,var(--accent) 12%,var(--panel));border-color:var(--accent)}
.hint-x{margin:0}
.linkx{background:none;border:none;color:var(--muted);font-size:1rem;cursor:pointer;margin:0;padding:.1rem .35rem;line-height:1}
.linkx:hover{color:var(--text)}
nav .badge.pending{font-size:.62rem;padding:.05rem .35rem}
.notelist{list-style:none;padding:0;margin:0}
.notelist li{display:flex;flex-direction:column;gap:.1rem;padding:.55rem .2rem;border-bottom:1px solid var(--border)}
.notelist li.unseen{border-left:3px solid var(--accent);padding-left:.6rem}
.note-meta{font-size:.75rem}
/* Teilnehmer-Roster + Ausschluss-Wunsch */
.roster{list-style:none;padding:0;margin:.4rem 0;display:flex;flex-wrap:wrap;gap:.4rem .9rem}
.roster li{display:inline-flex;align-items:center;gap:.4rem}
.wishform{margin:.3rem 0}
.wishform select,.wishform input[name="message"]{flex:1 1 auto;min-width:0}
.wishrow{margin:.5rem 0;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.wish-locked{opacity:.85;background:var(--panel2);border:1px solid var(--border);border-radius:8px;padding:.3rem .6rem}
/* Adressbuch */
.addrlist li{display:flex;justify-content:space-between;align-items:center;gap:.6rem;flex-wrap:wrap}
.addr-pack{display:none}
.addr-kind{margin:.6rem 0}
/* Segmented-Toggle (Adresstyp etc.) */
.segmented{display:inline-flex;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--field)}
.segmented label{margin:0;display:flex;cursor:pointer}
.segmented input{position:absolute;opacity:0;width:1px;height:1px}
.segmented span{padding:.5rem 1.1rem;font-weight:600;color:var(--muted);user-select:none;transition:background .15s,color .15s;white-space:nowrap}
.segmented label:not(:last-child) span{border-right:1px solid var(--border)}
.segmented input:checked+span{background:var(--primary);color:var(--primary-text)}
.segmented input:focus-visible+span{outline:2px solid var(--accent);outline-offset:-2px}
hr{border:0;border-top:1px solid var(--border);margin:.8rem 0}
.delrow{margin-top:.6rem}
/* Bestätigungs-Modal */
.wm-overlay{position:fixed;inset:0;background:rgba(5,12,20,.6);display:none;align-items:center;justify-content:center;z-index:50;padding:1rem}
.wm-overlay.show{display:flex}
.wm-modal{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:1.3rem 1.4rem;max-width:430px;width:100%;box-shadow:0 12px 44px rgba(0,0,0,.45);
  max-height:calc(100vh - 2rem);max-height:calc(100dvh - 2rem);overflow-y:auto;overscroll-behavior:contain}   /* Modal selbst scrollt; kein Durchscrollen auf den Hintergrund (Mobil-Fix) */
body.modal-open{overflow:hidden}   /* Hintergrund-Scroll sperren, solange ein Modal offen ist */
.wm-modal p{margin:0 0 1.1rem;font-size:1rem}
.wm-actions{display:flex;justify-content:flex-end;gap:.5rem}
.wm-cancel{background:var(--badge)}
#wm-ok:disabled{opacity:.55;cursor:default}
/* Wunschzettel-Editor */
.md-toolbar{display:flex;gap:.3rem;flex-wrap:wrap;margin:.2rem 0 .35rem}
.md-toolbar button{margin:0;padding:.32rem .6rem;font-size:.85rem;background:var(--field);border:1px solid var(--border)}
.cb.surprise{margin:.2rem 0 .6rem;font-size:.95rem}
#wishlist-input{min-height:210px}
#wishlist-preview img,.wishlist img{max-width:100%;max-height:340px;border-radius:8px;margin:.3rem 0}
#wm-msg{white-space:pre-line;margin:0 0 1.1rem}
.wm-modal h3{margin:.1rem 0 .7rem;font-size:1.05rem}
.wm-modal label{margin:.55rem 0}
.toggle-surprise{background:var(--field);border:1px solid var(--border);margin:.2rem 0 .7rem}
.toggle-surprise.active{background:var(--warn);color:#1a1206;border-color:transparent}
/* Kreis-Grafik der Auflösung */
.cycle-graphic{display:flex;flex-wrap:wrap;gap:.6rem;margin:.4rem 0 .8rem}
.cyclesvg{color:var(--accent)}
.cyc-edge{stroke:var(--accent);stroke-width:2;opacity:.85}
.cyc-node{fill:var(--panel2);stroke:var(--accent);stroke-width:2}
.cyc-label{fill:var(--text);font-size:12px;font-weight:600}
.date-err{color:var(--danger);display:block;margin-top:.25rem;font-size:.82rem}
button[disabled]{opacity:.5;cursor:not-allowed;filter:none}
.iconpick{display:flex;align-items:center;gap:.25rem;flex-wrap:wrap;margin:.5rem 0}
.iconbtn{margin:0;padding:.2rem .35rem;font-size:1.05rem;line-height:1;background:var(--field);border:1px solid var(--border);border-radius:8px}
.iconbtn.sel{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 22%,var(--panel))}
/* Teilnehmer-Änderung nach Auslosung (Voting + Resolve) */
.change-card,.vote-card{border-left:3px solid var(--warn);background:color-mix(in srgb,var(--warn) 8%,var(--panel))}
.vote-stand,.vote-mine{margin:.35rem 0}
.resolve-options{display:flex;flex-direction:column;gap:.5rem;margin:.6rem 0}
.resolve-options form{display:flex;align-items:center;gap:.6rem;margin:0;flex-wrap:wrap}
.resolve-options form button{margin:0;min-width:210px}

/* ----------------------------- Mobile / Responsive-Pass ----------------------------- */
.navtoggle{display:none;font-size:1.35rem;line-height:1;padding:.3rem .6rem;background:var(--field);border:1px solid var(--border);border-radius:9px;margin:0;color:var(--text)}
@media (max-width: 640px){
  header{padding:.7rem .9rem;gap:.5rem}
  header.has-nav .navtoggle{display:inline-flex;align-items:center}
  header.has-nav nav{display:none;order:3;width:100%;flex-direction:column;align-items:stretch;gap:.05rem;margin-top:.5rem}
  header.has-nav.nav-open nav{display:flex}
  header.has-nav nav a{width:100%;padding:.7rem .3rem;border-bottom:1px solid var(--border)}
  header.has-nav nav .who{order:-1;width:100%;padding:.5rem .3rem}
  header.has-nav nav #themebtn{align-self:flex-start;margin-top:.4rem}
  main{padding:1.1rem .8rem 4.5rem}
  h1{font-size:1.5rem}
  input,select,textarea{font-size:16px}                  /* iOS: kein Auto-Zoom bei Fokus */
  button{min-height:42px}                                 /* Touch-Targets vergrößern */
  button.tiny{min-height:38px}
  .seg-filter button{min-height:34px}
  .md-toolbar button{min-height:40px;min-width:40px}
  .resolve-options form button{min-width:0}
  /* Admin-Teilnehmertabelle -> gestapelte Karten */
  table tr:first-child{display:none}
  table, table tbody, table tr, table td{display:block;width:auto}
  table tr{background:var(--field);border:1px solid var(--border);border-radius:12px;padding:.6rem .8rem;margin:.5rem 0}
  table td{border:none;padding:.2rem 0}
  table td::before{content:attr(data-label);display:block;color:var(--muted);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;margin-bottom:.05rem}
  table td.actions{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.45rem}
  table td.actions::before{display:none}
  table td.actions form{margin:0}
  .event-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}
}
