.nn-stammtisch {
  --nn-bg: #E9E8E5;
  --nn-navy: #16203B;
  --nn-black: #0B0F1A;
  --nn-blue: #214FD9;
  --nn-orange: #D0472A;
  --nn-yellow: #F0E36F;
  --nn-green: #659B6C;
  --nn-gray: #5B6473;
  --nn-border: #C7CCD6;
  --nn-mono: 'JetBrains Mono', 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --nn-sans: -apple-system, 'Segoe UI', Roboto, sans-serif;

  background: var(--nn-bg);
  padding: 20px 16px 40px;
  border-radius: 8px;
  font-family: var(--nn-sans);
  box-sizing: border-box;
}
.nn-stammtisch * { box-sizing: border-box; }

.nn-header { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; margin-bottom: 18px; flex-wrap: wrap; }
.nn-eyebrow { font-family: var(--nn-mono); font-size: 12px; color: var(--nn-orange); margin: 0 0 4px; }
.nn-h1 { font-family: var(--nn-mono); font-size: 26px; font-weight: 700; color: var(--nn-black); margin: 0; text-transform: uppercase; }
.nn-tagline { color: var(--nn-gray); font-size: 13px; margin: 6px 0 0; font-family: var(--nn-mono); }.nn-contact-link, .nn-admin-link { background: none; border: none; color: var(--nn-blue); font-size: 13px; font-weight: 600; padding: 0; cursor: pointer; text-decoration: underline; }

.nn-viewbtn, .nn-chip { border: 1px solid var(--nn-border); background: #F5F4F0; color: var(--nn-navy); border-radius: 3px; padding: 6px 13px; font-size: 13.5px; font-family: var(--nn-mono); white-space: nowrap; cursor: pointer; }
.nn-viewbtn.active, .nn-chip.active { background: var(--nn-blue); border-color: var(--nn-blue); color: #F5F4F0; }
.nn-scrollrow { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px; margin-bottom: 10px; }

.nn-filterblock { display: flex; flex-direction: column; gap: 10px; background: #DEDDD7; border: 1px solid var(--nn-border); border-radius: 6px; padding: 12px; margin-bottom: 18px; }
.nn-search { width: 100%; background: #F5F4F0; border: 1px solid var(--nn-border); border-radius: 3px; padding: 9px 12px; font-size: 15px; color: var(--nn-navy); }

.nn-map { height: 380px; border-radius: 6px; overflow: hidden; border: 1px solid var(--nn-border); background: #DDE1EA; margin-bottom: 8px; }
.nn-map-note { font-size: 12.5px; color: var(--nn-gray); margin: 0 2px 18px; }

.nn-list { display: flex; flex-direction: column; gap: 10px; }
.nn-card { background: #FFFFFF; border: 1px solid #D6D5D0; border-radius: 4px; padding: 14px 16px; }
.nn-card-name { font-family: var(--nn-sans); font-weight: 700; font-size: 17px; color: var(--nn-black); margin: 0; }
.nn-card-meta { display: flex; align-items: center; gap: 4px; color: var(--nn-gray); font-size: 12.5px; margin-top: 3px; }
.nn-tagrow { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; }
.nn-tag-type { font-size: 11.5px; font-family: var(--nn-mono); background: var(--nn-orange); color: #F5F4F0; border-radius: 3px; padding: 3px 9px; }
.nn-tag-price { font-size: 11.5px; font-family: var(--nn-mono); background: var(--nn-yellow); color: var(--nn-navy); border-radius: 3px; padding: 3px 9px; font-weight: 700; }
.nn-notes { font-size: 14px; color: #3C4454; margin: 0 0 8px; line-height: 1.5; }
.nn-mapslink { font-size: 13px; color: var(--nn-blue); text-decoration: none; font-weight: 600; }

.nn-empty { background: #FFFFFF; border: 1px dashed #B7BDC9; border-radius: 6px; padding: 32px 20px; text-align: center; color: var(--nn-gray); }

.nn-fab { position: fixed; bottom: 20px; right: 16px; width: 46px; height: 46px; border-radius: 50%; background: var(--nn-blue); color: #F5F4F0; border: none; display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 4px 14px rgba(0,0,0,0.25); z-index: 40; font-size: 18px; }

.nn-overlay { position: fixed; inset: 0; background: rgba(10,14,26,0.6); display: flex; align-items: flex-end; justify-content: center; z-index: 50; }
.nn-sheet { background: var(--nn-blue); width: 100%; max-width: 480px; max-height: 88vh; overflow-y: auto; border-radius: 10px 10px 0 0; padding: 20px; }
.nn-sheet h2 { font-family: var(--nn-mono); color: #E9E8E5; margin: 0 0 16px; text-transform: uppercase; }
.nn-sheet label { display: block; font-size: 12px; text-transform: uppercase; color: #C7D3F5; margin-bottom: 5px; font-weight: 600; }
.nn-sheet input, .nn-sheet textarea { width: 100%; background: #F5F4F0; border: 1px solid #C7CCD6; border-radius: 3px; padding: 10px 12px; font-size: 15px; color: var(--nn-navy); margin-bottom: 14px; font-family: var(--nn-sans); }
.nn-sheet-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 6px; }
.nn-btn-primary { background: var(--nn-yellow); color: var(--nn-navy); border: none; border-radius: 3px; padding: 11px 18px; font-family: var(--nn-mono); text-transform: uppercase; font-size: 14px; cursor: pointer; font-weight: 700; }
.nn-btn-secondary { background: transparent; color: #E9E8E5; border: 1px solid #5B7BEA; border-radius: 3px; padding: 11px 18px; font-family: var(--nn-mono); text-transform: uppercase; font-size: 14px; cursor: pointer; }
