/*
 * TCG Keeper
 * Copyright (c) Mario Löser. Alle Rechte vorbehalten.
 * Dieses Skript und der gesamte Quellcode von TCG Keeper sind geistiges
 * Eigentum von Mario Löser und dürfen ohne ausdrückliche
 * Zustimmung nicht ohne diesen Hinweis weiterverwendet oder verbreitet
 * werden.
 */
/* Demo-Verwaltung, Demo-Einstieg und „Mein Konto“ (12.10.2026). */

/* Vom Rechteprofil abgeschaltete Boxen (box_order_item_attrs()) */
[data-demo-hidden]{ display:none !important; }

/* ---- Hinweisband für Demo-Benutzer / „Bearbeiten als …“ ---- */
.pc-demo-banner{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:0 auto; padding:9px 18px; font-size:13.5px;
  background:linear-gradient(90deg, var(--gold-soft), var(--accent-soft)); color:var(--ink); border-bottom:1px solid var(--line); }
.pc-demo-banner > span:nth-child(2){ flex:1 1 260px; }
.pc-demo-banner.is-impersonate{ background:linear-gradient(90deg, var(--danger-soft), var(--gold-soft)); }
.pc-demo-banner-icon{ font-size:18px; line-height:1; }
.pc-demo-banner-time{ font-family:var(--font-mono); font-size:12.5px; padding:2px 10px; border-radius:99px; background:var(--paper-raised); white-space:nowrap; }

/* ---- Zusätzliche Pillen ---- */
.pc-pill.is-ok{ background:var(--good-soft); color:var(--good); }
.pc-pill.is-warn{ background:var(--gold-soft); color:var(--gold); }
.pc-pill.is-danger{ background:var(--danger-soft); color:var(--danger); }
.pc-pill.is-muted{ background:var(--paper-sunken); color:var(--ink-faint); }

/* ---- Reiter (gleiches Aussehen wie das Projektlogbuch) ---- */
.dm-tabs{ display:flex; gap:4px; border-bottom:1px solid var(--line); margin:0 0 18px; overflow-x:auto; scrollbar-width:none; }
.dm-tabs::-webkit-scrollbar{ display:none; }
.dm-tab{ display:inline-flex; align-items:center; gap:7px; padding:10px 14px; border-radius:10px 10px 0 0; color:var(--ink-soft); text-decoration:none;
  border-bottom:2px solid transparent; white-space:nowrap; font-size:14px; }
.dm-tab:hover{ color:var(--accent); background:var(--paper-raised); }
.dm-tab.is-active{ color:var(--accent); border-bottom-color:var(--accent); background:var(--paper-raised); font-weight:600; }
.dm-tab-count{ font-family:var(--font-mono); font-size:11px; padding:2px 8px; border-radius:99px; background:var(--paper-sunken); color:var(--ink-soft); }
.dm-tab-count.is-hot{ background:var(--gold-soft); color:var(--gold); }

/* ---- Konto-Karten ---- */
.dm-accounts{ display:grid; grid-template-columns:repeat(auto-fill, minmax(320px, 1fr)); gap:14px; }
.dm-account{ border:1px solid var(--line); border-radius:14px; padding:14px; background:var(--paper-raised); display:flex; flex-direction:column; gap:10px; }
.dm-account.is-expired{ opacity:.7; }
.dm-account-head{ display:flex; gap:10px; align-items:flex-start; }
.dm-account-head .pc-avatar{ background:var(--gold-soft); color:var(--gold); }
.dm-account-title{ font-weight:700; overflow-wrap:anywhere; }
.dm-account-sub{ font-size:12px; color:var(--ink-faint); }
.dm-meta{ display:grid; grid-template-columns:auto 1fr; gap:3px 10px; font-size:12.5px; margin:0; }
.dm-meta dt{ color:var(--ink-faint); }
.dm-meta dd{ margin:0; overflow-wrap:anywhere; }
.dm-account details{ border-top:1px dashed var(--line); padding-top:8px; }
.dm-account summary{ cursor:pointer; font-size:13px; font-weight:600; color:var(--accent); }
.dm-inline{ display:flex; gap:6px; flex-wrap:wrap; align-items:center; margin:8px 0 0; }
.dm-inline .form-input, .dm-inline .form-select{ width:auto; min-width:0; flex:1 1 140px; }
.dm-stat-line{ display:flex; gap:10px; flex-wrap:wrap; font-size:12.5px; color:var(--ink-soft); }
.dm-stat-line span{ white-space:nowrap; }

