/* ══════════════════════════════
   MODAL
══════════════════════════════ */
.modal-overlay{
  display:none;position:fixed;inset:0;
  background:rgba(0,0,0,0.85);backdrop-filter:blur(10px);
  z-index:200;align-items:center;justify-content:center;padding:1rem;
}
.modal-overlay.open{display:flex;}
.modal{
  background:linear-gradient(145deg,var(--surface),var(--bg2));
  border:1px solid var(--border2);border-radius:16px;
  width:100%;max-width:740px;max-height:90vh;overflow-y:auto;
  display:flex;flex-direction:column;
  box-shadow:0 40px 80px rgba(0,0,0,0.7),var(--glow);
  position:relative;
}
.modal::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent);}
@media(min-width:700px){.modal-inner{display:grid;grid-template-columns:230px 1fr;}}
.modal-img-side{
  background:var(--surface2);display:flex;flex-direction:column;
  align-items:center;padding:1.5rem 1rem;gap:0.75rem;border-right:1px solid var(--border);
}
.modal-img-side img{width:100%;max-width:195px;border-radius:10px;box-shadow:0 12px 40px rgba(0,0,0,0.6);}
.modal-img-placeholder{
  width:100%;max-width:195px;aspect-ratio:5/7;
  background:radial-gradient(ellipse at center,var(--surface3),var(--bg2));
  border-radius:10px;display:flex;align-items:center;justify-content:center;
  font-size:3rem;color:var(--text3);
}
.modal-detail{padding:1.5rem;flex:1;}
.modal-title{font-family:'Cinzel',serif;font-size:1.2rem;font-weight:700;margin-bottom:0.2rem;color:var(--text);}
.modal-set{color:var(--text2);font-size:0.88rem;margin-bottom:1.2rem;font-style:italic;}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:0.65rem;margin-bottom:1.2rem;}
.detail-item label{display:block;font-family:'Cinzel',serif;font-size:0.58rem;letter-spacing:0.12em;color:var(--text3);margin-bottom:0.18rem;}
.detail-item .val{font-size:0.92rem;color:var(--text);}
.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid var(--border);}
.modal-close{
  background:transparent;border:1px solid var(--border);color:var(--text2);
  border-radius:6px;width:32px;height:32px;cursor:pointer;font-size:1rem;
  transition:all 0.15s;display:flex;align-items:center;justify-content:center;
}
.modal-close:hover{border-color:var(--red);color:var(--red);}

/* Add to deck section in modal */
.add-to-deck-section{
  background:var(--surface2);border:1px solid var(--border);
  border-radius:8px;padding:1rem;margin-top:0.5rem;
}
.add-to-deck-section h4{
  font-family:'Cinzel',serif;font-size:0.68rem;letter-spacing:0.12em;color:var(--gold);
  margin-bottom:0.75rem;
}
.add-deck-row{display:flex;gap:0.5rem;flex-wrap:wrap;}
.add-deck-row select,.add-deck-row input{
  background:var(--surface);border:1px solid var(--border);border-radius:6px;
  color:var(--text);font-family:'EB Garamond',serif;font-size:0.9rem;
  padding:0.45rem 0.65rem;outline:none;flex:1;min-width:100px;transition:border-color 0.2s;
}
.add-deck-row select:focus,.add-deck-row input:focus{border-color:var(--gold);}
.add-deck-submit{
  background:linear-gradient(135deg,var(--gold),var(--gold-dim));
  color:#0a0800;border:none;border-radius:6px;
  font-family:'Cinzel',serif;font-size:0.7rem;letter-spacing:0.08em;font-weight:700;
  padding:0.45rem 1rem;cursor:pointer;white-space:nowrap;transition:all 0.2s;flex-shrink:0;
}
.add-deck-submit:hover{opacity:0.9;}

