:root{
  --accent:#f5f0e6;
  --bg:#000;
  --text:#fff;
}
body .gruber-upload, body .gruber-gallery { font-family: Inter, Lato, Arial, sans-serif; color:var(--text); background:var(--bg); min-height:100vh; margin:0; padding:0; }
.gruber-topbar{ position:sticky; top:0; display:flex; align-items:center; justify-content:center; padding:12px; background:rgba(0,0,0,0.6); z-index:20;}
.gruber-logo{ height:36px; position:absolute; left:12px; top:8px; }
.gruber-title{ font-size:16px; font-weight:600; color:var(--text); }
.upload-cta .btn-cta{ background:var(--accent); color:#0b0b0b; padding:12px 18px; border-radius:10px; border:none; font-weight:700; display:inline-flex; gap:8px; align-items:center;}
.gruber-drop{ margin:18px; padding:28px; border:2px dashed rgba(255,255,255,0.06); text-align:center; border-radius:12px; color:rgba(255,255,255,0.6); }
.gruber-previews{ margin:10px; display:flex; gap:8px; flex-wrap:wrap; }
.gruber-qr.small-qr{ position:fixed; right:12px; bottom:12px; background:rgba(255,255,255,0.03); padding:8px; border-radius:8px; text-align:center; }
.event-grid{ display:grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap:0; }
.event-grid .tile{ aspect-ratio: 4/3; background-size:cover; background-position:center; }
.gruber-filter{ display:flex; gap:8px; padding:8px; justify-content:center; position:sticky; top:64px; z-index:10;}
.gruber-filter button{ background:transparent; border:1px solid rgba(255,255,255,0.06); padding:8px 12px; border-radius:8px; color:var(--text); }
.gruber-footer{ text-align:center; font-size:12px; padding:16px; color:rgba(255,255,255,0.6); }
.gruber-lightbox{ position:fixed; left:0; top:0; width:100%; height:100%; background:rgba(0,0,0,0.95); display:flex; align-items:center; justify-content:center; z-index:9999; }

