/* ================= RESET ================= */
*{margin:0;padding:0;box-sizing:border-box}

:root{
  --bg:#0b0b0b;
  --panel:#111;
  --panel2:#161616;
  --text:#fff;
  --muted:#bdbdbd;
  --line:rgba(255,255,255,.10);
  --radius:12px;
  --gap:8px;
  --pad:10px;


  --tag-h: 0;                 /* Hue (0-360) */
  --tag-s: 94%;                 /* Saturation */
  --tag-l: 36%;                 /* Lightness */
  --tag-alpha-min: 1.0;         /* Basis-Transparenz */
  --tag-alpha-max: .22;         /* Max-Transparenz (bei häufigen Tags) */

  --tag-border-alpha-min: .16;  /* Basis Border */
  --tag-border-alpha-max: .36;  /* Max Border */

  --tag-text: #fff;
  
    /* ===== FILTER BUTTON ===== */
  --filter-btn-bg: #910707;
  --filter-btn-border: #910707;
  --filter-btn-text: #fff;

  --filter-btn-bg-hover: #570808;
  --filter-btn-border-hover: #910707;

  --filter-btn-radius: 10px;
  --filter-btn-padding-y: 10px;
  --filter-btn-padding-x: 12px;

  /* ===== PAGINATION ===== */
  --page-btn-bg: #111;
  --page-btn-border: rgba(255,255,255,.12);
  --page-btn-text: #ffffff;

  --page-btn-bg-hover: #1a1a1a;
  --page-btn-border-hover: rgba(255,255,255,.18);

  --page-btn-bg-active: #202020;
  --page-btn-border-active: #202020;
  --page-btn-text-active: #ffffff;

  --page-btn-radius: 10px;
  --page-btn-padding-y: 8px;
  --page-btn-padding-x: 12px;
}
html,body{
  background:var(--bg);
  color:var(--text);
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
}

/* ================= HEADER ================= */
header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(17,17,17,.92);
  backdrop-filter: blur(10px);
  border-bottom:1px solid var(--line);
}

.header-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:12px 14px;
}

.site-title{
  font-size:18px;
  font-weight:900;
  letter-spacing:.2px;
}
.site-title a{
  color:#fff !important;
  text-decoration:none !important;
  -webkit-text-fill-color:#fff !important;
}

/* Burger */
.burger{
  width:44px;
  height:38px;
  border:1px solid var(--line);
  background:transparent;
  border-radius:10px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:6px;
  cursor:pointer;
}
.burger span{
  width:18px;
  height:2px;
  background:#fff;
  opacity:.9;
  border-radius:2px;
}

/* Nav Wrapper */
.nav-wrap{
  display:none;
  border-top:1px solid var(--line);
  background:var(--panel);
}
.nav-wrap.open{ display:block; }

.nav{
  display:grid;
  grid-template-columns:repeat(5, minmax(0,1fr));
  gap:10px;
  padding:12px 14px 14px;
}

.nav-item label{
  display:block;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.08em;
  opacity:.65;
  margin-bottom:6px;
}

.nav-item input,
.nav-item select{
  width:100%;
  background:var(--panel2);
  border:1px solid var(--line);
  color:#fff;
  padding:10px 10px;
  border-radius:10px;
  outline:none;
  font-size:14px;
}

.nav-item button{
  width:100%;
  background:var(--filter-btn-bg);
  border:1px solid var(--filter-btn-border);
  color:var(--filter-btn-text);
  padding:var(--filter-btn-padding-y) var(--filter-btn-padding-x);
  border-radius:var(--filter-btn-radius);
  font-weight:800;
  cursor:pointer;
  transition:background .15s ease, border-color .15s ease, transform .05s ease;
}

.nav-item button:hover{
  background:var(--filter-btn-bg-hover);
  border-color:var(--filter-btn-border-hover);
}

.nav-item button:active{
  transform:translateY(1px);
}

/* ================= MAIN LAYOUT ================= */
main{
  width:100%;
}

/* Anchor für ScrollToTop */
#rooms-top{height:1px}

/* Rooms Container: KOMPAKT */
#rooms{
  max-width:1900px;
  margin:0 auto;
  padding:var(--pad);
}

/* Grid statt „luftiger“ Layouts: kompakt + sauber */
.rooms-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(190px, 1fr));
  gap:var(--gap);
}

/* ================= ROOM CARD ================= */
.room{
  position:relative;
  background:#000;
  border-radius:var(--radius);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.08);
  transform:translateZ(0);
}

.profileLink{
  display:block;
  text-decoration:none;
  color:inherit;
}

/* Bild + Ratio */
.profileLink img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  display:block;
  opacity:.98;
  transition:opacity .15s ease;
}
.room:hover .profileLink img{ opacity:.92; }

/* Name Overlay unten */
.room-name{
  position:absolute;
  left:0; right:0; bottom:0;
  padding:8px 10px;
  font-size:13px;
  font-weight:800;
  color:#fff;
  background:linear-gradient(
    to top,
    rgba(0,0,0,.88),
    rgba(0,0,0,.35),
    transparent
  );
}

/* Badges oben links */
.status-badges{
  position:absolute;
  top:8px;
  left:8px;
  display:flex;
  gap:6px;
  z-index:5;
}