/* Edit form */
.edit-form{display:flex;flex-direction:column;gap:0.65rem;margin-top:0.75rem;}
.edit-form input,.edit-form select{
  background:var(--surface2);border:1px solid var(--border);border-radius:7px;
  color:var(--text);font-family:'EB Garamond',serif;font-size:0.95rem;
  padding:0.5rem 0.75rem;outline:none;width:100%;transition:all 0.2s;
}
.edit-form input:focus,.edit-form select:focus{border-color:var(--gold);}
.edit-form label{font-family:'Cinzel',serif;font-size:0.6rem;letter-spacing:0.1em;color:var(--text3);display:block;margin-bottom:0.18rem;}
.btn{border:none;border-radius:6px;cursor:pointer;font-family:'Cinzel',serif;font-size:0.7rem;letter-spacing:0.08em;padding:0.5rem 1.1rem;transition:all 0.2s;font-weight:700;}
.btn-primary{background:linear-gradient(135deg,var(--gold),var(--gold-dim));color:#0a0800;box-shadow:0 3px 12px rgba(201,168,76,0.25);}
.btn-danger{background:linear-gradient(135deg,#c14a4a,#8a2a2a);color:#fff;}
.btn:hover{transform:translateY(-1px);}
.btn-row{display:flex;gap:0.5rem;margin-top:0.75rem;}

/* ── SMALL MODAL (deck create/edit) ── */
.small-modal{max-width:440px;}
.small-modal .modal-detail{padding:1.5rem;}
.form-field{margin-bottom:0.85rem;}
.form-field label{font-family:'Cinzel',serif;font-size:0.62rem;letter-spacing:0.1em;color:var(--text3);display:block;margin-bottom:0.3rem;}
.form-field input,.form-field select,.form-field textarea{
  width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:7px;
  color:var(--text);font-family:'EB Garamond',serif;font-size:1rem;
  padding:0.6rem 0.9rem;outline:none;transition:all 0.2s;resize:none;
}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,168,76,0.08);}

/* ── TOAST ── */
.toast{
  position:fixed;bottom:1.5rem;right:1.5rem;
  background:linear-gradient(135deg,var(--surface2),var(--surface));
  border:1px solid var(--gold-dim);color:var(--text);
  padding:0.75rem 1.25rem;border-radius:10px;font-size:0.9rem;
  z-index:400;opacity:0;transform:translateY(12px) scale(0.96);
  transition:all 0.3s cubic-bezier(.4,0,.2,1);pointer-events:none;
  box-shadow:0 8px 30px rgba(0,0,0,0.4);
  max-width:320px;
}
.toast.show{opacity:1;transform:translateY(0) scale(1);}

::-webkit-scrollbar{width:6px;height:6px;}
::-webkit-scrollbar-track{background:var(--bg);}
::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px;}
::-webkit-scrollbar-thumb:hover{background:var(--text3);}

details summary{outline:none;}

/* ── VARIANTEN-TABELLE im Karten-Modal (mehrere Varianten einer Karte) ── */
.variants-summary{
  display:flex;gap:1rem;flex-wrap:wrap;
  padding:0.7rem 0.9rem;background:var(--surface2);
  border-radius:8px;margin-bottom:0.8rem;
  font-size:0.82rem;color:var(--text2);
}
.variants-summary strong{color:var(--text);}
.variants-list{
  display:flex;flex-direction:column;gap:0.35rem;
  margin-bottom:1.2rem;
  max-height:300px;overflow-y:auto;
  padding-right:0.3rem;
}
.variant-row{
  display:flex;align-items:center;gap:0.6rem;
  padding:0.55rem 0.7rem;
  background:var(--surface2);border:1px solid var(--border);
  border-radius:6px;font-size:0.85rem;
}
.variant-row:hover{border-color:var(--gold-dim);}
.variant-set{flex:1;min-width:0;}
.variant-set strong{color:var(--text);font-size:0.9rem;display:block;}
.variant-meta{color:var(--text3);font-size:0.72rem;display:block;margin-top:0.1rem;}
.variant-qty{color:var(--text2);font-weight:600;min-width:40px;text-align:right;}
.variant-price{color:var(--text2);min-width:80px;text-align:right;font-size:0.78rem;}

