
/* ═══════════════════════════════════════
   THEME TOKENS
═══════════════════════════════════════ */
/* ── LIGHT: Modern / Seriös ── */
[data-theme="light"] {
  --bg:          #f4f6f9;
  --paper:       #f4f6f9;
  --surf:        #ffffff;
  --card-bg:     #ffffff;
  --warm:        #e8ecf2;
  --border:      #d1d8e2;
  --border-str:  #1c2b3a;
  --text:        #0d1b2a;
  --text-inv:    #ffffff;
  --muted:       #6b7e96;
  --accent:      #e8353a;
  --accent2:     #1a56db;
  --mustard:     #d97706;
  --nav-bg:      rgba(244,246,249,0.96);
  --nav-border:  #1c2b3a;
  --tc-head-bg:  #0d1b2a;
  --tc-head-txt: #f4f6f9;
  --tc-dow-bg:   #e8ecf2;
  --bnav-bg:     #0d1b2a;
  --bnav-txt:    rgba(244,246,249,0.38);
  --bnav-active: #ffffff;
  --stamp-bg:    #0d1b2a;
  --stamp-txt:   #ffffff;
  --feat-shadow: 0 2px 12px rgba(13,27,42,0.12),0 0 0 1px #d1d8e2;
  --feat-shadow-h: 0 8px 24px rgba(13,27,42,0.18),0 0 0 1px #1a56db;
  --ticket-shadow: 0 1px 6px rgba(13,27,42,0.08), 0 0 0 1px #e8ecf2;
  --ticket-shadow-h: 0 4px 16px rgba(13,27,42,0.13), 0 0 0 1px #1a56db;
  --stub-bg:     #e8ecf2;
  --toggle-track:#d1d8e2;
  --img-sepia:   saturate(1.0) contrast(1.03);
  --torn-color:  #ffffff;
  --orb1:        rgba(26,86,219,0.07);
  --orb2:        rgba(232,53,58,0.06);
  --div-shape:   #e8353a;
  --qf-border:   #d1d8e2;
  --qf-text:     #6b7e96;
  --date-chip-bg: #0d1b2a;
  --date-chip-txt:#93b4d8;
}

/* ── DARK: Tiefes Nachtblau/Navy ── */
[data-theme="dark"] {
  --bg:          #09111f;
  --paper:       #09111f;
  --surf:        #0e1a2e;
  --card-bg:     #101e33;
  --warm:        #162540;
  --border:      #1e3456;
  --border-str:  #2e4f7a;
  --text:        #ddeaf8;
  --text-inv:    #09111f;
  --muted:       #5a80aa;
  --accent:      #e8624a;   /* coral leicht aufgehellt für Navy-Kontrast */
  --accent2:     #4db8e8;   /* helles Himmelblau als Gegenpol zu Navy */
  --mustard:     #e8b84a;
  --nav-bg:      rgba(9,17,31,0.92);
  --nav-border:  #1e3456;
  --tc-head-bg:  #0e1a2e;
  --tc-head-txt: #ddeaf8;
  --tc-dow-bg:   #09111f;
  --bnav-bg:     rgba(9,17,31,0.97);
  --bnav-txt:    rgba(221,234,248,0.35);
  --bnav-active: #ddeaf8;
  --stamp-bg:    #4db8e8;
  --stamp-txt:   #09111f;
  --feat-shadow: 4px 4px 0 #1e3456;
  --feat-shadow-h: 6px 6px 0 #4db8e8;
  --ticket-shadow: 2px 2px 0 #1e3456;
  --ticket-shadow-h: 3px 3px 0 #4db8e8;
  --stub-bg:     #0e1a2e;
  --toggle-track:#162540;
  --img-sepia:   sepia(8%) contrast(1.06) brightness(0.90);
  --torn-color:  #101e33;
  --orb1:        rgba(77,184,232,0.12);
  --orb2:        rgba(232,98,74,0.09);
  --div-shape:   #4db8e8;
  --qf-border:   #1e3456;
  --qf-text:     #5a80aa;
  --date-chip-bg: #162540;
  --date-chip-txt:#4db8e8;
}

/* ═══════════════════════════════════════
   BASE
═══════════════════════════════════════ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
body{
  font-family:'Plus Jakarta Sans',sans-serif;
  background:var(--bg);color:var(--text);
  min-height:100vh;overflow-x:hidden;
  transition:background 0.35s,color 0.35s;
}
/* grain */
body::before{
  content:'';position:fixed;inset:0;z-index:999;pointer-events:none;
  opacity:0.03;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:200px 200px;
}
/* ambient orbs */
.orb{position:fixed;pointer-events:none;border-radius:50%;filter:blur(90px);z-index:0;animation:drift 14s ease-in-out infinite alternate;}
.orb1{width:280px;height:280px;background:var(--orb1);top:-60px;right:-40px;}
.orb2{width:240px;height:240px;background:var(--orb2);bottom:100px;left:-60px;animation-delay:-7s;}
@keyframes drift{from{transform:translate(0,0);}to{transform:translate(18px,28px);}}

