.meme-studio-card { overflow: hidden; }
.meme-studio-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr); gap: 20px; align-items: start; }
.meme-preview { min-width: 0; border: 1px solid var(--gt-line); border-radius: 16px; background: #050b14; overflow: hidden; }
.meme-preview__frame { display: grid; min-height: 360px; place-items: center; padding: 18px; background: repeating-conic-gradient(rgba(255,255,255,.025) 0 25%, transparent 0 50%) 50% / 24px 24px; }
.meme-preview canvas { display: block; width: auto; max-width: 100%; max-height: 620px; height: auto; border-radius: 8px; box-shadow: 0 18px 42px rgba(0,0,0,.36); }
.meme-preview__empty { max-width: 260px; color: var(--gt-muted); text-align: center; }
.meme-preview__empty strong { display: block; margin-bottom: 6px; color: var(--gt-text); font-size: 1.05rem; }
.meme-controls { display: grid; gap: 14px; }
.meme-dropzone { display: grid; gap: 8px; padding: 16px; border: 1px dashed rgba(56,189,248,.48); border-radius: 14px; color: var(--gt-muted); background: var(--gt-accent-soft); cursor: pointer; }
.meme-dropzone[data-dragging=true], .meme-dropzone:hover { border-color: var(--gt-accent); background: rgba(56,189,248,.2); }
.meme-dropzone strong { color: var(--gt-text); }
.meme-dropzone input { width: 100%; font-size: .9rem; }
.meme-control-group { display: grid; gap: 8px; padding: 14px; border: 1px solid var(--gt-line); border-radius: 14px; background: rgba(255,255,255,.025); }
.meme-control-group legend, .meme-control-group label { color: var(--gt-text); font-weight: 680; }
.meme-control-group textarea { min-height: 76px; resize: vertical; }
.meme-control-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.meme-color { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.meme-color input { width: 52px; height: 38px; padding: 3px; border: 1px solid var(--gt-line-strong); border-radius: 8px; background: transparent; cursor: pointer; }
.meme-privacy { display: flex; gap: 9px; padding: 12px; border-radius: 12px; color: var(--gt-muted); background: rgba(52,211,153,.08); border: 1px solid rgba(52,211,153,.22); font-size: .9rem; }
.meme-privacy strong { color: var(--gt-text); }
.meme-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.meme-actions .gt-button { flex: 1 1 150px; }
.meme-limit { margin: 0; color: var(--gt-subtle); font-size: .82rem; }
@media (max-width: 760px) {
  .meme-studio-layout { grid-template-columns: 1fr; }
  .meme-preview__frame { min-height: 250px; padding: 12px; }
  .meme-preview canvas { max-height: 420px; }
}
