.app-badge{display:inline-flex;align-items:center;gap:.45rem;border-radius:999px;background:rgba(255,255,255,.72);border:1px solid var(--color-border);padding:.45rem .75rem;font-weight:800;color:var(--color-primary)}
.toast{position:fixed;right:1rem;bottom:1rem;z-index:160;background:var(--color-surface);border:1px solid var(--color-border);border-radius:18px;padding:1rem 1.2rem;box-shadow:var(--shadow-card)}
.upload-dropzone{border:2px dashed rgba(21,63,46,.24);border-radius:var(--radius-card);padding:2rem;text-align:center;background:rgba(255,255,255,.72)}
.upload-dropzone.dragging{border-color:var(--color-secondary);background:rgba(199,150,50,.12)}
.image-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}
.image-slot-card{display:grid;gap:.85rem;border-radius:var(--radius-card);padding:1rem;background:#fff;box-shadow:var(--shadow-card);border:1px solid var(--color-border)}
.image-slot-card img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:calc(var(--radius-card) - 10px);background:#f4efe3}
.image-actions{display:flex;gap:.5rem;flex-wrap:wrap}
.theme-preview-frame{border-radius:var(--radius-card);background:var(--gradient-primary);padding:1.5rem;box-shadow:var(--shadow-card);border:1px solid var(--color-border)}
.theme-control-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}
.theme-control-grid label{display:grid;gap:.4rem;font-weight:800}
.theme-control-grid input,.theme-control-grid select{min-height:48px;border-radius:14px;border:1px solid var(--color-border);padding:.65rem .75rem}
.preset-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.8rem}
.preset-button{border:1px solid var(--color-border);background:#fff;border-radius:20px;padding:1rem;text-align:left;cursor:pointer;font-weight:900}
.contrast-good{color:#116229}.contrast-warn{color:#7a4b00}.contrast-bad{color:#a52a1a}
