@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700&display=swap');

:root{
  --card-width: 197.97px;
  --card-height: 280px;
  --grid-gap: 24px;
  --wrapper-padding: 12px;
  --wrapper-radius: 16px;
  --wrapper-shadow: 0 4px 12px rgba(0,0,0,0.10);
  --wrapper-shadow-hover: 0 8px 20px rgba(0,0,0,0.15);
  --primary-color: #FF6B6B;
  --accent-color: #4ECDC4;
  --bg-start: #FFEEEE;
  --bg-end: #EEFFFA;
  --text-color: #333;
  --images-folder: '/static/Karten';
  --image-format: '.png';
}

html, body{
  margin:0; padding:0; min-height:100vh;
  background: linear-gradient(135deg, var(--bg-start), var(--bg-end));
  font-family: 'Nunito', sans-serif;
  color: var(--text-color);
}

#visitor-counter{
  position: fixed; top: 16px; left: 16px;
  background: rgba(255,255,255,0.85);
  padding: .5em 1em;
  border-radius: 12px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  font-weight: 600;
  z-index: 1000;
}

.container{ padding:24px; box-sizing:border-box; }
h1{
  margin: 0 0 24px;
  font-size: 2.2rem;
  font-weight: 700;
  color: var(--primary-color);
  text-align: center;
}

/* Controls */
#controls, .controls-row{
  display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin-bottom:24px;
}
#controls input{
  padding:.6em 1em; border:none; border-radius:12px; background:#fff;
  box-shadow: 0 2px 6px rgba(0,0,0,.08);
  transition: transform .3s ease, box-shadow .3s ease;
}
#controls input:focus{ outline:none; transform:translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,.15); }

.dropdown{ position:relative; display:inline-block; }
.dropdown-button{
  padding:.6em 1.2em; border:none; border-radius:25px; background:#fff;
  box-shadow: 0 4px 8px rgba(0,0,0,.08);
  cursor:pointer; transition: all .3s ease; font-family: inherit;
}
.dropdown-button:hover, .dropdown-button:focus{
  background:#f9f9f9; box-shadow: 0 6px 12px rgba(0,0,0,.15); outline:none;
}
.dropdown-content{
  display:none; position:absolute; top:calc(100% + 8px); left:0;
  background:#fff; border-radius:15px; box-shadow: 0 8px 16px rgba(0,0,0,.2);
  overflow:hidden; min-width: 180px; z-index:10;
}
.dropdown.open .dropdown-content{ display:block; }
.dropdown-content a{
  display:block; padding:.8em 1.2em; color:#333; text-decoration:none;
  transition: background .25s ease, color .25s ease;
}
.dropdown-content a:hover{ background: var(--accent-color); color:#fff; }

#card-count, #deck-card-count{
  font-weight:600; color:var(--accent-color); align-self:center;
}

/* Grid + smooth transition */
.grid{
  display:grid; grid-template-columns: repeat(auto-fill, var(--card-width));
  gap: var(--grid-gap); justify-content:center;
  transition: opacity .3s ease; opacity:1;
}

/* Card */
.card-wrapper{
  background:#fff; border-radius: var(--wrapper-radius);
  box-shadow: var(--wrapper-shadow); overflow:hidden; text-align:center;
  opacity:0; transform: translateY(20px);
  transition: opacity .3s ease, transform .3s ease, box-shadow .3s ease;
  position: relative; 
}
.card-wrapper.visible{ opacity:1; transform: translateY(0); }
.card-wrapper:hover{ transform: translateY(-8px) scale(1.02); box-shadow: var(--wrapper-shadow-hover); }

.card-img{
  width:100%; height: var(--card-height); display:flex; align-items:center; justify-content:center;
  background: radial-gradient(circle at top left, rgba(255,255,255,0.8), rgba(255,255,255,0.6));
}
.card-img img{ max-width:100%; max-height:100%; object-fit:contain; display:block; }
.card-qty {
  position: absolute;
  top: 8px;
  right: 8px;         /* was: left: 8px; */
  background: var(--accent-color);
  color: #fff;
  font-weight: 700;
  font-size: 0.9rem;
  line-height: 1;
  padding: 0.35em 0.6em;
  border-radius: 999px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
  pointer-events: none;
  transform: translateY(-6px);
  opacity: 0;
  transition: opacity .25s ease, transform .25s ease;
}
.card-wrapper.visible .card-qty {
  opacity: 1;
  transform: translateY(0);
}