/* ---- Einladungen ---- */
.dm-invite-result{ display:grid; grid-template-columns:minmax(180px, 240px) 1fr; gap:18px; align-items:start; }
@media (max-width:640px){ .dm-invite-result{ grid-template-columns:1fr; } }
.dm-qr{ background:#fff; border-radius:12px; padding:12px; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; }
.dm-qr svg, .dm-qr img, .dm-qr canvas{ width:100%; height:auto; max-width:220px; display:block; }
.dm-copy-row{ display:flex; gap:6px; align-items:stretch; margin-bottom:10px; }
.dm-copy-row .form-input, .dm-copy-row textarea{ flex:1 1 auto; font-family:var(--font-mono); font-size:12.5px; }
.dm-copy-row textarea{ min-height:120px; font-family:var(--font-base); font-size:13px; }
.dm-invite-list .data-table td{ vertical-align:top; }

/* ---- Rechteprofile ---- */
.dm-features{ display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:8px; }
.dm-feature{ display:flex; gap:10px; align-items:flex-start; padding:10px 12px; border:1px solid var(--line); border-radius:12px; background:var(--paper); cursor:pointer; }
.dm-feature input{ margin-top:3px; }
.dm-feature b{ display:block; font-size:13.5px; }
.dm-feature small{ display:block; font-size:12px; color:var(--ink-faint); line-height:1.4; }
.dm-feature.is-fixed{ cursor:default; opacity:.75; background:var(--paper-sunken); }
.dm-limits{ display:grid; grid-template-columns:repeat(auto-fill, minmax(200px, 1fr)); gap:10px 16px; }
.dm-tree{ list-style:none; margin:0; padding:0; font-size:13.5px; }
.dm-tree ul{ list-style:none; margin:2px 0 6px 22px; padding:0; border-left:1px dashed var(--line); }
.dm-tree li{ padding:2px 0 2px 8px; }
.dm-tree label{ display:inline-flex; gap:7px; align-items:center; cursor:pointer; }
.dm-tree .dm-fixed{ color:var(--ink-faint); }
.dm-tree-group > label{ font-weight:600; }
.dm-hint-chip{ display:inline-block; font-size:11px; padding:1px 7px; border-radius:99px; background:var(--paper-sunken); color:var(--ink-faint); margin-left:4px; }
.dm-columns{ display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); gap:18px; }
.dm-sticky-save{ position:sticky; bottom:0; z-index:5; background:var(--paper); border-top:1px solid var(--line); padding:10px 0; margin-top:14px; display:flex; gap:8px; flex-wrap:wrap; }
/* Klebende Speichern-Leiste oben (25.10.2026, Rechteprofile) — Aussehen wie .ma-savebar/.kz-savebar */
.pc-stickybar{
  position:sticky; top:72px; z-index:30; display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; margin:0 0 14px;
  padding:10px 14px; border-radius:12px; background:var(--paper-raised); border:1px solid var(--line); box-shadow:var(--shadow);
}

/* ---- Startbestände / Generator ---- */
.dm-preview{ border:1px solid var(--line); border-radius:12px; padding:12px 14px; background:var(--paper); }
.dm-preview ul{ margin:6px 0 0; padding-left:18px; font-size:13px; }
.dm-size-choice{ display:flex; gap:8px; flex-wrap:wrap; }
.dm-size-choice label{ display:inline-flex; gap:6px; align-items:center; padding:8px 12px; border:1px solid var(--line); border-radius:10px; cursor:pointer; background:var(--paper); }
.dm-size-choice input:checked + span{ font-weight:700; color:var(--accent); }