.page{max-width:430px;margin:0 auto;position:relative;z-index:1;}

/* ═══════════════════════════════════════
   TOP BAR
═══════════════════════════════════════ */
.topbar{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 20px 12px;
  border-bottom:1px solid var(--border);
  position:sticky;top:0;z-index:100;
  background:var(--nav-bg);
  backdrop-filter:blur(14px);
  transition:background 0.35s,border-color 0.35s;
}
.logo-lockup{display:flex;flex-direction:column;gap:0;}
.logo-eyebrow{
  font-family:'Plus Jakarta Sans',sans-serif;font-size:0.6rem;font-weight:500;
  color:var(--muted);transition:color 0.35s;
}
.logo-name{
  font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:1.75rem;letter-spacing:0.3px;line-height:1;
  color:var(--text);transition:color 0.35s;
}
.logo-wave{color:var(--accent2);}
.topbar-right{display:flex;gap:8px;align-items:center;}

/* ── THEME TOGGLE ── */
.theme-toggle{position:relative;width:52px;height:28px;cursor:pointer;flex-shrink:0;}
.theme-toggle input{opacity:0;width:0;height:0;position:absolute;}
.toggle-track{
  position:absolute;inset:0;border-radius:14px;
  background:var(--toggle-track);border:1.5px solid var(--border-str);
  transition:background 0.3s,border-color 0.3s;
  display:flex;align-items:center;padding:0 5px;justify-content:space-between;
}
.t-icon{font-size:0.72rem;line-height:1;user-select:none;}
.toggle-thumb{
  position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;
  background:var(--text);
  display:flex;align-items:center;justify-content:center;font-size:0.72rem;
  transition:transform 0.3s cubic-bezier(.34,1.56,.64,1),background 0.3s;
  box-shadow:0 2px 5px rgba(0,0,0,0.2);pointer-events:none;
}
[data-theme="light"] .toggle-thumb{transform:translateX(0);}
[data-theme="dark"]  .toggle-thumb{transform:translateX(24px);}

.tb-btn{
  width:36px;height:36px;border-radius:8px;
  border:1.5px solid var(--border);background:transparent;
  color:var(--muted);display:flex;align-items:center;justify-content:center;
  font-size:0.95rem;cursor:pointer;transition:all 0.15s;
}
.tb-btn:hover{background:var(--warm);border-color:var(--border-str);}
.submit-btn{
  background:var(--accent);color:#fff;border:none;border-radius:8px;
  padding:8px 14px;font-family:'DM Mono',monospace;font-size:0.7rem;
  letter-spacing:0.3px;cursor:pointer;font-weight:500;
  transition:opacity 0.15s;
}
.submit-btn:hover{opacity:0.85;}

/* ═══════════════════════════════════════
   GREETING + WEATHER
═══════════════════════════════════════ */
.greeting{
  padding:18px 20px 0;
  display:flex;align-items:flex-end;justify-content:space-between;
}
.greet-text{
  font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:1.5rem;letter-spacing:-0.5px;line-height:1.2;
  color:var(--text);transition:color 0.35s;
}
.greet-text span{color:var(--accent2);}
.greet-sub{
  font-family:'DM Mono',monospace;font-size:0.62rem;letter-spacing:0.3px;
  color:var(--muted);margin-top:5px;text-transform:uppercase;
  transition:color 0.35s;
}
.weather-pill{
  background:var(--surf);border:1.5px solid var(--border);
  border-radius:20px;padding:6px 12px;
  display:flex;align-items:center;gap:6px;
  font-family:'DM Mono',monospace;font-size:0.72rem;
  color:var(--muted);flex-shrink:0;
  transition:all 0.35s;
}

/* ═══════════════════════════════════════
   FEATURED SWIPE CARDS
═══════════════════════════════════════ */
.featured-label{
  padding:18px 20px 10px;display:flex;align-items:center;justify-content:space-between;
}
.feat-label-left{display:flex;align-items:center;gap:10px;}
.feat-tag{
  font-family:'DM Mono',monospace;font-size:0.58rem;letter-spacing:0.3px;
  text-transform:uppercase;background:var(--accent);color:#fff;
  padding:3px 8px;border-radius:4px;
}
.feat-head{
  font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:1.1rem;letter-spacing:0.5px;
  color:var(--text);transition:color 0.35s;
}
.feat-more{font-family:'DM Mono',monospace;font-size:0.62rem;letter-spacing:0.3px;color:var(--accent2);cursor:pointer;}