/* ── ADD CARDS TO DECK MODAL ── */
.add-cards-meta{
  display:flex;justify-content:space-between;align-items:center;
  margin:0.5rem 0;font-size:0.85rem;color:var(--text2);
}
.btn-link{
  background:transparent;border:none;color:var(--gold);
  cursor:pointer;font-size:0.85rem;padding:0;
  text-decoration:underline;text-underline-offset:2px;
}
.btn-link:hover{color:var(--text);}

.add-cards-list{
  max-height:50vh;overflow-y:auto;
  border:1px solid var(--border);border-radius:8px;
  background:var(--surface2);padding:0.4rem;
  margin-bottom:1rem;
}
.add-card-row{
  display:flex;align-items:center;gap:0.7rem;
  padding:0.45rem 0.6rem;border-radius:6px;
  cursor:pointer;transition:background 0.12s;
}
.add-card-row:hover{background:var(--surface3);}
.add-card-row.selected{background:rgba(201,168,76,0.12);box-shadow:inset 0 0 0 1px var(--gold-dim);}
.add-card-row input[type=checkbox]{
  width:16px;height:16px;accent-color:var(--gold);cursor:pointer;flex-shrink:0;
}
.add-card-row img,.add-card-noimg{
  width:34px;height:48px;object-fit:cover;border-radius:3px;
  background:var(--bg2);flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
}
.add-card-info{flex:1;min-width:0;}
.add-card-name{
  font-size:0.92rem;color:var(--text);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.add-card-meta{font-size:0.72rem;color:var(--text3);}

/* ── PROGRESS BAR (im Migrations-Modal) ── */
.progress-track{
  width:100%;height:14px;
  background:var(--surface2);border:1px solid var(--border);
  border-radius:8px;overflow:hidden;margin-top:0.5rem;
}
.progress-fill{
  height:100%;
  background:linear-gradient(90deg,var(--gold-dim),var(--gold));
  transition:width 0.25s ease-out;
}

/* ── BUTTON LADE-ZUSTAND ── */
.btn.is-busy,button.is-busy{
  opacity:0.7;cursor:wait;
}
.btn-spinner{
  display:inline-block;width:14px;height:14px;
  border:2px solid currentColor;
  border-right-color:transparent;
  border-radius:50%;
  animation:btn-spin 0.7s linear infinite;
  margin-right:0.45rem;vertical-align:-2px;
}
@keyframes btn-spin{to{transform:rotate(360deg);}}

/* ── TOAST-VARIANTEN (success / error / info) ── */
/* Default-Toast bleibt wie er ist (gold-akzentuiert), die Varianten unterscheiden sich nur in Border + Icon-Farbe */
.toast.error{border-color:var(--red);}
.toast.error::before{
  content:'⚠';
  color:var(--red);font-size:1rem;font-weight:600;
  margin-right:0.5rem;vertical-align:-1px;
}
.toast.success::before{
  content:'✓';
  color:var(--green);font-size:1rem;font-weight:600;
  margin-right:0.5rem;vertical-align:-1px;
}
.toast.info::before{
  content:'ℹ';
  color:var(--teal);font-size:1rem;font-weight:600;
  margin-right:0.5rem;vertical-align:-1px;
}

/* ══════════════════════════════
   MOBILE-OPTIMIERUNG
══════════════════════════════ */
@media(max-width:768px){
  /* Modal-Overlay: weniger Padding, damit Modal mehr Platz hat */
  .modal-overlay{padding:0.5rem;}

  /* Modal selbst: voller Bildschirm minus minimaler Rand */
  .modal{
    max-height:95vh;
    border-radius:12px;
  }

  /* Karten-Modal: Bild oben, kompakter */
  .modal-img-side{
    padding:1rem;
    border-right:none;
    border-bottom:1px solid var(--border);
  }
  .modal-img-side img,.modal-img-placeholder{
    max-width:140px;
  }

  /* Detail-Inhalt: weniger Padding, damit kein H-Scroll */
  .modal-detail{padding:1rem;}
  .modal-title{font-size:1.05rem;}
  .modal-set{font-size:0.8rem;margin-bottom:0.8rem;}

  /* Detail-Grid: zwei Spalten sind OK auf Mobile, nur enger */
  .detail-grid{gap:0.4rem;}

  /* Add-to-deck-Section: Eingaben untereinander statt Reihe */
  .add-deck-row{flex-direction:column;align-items:stretch;}
  .add-deck-row select,.add-deck-row input{width:100%;}
  .add-deck-row input[type=number]{max-width:100% !important;}

  /* Variantentabelle: kleinere Schrift, weniger Padding */
  .variant-row{padding:0.4rem 0.5rem;font-size:0.78rem;gap:0.4rem;}
  .variant-set strong{font-size:0.82rem;}
  .variant-meta{font-size:0.65rem;}
  .variants-summary{padding:0.55rem 0.7rem;font-size:0.78rem;gap:0.6rem;}

  /* Bottom-Margin im Modal-Detail, damit Inhalt nicht hinter Bottom-Nav verschwindet */
  .modal-detail{padding-bottom:1.5rem;}
}

/* Settings-Hinweistext */
.settings-hint{
  font-size:0.75rem;color:var(--text3);
  margin-top:0.3rem;font-style:italic;
}

/* ── MOBILE-SCHLIESSEN-BUTTON UNTEN (sticky) ── */
.modal-footer-mobile{display:none;}

@media(max-width:768px){
  /* Größeres X oben — bessere Touch-Treffsicherheit (44×44 ist iOS-Standard) */
  .modal-close{
    width:42px;height:42px;font-size:1.1rem;
  }

  /* Sticky-Schließen-Button am Modal-Boden */
  .modal-footer-mobile{
    display:block;position:sticky;bottom:0;
    background:linear-gradient(to top,var(--bg2) 60%,transparent);
    padding:0.8rem 1rem 1rem 1rem;
    margin-top:-0.5rem; /* leichte Überlappung mit dem Inhalt darüber */
    z-index:1;
  }
  .modal-close-bottom{
    width:100%;
    background:var(--surface3);border:1px solid var(--border2);
    color:var(--text);
    padding:0.85rem;font-size:0.95rem;
    font-family:'Cinzel',serif;letter-spacing:0.1em;
    border-radius:8px;
  }
  .modal-close-bottom:hover{border-color:var(--gold-dim);}
}

/* ══════════════════════════════
   MOVE-PICKER MODAL (Kategorien-Wähler)
══════════════════════════════ */
.move-picker-list{
  display:flex;flex-direction:column;gap:0.3rem;
  max-height:50vh;overflow-y:auto;
  margin-bottom:0.4rem;
}
.move-picker-row{
  display:flex;align-items:center;gap:0.7rem;
  padding:0.7rem 0.9rem;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:6px;
  cursor:pointer;
  text-align:left;
  font-family:inherit;font-size:0.92rem;
  color:var(--text);
  transition:all 0.12s;
}
.move-picker-row:hover:not(:disabled){
  background:rgba(201,168,76,0.1);
  border-color:var(--gold-dim);
  transform:translateX(2px);
}
.move-picker-row:disabled,
.move-picker-row.current{
  opacity:0.5;
  cursor:not-allowed;
  background:transparent;
}
.move-picker-row.current::after{
  content:'(aktuell)';
  font-size:0.7rem;
  color:var(--text3);
  font-style:italic;
  margin-left:auto;
}
.mp-arrow{
  color:var(--gold);
  font-weight:700;
  flex-shrink:0;
  font-size:1.1rem;
}
.mp-name{
  flex:1;
  word-break:break-word;
}
.mp-count{
  background:rgba(201,168,76,0.12);
  color:var(--gold);
  font-size:0.78rem;
  padding:0.2rem 0.55rem;
  border-radius:10px;
  font-weight:600;
  flex-shrink:0;
}

/* Deck-Aktionen-Section im Karten-Modal (statt "Zu Deck hinzufügen") */
.deck-actions-section{
  border-color:var(--gold-dim);
  background:rgba(201,168,76,0.04);
}

/* ══════════════════════════════
   KARTEN-MODAL · DECK-KONTEXT MARKER
   Zeigt klar getrennt was zur Sammlung und was zum Deck gehört
══════════════════════════════ */

/* Badge unter dem Kartennamen: zeigt prominent wie viele im aktiven Deck sind */
.modal-deck-badge{
  display:inline-block;
  background:rgba(201,168,76,0.15);
  border:1px solid var(--gold);
  color:var(--gold);
  font-family:'Cinzel',serif;
  font-size:0.85rem;font-weight:600;letter-spacing:0.05em;
  padding:0.3rem 0.7rem;border-radius:6px;
  margin:0.5rem 0;
}

/* Zwei-Zeilen-Summary über der Variantentabelle (Deck + Sammlung getrennt) */
.deck-context-summary{
  display:flex !important;flex-direction:column;gap:0.4rem;
  align-items:flex-start !important;
}
.deck-context-summary .summary-row{
  display:flex;gap:0.7rem;flex-wrap:wrap;align-items:center;
}
.deck-context-summary .summary-row.primary{
  color:var(--gold);
  font-size:0.95rem;
}
.deck-context-summary .summary-row.secondary{
  color:var(--text2);
  font-size:0.85rem;
  border-top:1px dashed var(--border);
  padding-top:0.4rem;width:100%;
}
.deck-context-summary .summary-row strong{font-weight:600;}

/* Variantentabelle: pro Zeile zeigen ob im Deck */
.variant-row.is-in-deck{
  border-left:3px solid var(--gold);
  background:rgba(201,168,76,0.04);
}
.variant-in-deck{
  background:rgba(201,168,76,0.15);
  color:var(--gold);
  border:1px solid var(--gold-dim);
  border-radius:5px;
  font-size:0.72rem;
  font-weight:600;
  padding:0.18rem 0.5rem;
  white-space:nowrap;
}
.variant-not-in-deck{
  color:var(--text3);
  font-size:0.72rem;
  font-style:italic;
  padding:0.18rem 0.5rem;
  white-space:nowrap;
}

/* "+ Deck"-Button in der Variantentabelle (Sammlung) */
.deck-add-btn{
  background:rgba(201,168,76,0.1);
  border:1px solid var(--gold-dim) !important;
  color:var(--gold) !important;
  font-family:'Cinzel',serif;
  font-size:0.7rem;letter-spacing:0.05em;
  padding:0.28rem 0.55rem !important;
  border-radius:5px;
  white-space:nowrap;
  cursor:pointer;
  transition:all 0.15s;
}
.deck-add-btn:hover{
  background:var(--gold);
  color:#0a0800 !important;
  border-color:var(--gold) !important;
}

/* Hinweis-Zeile, die statt des alten "Add to Deck"-Blocks erscheint */
.add-to-deck-hint{
  margin:0.6rem 0;
  padding:0.5rem 0.8rem;
  background:rgba(201,168,76,0.04);
  border-left:2px solid var(--gold-dim);
  border-radius:4px;
}

/* −1 / +1 Buttons im Deck-Kontext der Variantentabelle */
.deck-minus-btn{
  background:rgba(224,82,82,0.08) !important;
  border:1px solid rgba(224,82,82,0.4) !important;
  color:var(--red) !important;
  font-family:'Cinzel',serif;
  font-size:0.78rem !important;font-weight:700 !important;
  padding:0.28rem 0.6rem !important;
  border-radius:5px;
  white-space:nowrap;
  cursor:pointer;
  transition:all 0.15s;
}
.deck-minus-btn:hover{
  background:var(--red) !important;
  color:#fff !important;
}
.deck-plus-btn{
  background:rgba(110,167,128,0.08) !important;
  border:1px solid rgba(110,167,128,0.4) !important;
  color:var(--green) !important;
  font-family:'Cinzel',serif;
  font-size:0.78rem !important;font-weight:700 !important;
  padding:0.28rem 0.6rem !important;
  border-radius:5px;
  white-space:nowrap;
  cursor:pointer;
  transition:all 0.15s;
}
.deck-plus-btn:hover{
  background:var(--green) !important;
  color:#fff !important;
}