.badge{
  font-size:10px;
  padding:3px 7px;
  font-weight:900;
  letter-spacing:.02em;
  color:#fff;
  border-radius:999px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.12);
  text-transform:uppercase;
}

.badge.live{background:#c62828;border-color:rgba(255,255,255,.15)}
.badge.hd{background:#1565c0;border-color:rgba(255,255,255,.15)}
.badge.new{background:#2e7d32;border-color:rgba(255,255,255,.15)}
.badge.away{background:#6d4c41;border-color:rgba(255,255,255,.15)}
.badge.private{background:#4527a0;border-color:rgba(255,255,255,.15)}

/* Country oben rechts (Flag + Code) */
.country{
  position:absolute;
  top:8px;
  right:8px;
  z-index:5;
  display:flex;
  align-items:center;
  gap:6px;
  padding:4px 8px;
  background:rgba(0,0,0,.55);
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  font-size:11px;
  color:#eaeaea;
}
.country .flag{ font-size:14px; line-height:1; }

/* Meta (Viewer + online) unten links */
.meta{
  position:absolute;
  left:8px;
  bottom:34px;
  z-index:5;
  display:flex;
  align-items:center;
  gap:6px;
  padding:5px 9px;
  background:rgba(0,0,0,.55);
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  font-size:11px;
  color:#ddd;
}
.meta .icon{ font-size:12px; }

/* TAG CLOUD */
#tag-cloud{
  max-width:1900px;
  margin:0 auto;
  padding:0 var(--pad) 14px;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

#tag-cloud a{
  /* JS setzt --w: 0..1 */
  --w: .5;

  font-size:12px;
  padding:6px 10px;
  border-radius:999px;
  color:var(--tag-text);
  text-decoration:none;

  /*  Background + Border aus Variablen + --w */
  background: hsla(
    var(--tag-h),
    var(--tag-s),
    var(--tag-l),
    calc(var(--tag-alpha-min) + (var(--tag-alpha-max) - var(--tag-alpha-min)) * var(--w))
  );

  border:1px solid hsla(
    var(--tag-h),
    var(--tag-s),
    70%,
    calc(var(--tag-border-alpha-min) + (var(--tag-border-alpha-max) - var(--tag-border-alpha-min)) * var(--w))
  );
}

#tag-cloud a:hover{
  filter:brightness(1.08);
}

/* ================= PAGINATION ================= */
.pagination{
  max-width:1900px;
  margin:0 auto;
  padding:10px var(--pad) 22px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
}

.page-numbers{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  justify-content:center;
}

.page-btn{
  background:var(--page-btn-bg);
  border:1px solid var(--page-btn-border);
  color:var(--page-btn-text);
  padding:var(--page-btn-padding-y) var(--page-btn-padding-x);
  border-radius:var(--page-btn-radius);
  cursor:pointer;
  min-width:42px;
  transition:background .15s ease, border-color .15s ease, transform .05s ease;
}

.page-btn:hover{
  background:var(--page-btn-bg-hover);
  border-color:var(--page-btn-border-hover);
}

.page-btn:active{
  transform:translateY(1px);
}

.page-btn:disabled{
  opacity:.35;
  cursor:not-allowed;
  transform:none;
}

/* Active Page */
.page-number.active{
  background:var(--page-btn-bg-active);
  border-color:var(--page-btn-border-active);
  color:var(--page-btn-text-active);
  font-weight:900;
}

.page-dots{
  opacity:.6;
  display:flex;
  align-items:center;
  padding:0 6px;
}

/* ================= TEXT CONTENT ================= */
#Inhalt{
  max-width:1100px;
  margin:0 auto 40px;
  padding:0 16px;
  color:#ffffff;
  line-height:1.55;
}
#Inhalt h2{
  color:#fff;
  margin:24px 0 10px;
  font-size:18px;
}

#Inhalt h3{
  color:#fff;
  margin:24px 0 10px;
  font-size:16px;
}

#Inhalt p{
  font-size:13px;
}

/* Info Box */
.info-box{
  max-width:1100px;
  margin:0 auto 60px;
  padding:14px 16px;
  border:1px solid var(--line);
  border-radius:14px;
  background:rgba(255,255,255,.03);
  color:#d7d7d7;
  font-size:13px;
  line-height:1.5;
}

/* Footer */
footer{
  border-top:1px solid var(--line);
  background:#0e0e0e;
}
.footer-inner{
  max-width:1100px;
  margin:0 auto;
  padding:22px 16px;
  display:grid;
  gap:14px;
}
.footer-text{
  color:#bdbdbd;
  font-size:13px;
  line-height:1.5;
}
.footer-links{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.footer-links a{
  color:#7db7ff;
  text-decoration:none;
  font-size:13px;
}
.footer-links a:hover{ color:#fff; text-decoration:underline; }

/* ================= RESPONSIVE ================= */
@media (max-width:1100px){
  .nav{ grid-template-columns:repeat(2, minmax(0,1fr)); }
}

@media (max-width:700px){
  :root{ --gap:7px; --pad:8px; }
  .rooms-grid{ grid-template-columns:repeat(auto-fill, minmax(160px, 1fr)); }
}