.swipe-track{
  display:flex;gap:14px;overflow-x:auto;padding:0 20px 6px;
  scrollbar-width:none;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
}
.swipe-track::-webkit-scrollbar{display:none;}
.feat-card{
  flex-shrink:0;width:275px;scroll-snap-align:start;
  border-radius:14px;overflow:hidden;
  border:1px solid var(--border);
  background:var(--card-bg);position:relative;cursor:pointer;
  transition:transform 0.2s,box-shadow 0.2s,border-color 0.35s,background 0.35s;
  box-shadow:0 2px 10px rgba(13,27,42,0.08);
}
.feat-card:hover{transform:translateY(-3px);box-shadow:var(--feat-shadow-h);}
.feat-img{height:155px;overflow:hidden;position:relative;}
.feat-img img{
  width:100%;height:100%;object-fit:cover;display:block;
  filter:var(--img-sepia);transition:transform 0.4s,filter 0.35s;
}
.feat-card:hover .feat-img img{transform:scale(1.05);}

.feat-date-chip{
  position:absolute;top:8px;left:8px;
  background:var(--date-chip-bg);color:var(--date-chip-txt);
  font-family:'DM Mono',monospace;font-size:0.65rem;letter-spacing:0.3px;
  padding:3px 8px;border-radius:4px;
  transition:background 0.35s,color 0.35s;
}
.feat-stamp{
  position:absolute;top:8px;right:8px;
  font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:0.62rem;letter-spacing:0.3px;
  padding:3px 8px;border-radius:20px;border:1.5px solid;
}
.stamp-hl{color:var(--mustard);border-color:var(--mustard);background:rgba(212,160,23,0.15);}
.stamp-hot{color:var(--accent);border-color:var(--accent);background:rgba(201,74,43,0.12);}
[data-theme="dark"] .stamp-hot{color:#e8624a;border-color:#e8624a;}
.feat-body{padding:10px 12px 12px;background:var(--card-bg);transition:background 0.35s;}
.feat-card-cat{
  font-family:'DM Mono',monospace;font-size:0.57rem;letter-spacing:0.5px;
  text-transform:uppercase;color:var(--accent2);margin-bottom:3px;
}
.feat-card-title{
  font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:1.2rem;letter-spacing:0.5px;
  line-height:1.1;color:var(--text);margin-bottom:6px;transition:color 0.35s;
}
.feat-card-meta{display:flex;align-items:center;justify-content:space-between;}
.feat-card-loc{font-family:'Plus Jakarta Sans',sans-serif;font-size:0.76rem;color:var(--muted);}
.feat-card-date{
  background:var(--stamp-bg);color:var(--stamp-txt);
  font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:0.82rem;
  padding:2px 8px;border-radius:4px;letter-spacing:0.3px;
  transition:background 0.35s,color 0.35s;
}

/* ═══════════════════════════════════════
   ORNAMENT DIVIDER
═══════════════════════════════════════ */
.section-divider{
  margin:18px 20px 0;display:flex;align-items:center;gap:10px;
}
.sd-line{flex:1;height:2px;background:var(--border-str);transition:background 0.35s;}
.sd-label{
  font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:1rem;letter-spacing:0.5px;
  color:var(--text);white-space:nowrap;transition:color 0.35s;
}
.sd-shape{
  width:6px;height:6px;border-radius:50%;background:var(--div-shape);
  flex-shrink:0;transition:background 0.35s;
}

/* ═══════════════════════════════════════
   WEEK STRIP CALENDAR
═══════════════════════════════════════ */
.week-cal-wrap{padding:14px 20px 0;}
.wc-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px;}
.wc-month{
  font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:1rem;letter-spacing:0.5px;
  color:var(--text);transition:color 0.35s;
}
.wc-controls{display:flex;gap:6px;}
.wc-btn{
  width:30px;height:30px;border-radius:6px;
  background:var(--surf);border:1.5px solid var(--border);
  color:var(--muted);font-size:0.9rem;
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  transition:all 0.15s;font-family:'DM Mono',monospace;
}
.wc-btn:hover{border-color:var(--accent2);color:var(--accent2);}