.info{ padding:12px; text-align:left; }
.info div:first-child strong{ color: var(--primary-color); font-size:1.1em; }
.info div:nth-child(n+2){ color:#666; font-size: .9em; }

.btn {
  border: none;
  border-radius: 12px;
  padding: .6em 1.1em;
  cursor: pointer;
  font-family: inherit;
  box-shadow: 0 2px 6px rgba(0,0,0,.08);
  transition: transform .2s ease, box-shadow .2s ease, opacity .2s ease;
}
.btn:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,.12); }
.btn:disabled { opacity: .6; cursor: not-allowed; }
.btn.primary { background: var(--accent-color); color: #fff; }
.btn.secondary { background: #fff; color: var(--text-color); }

.controls-row { display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin-bottom:24px; }

/* Editor 2-column layout */
.editor-layout {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 24px;
}
@media (max-width: 900px){
  .editor-layout { grid-template-columns: 1fr; }
}

#deck-panel {
  position: sticky;   /* NEU */
  top: 48px;          /* NEU: Abstand zum Viewport oben */
  background:#fff; border-radius:16px; box-shadow: var(--wrapper-shadow);
  padding: 16px; height: fit-content;
}

.deck-actions {
  display:flex; gap:8px; flex-wrap:wrap; margin-top:12px; 
  align-items: center;   /* NEU: zentrierte Vertikal-Ausrichtung */
}
.inline-count {
  margin-left: 6px;         /* NEU */
  font-weight: 700;         /* NEU */
  color: var(--accent-color); /* NEU */
}
#deck-panel h2 { margin-top: 0; color: var(--primary-color); }
#deck-list { display:flex; flex-direction: column; gap: 8px; max-height: 60vh; overflow: auto; }

.deck-row {
  display:grid; grid-template-columns: 1fr auto auto auto; align-items:center;
  gap:8px; padding:8px; border-radius:12px; background:#fafafa;
}
.deck-row .title { font-weight:600; }
.deck-row .qty { font-variant-numeric: tabular-nums; }
.deck-row .row-btn { width:32px; height:32px; border-radius:10px; }
.deck-actions { display:flex; gap:8px; flex-wrap:wrap; margin-top:12px; }
#player-name {
  flex:1; padding:.6em 1em; border:none; border-radius:12px; background:#fff;
  box-shadow: 0 2px 6px rgba(0,0,0,.08);
}
.msg { margin-top: 8px; font-size: .9em; color:#666; }

/* Quantity badge (reused) top-right on card tiles */
.card-wrapper { position: relative; }
.card-qty {
  position: absolute; top: 8px; right: 8px;
  background: var(--accent-color); color:#fff; font-weight:700; font-size:.9rem; line-height:1;
  padding:.35em .6em; border-radius:999px; box-shadow: 0 2px 6px rgba(0,0,0,.15);
  pointer-events:none; transform: translateY(-6px); opacity:0; transition: opacity .25s ease, transform .25s ease;
}
.card-wrapper.visible .card-qty { opacity:1; transform: translateY(0); }

/* Vote controls (Decks page) */
#vote-controls { display:flex; gap:8px; align-items:center; }
#vote-stats { font-weight:600; color:#333; }
.btn.small { padding:.35em .6em; border-radius:10px; }
.btn.active {
  background: var(--accent-color);
  color: #fff;
}
.btn.nav-accent {
  background: var(--accent-color);
  color: #ffffff;
  
}
.btn.nav-accent:hover {
  background:#008B8B;
  color: #ffffff;
}
a.btn, a.btn:link, a.btn:visited, a.btn:hover, a.btn:focus {
  text-decoration: none;
}
/* Separator inside dropdown menu */
.dropdown-separator {
  height: 1px;
  background: #000;   /* solid black as requested */
  margin: 6px 0;
}
/* Editor-only layout stabilization */
.page-editor .grid .card-wrapper {
  display: flex;
  flex-direction: column;
}
.page-editor .grid .card-img {
  flex: 0 0 var(--card-height); /* fixed image area */
}
.page-editor .grid .info {
  flex: 0 0 auto;
  min-height: 110px;  /* keep text area stable; adjust if you need */
}

/* Ensure badge never affects layout (already absolute, but just in case) */
.card-qty {
  position: absolute;
  top: 8px;
  right: 8px;
  pointer-events: none;
}