/* ---- Protokoll ---- */
.dm-log td{ font-size:12.5px; vertical-align:top; }
.dm-log td.mono, .dm-log .mono{ font-family:var(--font-mono); font-size:12px; }
.dm-log .dm-ua{ color:var(--ink-faint); font-size:11.5px; display:block; max-width:340px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dm-pager{ display:flex; gap:4px; flex-wrap:wrap; margin-top:12px; }
.dm-filter{ display:flex; gap:8px; flex-wrap:wrap; align-items:flex-end; margin-bottom:12px; }
.dm-filter .form-field{ margin:0; flex:1 1 150px; }

/* ---- Demo-Einstieg (demo.php) ---- */
.dm-landing{ max-width:640px; margin:30px auto; }
.dm-landing .card-box{ padding:26px; }
.dm-landing h1{ margin:6px 0 8px; font-size:26px; }
.dm-landing-text{ white-space:pre-line; color:var(--ink-soft); line-height:1.6; font-size:14.5px; }
.dm-landing-facts{ display:flex; gap:8px; flex-wrap:wrap; margin:14px 0 18px; }
.dm-landing .btn.primary{ font-size:16px; padding:12px 22px; }

/* ---- Mein Konto ---- */
.ac-danger{ border-color:var(--danger) !important; }
.ac-confirm{ display:flex; flex-direction:column; gap:8px; max-width:520px; }

/* ---- Druckansicht der Einladungskarte ---- */
.dm-print-card{ display:none; }
@media print{
  body.dm-printing *{ visibility:hidden; }
  body.dm-printing .dm-print-card, body.dm-printing .dm-print-card *{ visibility:visible; }
  body.dm-printing .dm-print-card{ display:block; position:absolute; left:0; top:0; width:100%; padding:24px; color:#000; background:#fff; }
  .dm-print-card .dm-qr{ border:none; max-width:260px; }
}

/* Umschaltbare Formularteile (Startbestand) — .form-field setzt sonst display */
[data-dm-start-part][hidden]{ display:none !important; }

/* Abweichungen je Demokonto: kompakte Liste */
.dm-ov{ border-top:none !important; padding-top:0 !important; margin:8px 0; }
.dm-ov > summary{ font-weight:600; font-size:13px; color:var(--ink-soft); }
.dm-ov-list{ display:grid; grid-template-columns:repeat(auto-fill, minmax(250px, 1fr)); gap:2px 16px; margin-top:6px; }
.dm-ov-row{ display:flex; align-items:center; justify-content:space-between; gap:8px; padding:3px 0; border-bottom:1px dashed var(--line); font-size:12.5px; }
.dm-ov-row .form-select, .dm-ov-row .form-input{ width:130px; min-height:32px; padding:4px 8px; font-size:12.5px; flex:0 0 auto; }

/* Demo-Benutzer: Bedienelemente fest gesperrter Bereiche ausblenden (Importe,
   Katalog bearbeiten, Verwaltung) — der Server sperrt sie unabhängig davon. */
body.pc-demo form:has(input[name="import_online"]),
body.pc-demo form:has(input[name="import_detail"]),
body.pc-demo form:has(input[name="import_set_id"]),
body.pc-demo form:has(input[name="import_card_id"]),
body.pc-demo form:has(input[name="reload_image"]),
body.pc-demo form:has(input[name="delete_image"]),
body.pc-demo a[href^="card_edit.php"], body.pc-demo a[href^="set_edit.php"], body.pc-demo a[href^="serie_edit.php"],
body.pc-demo a[href^="series_admin.php"], body.pc-demo a[href^="binder_import.php"], body.pc-demo a[href^="migrate_import.php"],
body.pc-demo a[href^="pocket_abgleich.php"], body.pc-demo a[href^="catalog_admin.php"], body.pc-demo a[href^="admin_users.php"],
body.pc-demo [data-lightbox-open="tcgdexCardScrim"], body.pc-demo [data-lightbox-open="tcgdexSetScrim"],
body.pc-demo [data-lightbox-open="tcgdexPocketSetScrim"], body.pc-demo #onlineImportForm{ display:none !important; }

/* Zugangslink & Passwort je Demokonto, Passwortformulare der Demo-Seite (Merkzettel „Demozugang“, 13.10.2026) */
/* Konto-Karten sind schmal: QR-Code oben, Link und Nachricht darunter in voller Breite */
.dm-access .dm-invite-result{ grid-template-columns:1fr; gap:12px; }
.dm-access .dm-invite-result .dm-qr{ max-width:200px; }
.dm-pw-admin{ margin-top:12px; padding-top:10px; border-top:1px dashed var(--line); }
.dm-pw-admin .pc-check{ font-size:12.5px; white-space:nowrap; }
.dm-pw-form{ margin-top:14px; }
.dm-pw-form .form-input.mono{ font-family:var(--font-mono); }