.week-row{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;}
.wday{display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;}
.wday-label{
  font-family:'DM Mono',monospace;font-size:0.56rem;font-weight:500;
  letter-spacing:0.8px;text-transform:uppercase;color:var(--muted);transition:color 0.35s;
}
.wday-num{
  width:36px;height:36px;border-radius:8px;
  display:flex;align-items:center;justify-content:center;
  font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:1rem;letter-spacing:0.5px;
  background:var(--surf);border:1.5px solid var(--border);color:var(--muted);
  transition:all 0.18s;position:relative;
}
.wday:hover .wday-num{border-color:var(--accent2);color:var(--accent2);}
.wday-num.today{background:rgba(232,53,58,0.09);border-color:var(--accent);color:var(--accent);}
[data-theme="dark"] .wday-num.today{background:rgba(232,98,74,0.14);border-color:#e8624a;color:#e8624a;}
.wday-num.selected{
  background:#1a56db;border-color:#1a56db;color:#ffffff;
  box-shadow:0 0 0 3px rgba(26,86,219,0.18);
}
[data-theme="dark"] .wday-num.selected{
  background:#4db8e8;border-color:#4db8e8;color:#09111f;
  box-shadow:0 0 16px rgba(77,184,232,0.5);
}
.wday-num.has-ev::after{
  content:'';position:absolute;bottom:3px;left:50%;transform:translateX(-50%);
  width:4px;height:4px;border-radius:50%;background:var(--accent);
}
.wday-num.selected::after{background:rgba(255,255,255,0.6);}

/* ═══════════════════════════════════════
   CATEGORY CHIPS
═══════════════════════════════════════ */
.chips{display:flex;gap:7px;overflow-x:auto;padding:14px 20px 0;scrollbar-width:none;}
.chips::-webkit-scrollbar{display:none;}
.chip{
  flex-shrink:0;font-family:'Plus Jakarta Sans',sans-serif;font-size:0.75rem;font-weight:600;
  padding:6px 14px;border-radius:40px;
  border:1.5px solid var(--qf-border);background:transparent;
  color:var(--qf-text);cursor:pointer;transition:all 0.18s;white-space:nowrap;
}
.chip.active{background:var(--accent);border-color:var(--accent);color:#fff;}
.chip:hover:not(.active){border-color:var(--border-str);color:var(--text);}

/* ═══════════════════════════════════════
   EVENT LIST
═══════════════════════════════════════ */
.evlist-header{
  padding:16px 20px 10px;display:flex;align-items:baseline;justify-content:space-between;
}
.evlist-title{
  font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:1rem;letter-spacing:-0.2px;
  color:var(--text);transition:color 0.35s;
}
.evlist-count{
  font-family:'DM Mono',monospace;font-size:0.62rem;letter-spacing:0.3px;
  color:var(--muted);transition:color 0.35s;
}

.evlist{padding:0 20px;display:flex;flex-direction:column;gap:10px;padding-bottom:90px;}

/* ── TICKET CARD ── */
.ev-ticket{
  display:flex;border:1px solid var(--border);border-radius:12px;
  overflow:hidden;background:var(--card-bg);cursor:pointer;
  transition:all 0.18s;position:relative;
  box-shadow:var(--ticket-shadow);
}
.ev-ticket:hover{box-shadow:var(--ticket-shadow-h);transform:translateY(-2px);}

/* left color bar (same as v4) */
.ev-ticket::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:3px;
  background:var(--border);transition:background 0.2s;z-index:2;
}
.ev-ticket.hot::before{background:var(--accent);}
.ev-ticket.hl::before{background:var(--mustard);}
.ev-ticket:hover::before{background:var(--accent2);}

/* date stub */
.ev-stub{
  flex-shrink:0;width:64px;
  background:var(--stub-bg);
  border-right:1px solid var(--border);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:10px 4px;gap:1px;position:relative;
  transition:background 0.35s,border-color 0.35s;
}


.stub-day{
  font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:1.6rem;line-height:1;letter-spacing:-1px;
  color:var(--text);transition:color 0.35s;
}
.stub-mon{
  font-family:'DM Mono',monospace;font-size:0.58rem;letter-spacing:0.5px;
  text-transform:uppercase;color:var(--accent2);
}
.stub-time{
  font-family:'Plus Jakarta Sans',sans-serif;font-weight:500;font-size:0.62rem;
  color:var(--muted);margin-top:5px;transition:color 0.35s;
}

/* body */
.ev-body-wrap{flex:1;display:flex;min-width:0;}
.ev-info{
  flex:1;padding:10px 10px 10px 12px;
  display:flex;flex-direction:column;gap:3px;min-width:0;
}
.ev-cat{
  font-family:'DM Mono',monospace;font-size:0.57rem;letter-spacing:0.5px;
  text-transform:uppercase;color:var(--accent);
}
.ev-title{
  font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:1.05rem;letter-spacing:0.5px;
  line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  color:var(--text);transition:color 0.35s;
}
.ev-loc{
  font-family:'Plus Jakarta Sans',sans-serif;font-weight:500;
  font-size:0.74rem;color:var(--muted);transition:color 0.35s;
}
.ev-badges{display:flex;gap:5px;flex-wrap:wrap;margin-top:2px;}
.ev-badge-small{
  font-family:'DM Mono',monospace;font-size:0.54rem;letter-spacing:0.5px;
  padding:2px 6px;border-radius:4px;border:1px solid;
}
.b-hl{color:var(--mustard);border-color:var(--mustard);background:rgba(212,160,23,0.1);}
.b-hot{color:var(--accent);border-color:var(--accent);background:rgba(201,74,43,0.08);}
[data-theme="dark"] .b-hot{color:#e8624a;border-color:#e8624a;}

/* thumbnail */
.ev-thumb{flex-shrink:0;width:74px;overflow:hidden;}
.ev-thumb img{
  width:100%;height:100%;object-fit:cover;display:block;
  filter:var(--img-sepia);transition:filter 0.25s,transform 0.25s;
}
.ev-ticket:hover .ev-thumb img{filter:sepia(0%) contrast(1.05);transform:scale(1.04);}

/* ── FAV BUTTON ── */
.fav{
  position:absolute;bottom:8px;right:82px;z-index:3;
  width:24px;height:24px;border-radius:50%;
  background:var(--surf);border:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;
  font-size:0.7rem;cursor:pointer;transition:all 0.15s;
}
.fav:hover,.fav.on{background:rgba(201,74,43,0.15);border-color:var(--accent);}

/* ═══════════════════════════════════════
   BOTTOM NAV
═══════════════════════════════════════ */
.bottom-nav{
  position:fixed;bottom:0;left:0;right:0;max-width:430px;margin:0 auto;
  background:var(--bnav-bg);border-top:1px solid var(--border);
  display:flex;padding:10px 0 16px;
  backdrop-filter:blur(14px);transition:background 0.35s,border-color 0.35s;
}
.bn-item{
  flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;
  font-family:'DM Mono',monospace;font-size:0.55rem;letter-spacing:0.3px;
  text-transform:uppercase;color:var(--bnav-txt);cursor:pointer;transition:color 0.15s;
}
.bn-item.active{color:var(--bnav-active);}
.bn-icon{font-size:1.2rem;}

/* empty */
.empty-state{
  text-align:center;padding:36px 20px;color:var(--muted);
  font-family:'Plus Jakarta Sans',sans-serif;font-size:0.9rem;
}

@keyframes slideIn{from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:none;}}
.anim{animation:slideIn 0.28s ease both;}

/* ── TRUST BAR ── */
.trust-bar{
  display:flex;align-items:center;justify-content:center;
  gap:0;padding:12px 20px 0;
  flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;
}
.trust-bar::-webkit-scrollbar{display:none;}
.trust-item{
  display:flex;flex-direction:column;align-items:center;gap:1px;
  flex-shrink:0;padding:0 10px;
}
.trust-num{
  font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:1rem;letter-spacing:-0.5px;
  color:var(--text);line-height:1;transition:color 0.35s;
}
.trust-label{
  font-family:'DM Mono',monospace;font-size:0.56rem;letter-spacing:0.3px;
  text-transform:uppercase;color:var(--muted);transition:color 0.35s;
}
.trust-sep{width:1px;height:28px;background:var(--border);flex-shrink:0;}

/* ── CITY STRIP ── */
.city-strip{
  display:flex;gap:7px;overflow-x:auto;
  padding:12px 20px 0;scrollbar-width:none;
}
.city-strip::-webkit-scrollbar{display:none;}
.city-pill{
  flex-shrink:0;
  font-family:'DM Mono',monospace;font-size:0.65rem;letter-spacing:0.3px;
  padding:6px 13px;border-radius:20px;
  border:1.5px solid var(--border);
  background:var(--surf);color:var(--muted);
  cursor:pointer;transition:all 0.18s;white-space:nowrap;
}
.city-pill.active{background:var(--accent2);border-color:var(--accent2);color:#fff;}
.city-pill:hover:not(.active){border-color:var(--border-str);color:var(--text);}

/* ── NEWSLETTER CTA ── */
.newsletter-cta{
  margin:20px 20px 0;
  background:var(--surf);
  border:1px solid var(--border);
  border-radius:14px;
  padding:16px;
  display:flex;gap:12px;
  align-items:flex-start;
  box-shadow:0 2px 10px rgba(13,27,42,0.08);
  transition:all 0.35s;
}
.nl-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px;}
.nl-body{flex:1;}
.nl-title{
  font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:1.1rem;letter-spacing:0.5px;
  color:var(--text);margin-bottom:3px;transition:color 0.35s;
}
.nl-sub{
  font-family:'Plus Jakarta Sans',sans-serif;font-weight:400;
  font-size:0.78rem;color:var(--muted);margin-bottom:10px;
  transition:color 0.35s;
}
.nl-form{display:flex;gap:7px;}
.nl-input{
  flex:1;padding:8px 11px;border-radius:8px;
  border:1.5px solid var(--border);background:var(--bg);
  font-family:'DM Mono',monospace;font-size:0.72rem;
  color:var(--text);outline:none;transition:all 0.2s;
  min-width:0;
}
.nl-input:focus{border-color:var(--accent2);}
.nl-input::placeholder{color:var(--muted);}
.nl-btn{
  flex-shrink:0;padding:8px 14px;
  background:var(--accent2);color:#fff;border:none;
  border-radius:8px;font-family:'DM Mono',monospace;
  font-size:0.68rem;letter-spacing:0.3px;cursor:pointer;
  transition:opacity 0.15s;white-space:nowrap;
}
.nl-btn:hover{opacity:0.85;}
.nl-confirm{
  font-family:'DM Mono',monospace;font-size:0.72rem;
  color:var(--accent2);margin-top:6px;
}

/* ── LOAD MORE BUTTON ── */
.load-more-wrap{
  padding:16px 20px 0;display:flex;justify-content:center;
}
.load-more-btn{
  font-family:'DM Mono',monospace;font-size:0.72rem;letter-spacing:0.3px;
  text-transform:uppercase;padding:11px 28px;
  border:1.5px solid var(--border-str);border-radius:8px;
  background:transparent;color:var(--text);cursor:pointer;
  transition:all 0.18s;
}
.load-more-btn:hover{background:var(--text);color:var(--bg);}
.load-more-btn:disabled{opacity:0.4;cursor:default;}

/* ── "THIS WEEK IN YOUR CITY" SECTION ── */
.this-week{
  margin:0 20px;
  background:linear-gradient(135deg,var(--accent2) 0%,rgba(26,86,219,0.7) 100%);
  border-radius:14px;padding:14px 16px;
  display:flex;align-items:center;justify-content:space-between;
  cursor:pointer;transition:opacity 0.15s;
}
[data-theme="dark"] .this-week{
  background:linear-gradient(135deg,rgba(77,184,232,0.25) 0%,rgba(9,17,31,0.5) 100%);
  border:1px solid rgba(77,184,232,0.3);
}
.this-week:hover{opacity:0.88;}
.tw-left{}
.tw-eyebrow{
  font-family:'DM Mono',monospace;font-size:0.58rem;letter-spacing:0.3px;
  text-transform:uppercase;color:rgba(255,255,255,0.75);margin-bottom:3px;
}
.tw-title{
  font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:1.3rem;letter-spacing:0.5px;
  color:#fff;line-height:1.1;
}
.tw-sub{font-family:'Plus Jakarta Sans',sans-serif;font-weight:400;font-size:0.78rem;color:rgba(255,255,255,0.8);}
.tw-arrow{font-size:1.6rem;color:#fff;opacity:0.8;}

/* ── GEMERKT HINT ── */
.gemerkt-hint{
  display:none;
  padding:8px 16px;
  background:rgba(26,86,219,0.08);
  border-left:3px solid var(--accent2);
  margin:0 20px;border-radius:0 6px 6px 0;
  font-family:'DM Mono',monospace;font-size:0.65rem;
  color:var(--accent2);letter-spacing:0.5px;
}

/* MAP VIEW */
#mainView{display:block;}
#mapView{display:none;flex-direction:column;height:calc(100vh - 56px);}
#mapView.map-active{display:flex;}
#leaflet-map{flex:1;width:100%;min-height:0;}
.leaflet-popup-content-wrapper{background:var(--card-bg)!important;border:2px solid var(--border-str)!important;border-radius:12px!important;box-shadow:4px 4px 0 var(--border-str)!important;padding:0!important;color:var(--text)!important;}
.leaflet-popup-tip{background:var(--card-bg)!important;}
.leaflet-popup-content{margin:0!important;}
.map-popup{padding:12px 14px;min-width:175px;}
.map-popup-city{font-family:"DM Mono",monospace;font-size:0.58rem;letter-spacing:0.5px;text-transform:uppercase;color:var(--accent2);margin-bottom:4px;}
.map-popup-event{font-family:"Plus Jakarta Sans",sans-serif;font-weight:700;font-size:0.88rem;letter-spacing:-0.2px;line-height:1.2;color:var(--text);margin-bottom:3px;}
.map-popup-meta{font-family:"DM Mono",monospace;font-size:0.6rem;color:var(--muted);display:flex;gap:8px;}
.map-popup-badge{font-size:0.55rem;font-weight:700;padding:1px 5px;border-radius:4px;background:rgba(232,53,58,0.12);color:var(--accent);border:1px solid var(--accent);}
.map-popup-more{margin-top:8px;padding:5px 0 0;border-top:1px solid var(--border);font-family:"DM Mono",monospace;font-size:0.6rem;letter-spacing:0.3px;color:var(--accent2);text-transform:uppercase;}
.map-filter-bar{background:var(--surf);border-bottom:1px solid var(--border);padding:8px 16px;display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;flex-shrink:0;}
.map-filter-bar::-webkit-scrollbar{display:none;}
.map-filter-bar .chip{font-size:0.62rem;padding:5px 11px;}
.map-legend{background:var(--surf);border-top:1px solid var(--border);padding:10px 16px;display:flex;gap:14px;overflow-x:auto;scrollbar-width:none;flex-shrink:0;}
.map-legend::-webkit-scrollbar{display:none;}
.legend-item{display:flex;align-items:center;gap:5px;flex-shrink:0;cursor:pointer;}
.legend-dot{width:10px;height:10px;border-radius:50%;border:2px solid rgba(0,0,0,0.15);}
.legend-label{font-family:"DM Mono",monospace;font-size:0.6rem;letter-spacing:0.8px;text-transform:uppercase;color:var(--muted);}
.map-event-count{font-family:"DM Mono",monospace;font-size:0.62rem;letter-spacing:0.3px;color:var(--muted);padding:6px 16px 0;text-transform:uppercase;}


/* ═══════════════════════════════════════
   WASGEHT24 INTEGRATION V20
═══════════════════════════════════════ */
html.dark{color-scheme:dark}html:not(.dark){color-scheme:light}
html.dark{--force-theme:dark}
body.wg24-page{font-family:'Plus Jakarta Sans',sans-serif;background:var(--bg)!important;color:var(--text)!important;padding:0!important;}
body.wg24-page .page{max-width:430px;margin:0 auto;}
a.logo-lockup{text-decoration:none;color:inherit}.topbar a{text-decoration:none}.topbar .submit-btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.topbar .tb-btn{font-size:.95rem!important}.view-hidden{display:none!important}.footer{padding:18px 20px 100px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap}.footer a{font-family:'DM Mono',monospace;font-size:.65rem;color:var(--muted);text-transform:uppercase;text-decoration:none}.footer a:hover{color:var(--accent2)}
.search-panel{display:none;padding:12px 20px 0}.search-panel.open{display:block}.search-card-wg{background:var(--surf);border:1px solid var(--border);border-radius:14px;padding:14px;box-shadow:var(--ticket-shadow)}.filter-label{font-family:'DM Mono',monospace;font-size:.58rem;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);margin-bottom:10px}.search-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.search-field{display:grid;gap:5px;font-family:'DM Mono',monospace;font-size:.58rem;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);position:relative}.search-field.full{grid-column:1/-1}.search-field input{width:100%;min-height:44px;border:1.5px solid var(--border);border-radius:9px;background:var(--bg);color:var(--text);padding:10px 11px;font-family:'Plus Jakarta Sans',sans-serif;font-size:16px;outline:none}.search-field input:focus{border-color:var(--accent2);box-shadow:0 0 0 3px rgba(26,86,219,.12)}.search-field input::placeholder{color:var(--muted);opacity:.8}.search-actions{display:flex;gap:8px;margin-top:10px}.search-submit,.search-reset{flex:1;min-height:44px;border:0;border-radius:9px;font-family:'DM Mono',monospace;font-size:.68rem;letter-spacing:.3px;text-transform:uppercase;text-decoration:none;display:flex;align-items:center;justify-content:center;cursor:pointer}.search-submit{background:var(--accent);color:#fff}.search-reset{background:transparent;color:var(--text);border:1.5px solid var(--border)}.active-strip{display:flex;gap:7px;overflow-x:auto;padding:10px 20px 0;scrollbar-width:none}.active-strip::-webkit-scrollbar{display:none}.filter-pill{flex:0 0 auto;font-family:'DM Mono',monospace;font-size:.62rem;border:1px solid var(--border);background:var(--surf);color:var(--muted);border-radius:20px;padding:5px 10px;text-decoration:none}.filter-pill.reset{color:var(--accent);border-color:rgba(232,53,58,.35)}.ac-list{display:none;position:absolute;left:0;right:0;top:100%;z-index:200;background:var(--surf);border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 34px rgba(13,27,42,.16);padding:5px;margin-top:4px;max-height:210px;overflow:auto}.ac-list.show{display:grid;gap:4px}.ac-list button{border:0;border-radius:8px;background:transparent;color:var(--text);text-align:left;padding:9px 10px;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif}.ac-list button:hover{background:var(--warm)}
.feat-card .fallback-emoji,.ev-thumb .fallback-emoji{display:grid;place-items:center;width:100%;height:100%;font-size:32px;background:var(--warm)}.feat-card{color:inherit}.feat-card .feat-img span.fallback-emoji{height:155px}.ev-ticket .fav-btn{position:absolute;bottom:8px;right:82px;z-index:3;width:24px;height:24px;border-radius:50%;background:var(--surf);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:.7rem;cursor:pointer;transition:all .15s;color:var(--text);padding:0}.ev-ticket.is-favorite .fav-btn,.ev-ticket .fav-btn.is-favorite{background:rgba(232,53,58,.15);border-color:var(--accent);color:var(--accent)}.ev-ticket .card-click{display:none}.ev-ticket .ev-title{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.ev-ticket .ev-loc{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.modal{position:fixed;inset:0;z-index:2000;background:rgba(0,0,0,.56);display:none;align-items:center;justify-content:center;padding:18px}.modal.open{display:flex}.modal-panel{width:min(680px,100%);max-height:min(86vh,860px);overflow:auto;background:var(--surf);border:1px solid var(--border);border-radius:16px;color:var(--text);box-shadow:0 24px 80px rgba(0,0,0,.28);position:relative}.modal-panel .close{position:absolute;top:10px;right:10px;width:38px;height:38px;border:1px solid var(--border);border-radius:10px;background:var(--bg);color:var(--text);font-size:24px;z-index:2}.modal-body{padding:18px}.modal-img{width:100%;max-height:320px;object-fit:cover;border-radius:12px;margin-bottom:14px}.modal-row{display:flex;gap:10px;margin:9px 0;color:var(--muted)}.modal-desc{line-height:1.7;margin-top:14px}.cat,.cat-list .cat,.event-category{display:inline-flex;align-items:center;border:1px solid var(--border);background:var(--warm);color:var(--accent2);border-radius:999px;padding:4px 8px;font-family:'DM Mono',monospace;font-size:.58rem;text-transform:uppercase;margin:0 5px 5px 0}.modal-actions-v107{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}.modal-actions-v107 a,.modal-actions-v107 button{border:0;border-radius:10px;min-height:44px;padding:10px 12px;text-align:center;text-decoration:none;font-family:'DM Mono',monospace;font-size:.68rem;background:var(--accent2);color:#fff;cursor:pointer}.modal-actions-v107 .modal-action-secondary,.modal-actions-v107 a.modal-action-secondary{background:transparent;color:var(--text);border:1px solid var(--border)}.socials{display:flex;gap:8px;margin-top:12px}.socials a{width:38px;height:38px;border:1px solid var(--border);border-radius:10px;display:grid;place-items:center;text-decoration:none;color:var(--accent2);background:var(--surf)}.cookie-consent{position:fixed;left:16px;right:16px;bottom:calc(78px + env(safe-area-inset-bottom));z-index:2200;margin:auto;max-width:390px;background:var(--surf);border:1px solid var(--border);border-radius:14px;box-shadow:0 16px 50px rgba(0,0,0,.25);padding:14px;display:none}.cookie-consent.show{display:block}.cookie-options{display:grid;gap:7px;margin:10px 0}.cookie-actions{display:flex;gap:7px;flex-wrap:wrap}.cookie-actions button{border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);padding:8px 10px}.cookie-actions .accept{background:var(--accent);color:#fff;border-color:var(--accent)}.muted{color:var(--muted)}
@media(min-width:760px){body.wg24-page .page{max-width:900px}.topbar,.bottom-nav{max-width:900px}.greeting,.featured-label,.week-cal-wrap,.evlist-header,.evlist,.chips,.section-divider,.trust-bar,.city-strip,.newsletter-cta,.this-week,.gemerkt-hint,.search-panel,.active-strip{max-width:430px;margin-left:auto;margin-right:auto}.wg-map-view{max-width:900px;margin:0 auto}.search-panel{max-width:430px}.newsletter-cta,.this-week{max-width:390px}}
@media(max-width:430px){.topbar{padding-left:16px;padding-right:16px}.logo-name{font-size:1.55rem}.submit-btn{padding:8px 10px}.search-grid{gap:8px}.modal-actions-v107{grid-template-columns:1fr}.weather-pill{font-size:.68rem;padding:6px 10px}.greet-text{font-size:1.35rem}.ev-thumb{width:66px}.ev-ticket .fav-btn{right:74px}.ev-info{padding-right:8px}.ev-title{font-size:1rem}.ev-loc{font-size:.72rem}}

/* Admin/Organizer/Public global modern skin */
body.admin-modern,body.organizer-modern,body.legal-modern,body.detail-modern{font-family:'Plus Jakarta Sans',sans-serif!important;background:var(--bg,#f4f6f9)!important;color:var(--text,#0d1b2a)!important}body.admin-modern .topbar,body.organizer-modern .topbar,body.legal-modern .topbar{border-bottom:1px solid var(--border,#d1d8e2)!important;background:var(--nav-bg,rgba(244,246,249,.96))!important}body.admin-modern .btn-primary,body.organizer-modern .btn-primary{background:var(--accent,#e8353a)!important;color:#fff!important}body.admin-modern .stat-card,body.admin-modern .table-wrap,body.organizer-modern .panel,body.organizer-modern .stat,body.organizer-modern .event,body.legal-modern .card{background:var(--card-bg,#fff)!important;border:1px solid var(--border,#d1d8e2)!important;border-radius:14px!important;box-shadow:0 2px 10px rgba(13,27,42,.08)!important}body.admin-modern h1,body.admin-modern h2,body.admin-modern h3,body.organizer-modern h1,body.organizer-modern h2,body.organizer-modern h3,body.legal-modern h1,body.legal-modern h2{font-family:'Plus Jakarta Sans',sans-serif!important;font-weight:800!important;color:var(--text,#0d1b2a)!important}body.admin-modern input,body.admin-modern select,body.admin-modern textarea,body.organizer-modern input,body.organizer-modern select,body.organizer-modern textarea{background:var(--surf,#fff)!important;border:1.5px solid var(--border,#d1d8e2)!important;color:var(--text,#0d1b2a)!important;border-radius:10px!important}body.admin-modern .sidebar{background:var(--surf,#fff)!important;border-right:1px solid var(--border,#d1d8e2)!important}body.admin-modern .nav a.active{color:var(--accent2,#1a56db)!important;background:rgba(26,86,219,.08)!important}body.admin-modern .nav a.active::before{background:var(--accent2,#1a56db)!important}

.logo-24,.brand-24{color:var(--accent)!important;}
