/* Galerie (dd/gallery, dd/design-single). Nur Tokens des Themes, keine eigenen Farben. */
.dd-gal-tools { display: flex; flex-wrap: wrap; gap: var(--dd-space-3); justify-content: space-between; margin-bottom: var(--dd-space-6); }
.dd-gal-tools .dd-seg a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 var(--dd-space-5); border-radius: var(--dd-radius-pill); color: var(--dd-color-text-muted); font: 700 var(--dd-font-size-sm)/1 var(--dd-font-family-body); text-decoration: none; }
.dd-gal-tools .dd-seg a:hover { color: var(--dd-color-text-default); }
.dd-gal-tools .dd-seg a[aria-current='true'] { background: var(--dd-color-primary-default); color: var(--dd-color-text-on-primary); box-shadow: inset 0 -3px 0 rgba(0,0,0,.18); }
.dd-gal-grid { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--dd-space-5); grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
.dd-gal-grid > li { display: grid; }
.dd-gcard { text-decoration: none; }
/* höhere Spezifität als das Theme (.dd-tile .thumb): Block-Themes geben unsere Styles vor dem Theme-Bündel aus */
.dd-gal-grid .dd-gcard .thumb { aspect-ratio: 4 / 5; position: relative; display: block; }
.dd-gal-grid .dd-gcard .thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; display: block; }
.dd-gcard__name { font: 700 var(--dd-font-size-md)/1.25 var(--dd-font-family-display); }
.dd-gcard__meta { display: flex; justify-content: space-between; gap: 8px; color: var(--dd-color-text-muted); font-size: var(--dd-font-size-sm); }
.dd-gcard__nums { display: inline-flex; gap: 10px; white-space: nowrap; }
.dd-gcard__lic { position: absolute; top: 14px; left: 14px; }
.dd-gal-pages { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-top: var(--dd-space-8); }

.dd-dsingle { display: grid; gap: var(--dd-space-8); grid-template-columns: minmax(0, 1fr); padding-block: var(--dd-space-8); }
.dd-dsingle .dd-dsingle__stage { position: relative; width: 100%; height: auto; aspect-ratio: 4 / 5; max-height: 80vh; padding: 0; display: block; justify-self: stretch; }
@media (min-width: 900px) { .dd-dsingle { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); align-items: start; } .dd-dsingle > .dd-note { grid-column: 1 / -1; } .dd-dsingle .dd-dsingle__stage { position: sticky; top: calc(var(--dd-layout-header-height, 64px) + 16px); } }
.dd-dsingle .dd-dsingle__stage img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.dd-dsingle .dd-dsingle__stage canvas { position: absolute; inset: 0; width: 100% !important; height: 100% !important; display: block; touch-action: none; }
.dd-dsingle .dd-dsingle__3d { position: absolute; right: 14px; bottom: 14px; z-index: 1; }
.dd-dsingle__stage[data-state='loading']::after { content: ''; position: absolute; top: 50%; left: 50%; width: 36px; height: 36px; margin: -18px 0 0 -18px; border-radius: 50%; border: 4px solid var(--dd-color-primary-default); border-right-color: transparent; animation: dd-spin 0.8s linear infinite; }
@keyframes dd-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .dd-dsingle__stage[data-state='loading']::after { animation: none; } }
.dd-dsingle__info { display: grid; gap: var(--dd-space-4); align-content: start; }
.dd-dsingle__info .dd-h2 { overflow-wrap: anywhere; }
.dd-dsingle__by, .dd-dsingle__remix { margin: 0; color: var(--dd-color-text-muted); }
.dd-dsingle__desc p { margin: 0 0 .75em; }
.dd-dsingle__tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.dd-dsingle__actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.dd-like[aria-pressed='true'] { color: var(--dd-color-primary-default); }
.dd-like--static { display: inline-flex; gap: 6px; align-items: center; padding: 0 12px; color: var(--dd-color-text-muted); font-weight: 700; }
.dd-dsingle__facts { display: grid; grid-template-columns: auto 1fr; gap: 6px 18px; margin: 0; padding: var(--dd-space-5); border-radius: var(--dd-radius-md); background: var(--dd-color-bg-sunken); }
.dd-dsingle__facts dt { color: var(--dd-color-text-muted); font-size: var(--dd-font-size-sm); }
.dd-dsingle__facts dd { margin: 0; font-weight: 600; }
.dd-report summary { cursor: pointer; color: var(--dd-color-text-muted); font-size: var(--dd-font-size-sm); width: max-content; }
.dd-report__form { display: grid; gap: 8px; margin-top: 12px; max-width: 520px; }
.dd-report__form textarea.dd-input { min-height: 110px; padding-block: 12px; resize: vertical; }
.dd-check { display: flex; gap: 10px; align-items: flex-start; font-size: var(--dd-font-size-sm); }
.dd-check input { width: 20px; height: 20px; margin-top: 1px; accent-color: var(--dd-color-primary-default); flex: none; }
.dd-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.dd-report__msg:empty { display: none; }
.dd-dsingle__kids { margin-bottom: var(--dd-space-10); display: grid; gap: var(--dd-space-5); }

/* Konto „Meine Modelle“ */
.dd-my { display: grid; gap: var(--dd-space-4); margin-bottom: var(--dd-space-8); }
.dd-my__list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--dd-space-4); }
.dd-my__item { display: grid; grid-template-columns: 96px 1fr; gap: var(--dd-space-4); align-items: start; padding: var(--dd-space-4); }
.dd-my .dd-my__item > img { width: 96px; height: 120px; object-fit: contain; border-radius: var(--dd-radius-md); background: var(--dd-color-bg-sunken); }
.dd-my__body { display: grid; gap: 6px; min-width: 0; }
.dd-my__body p { margin: 0; }
.dd-my__actions { display: flex; flex-wrap: wrap; gap: 6px; }
.dd-my__actions form { display: contents; }
.dd-my__edit summary { cursor: pointer; font-size: var(--dd-font-size-sm); color: var(--dd-color-text-muted); }
.dd-my__edit form { display: grid; gap: 8px; margin-top: 8px; max-width: 520px; }
.dd-my__edit textarea.dd-input { min-height: 90px; padding-block: 12px; }
.dd-dsingle .dd-dsingle__3d[hidden] { display: none; }
