.memeStudio{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:20px;align-items:start}.memePreview{position:sticky;top:calc(var(--site-header-height,78px) + 74px);padding:18px}.memePreviewHead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.memePreviewHead h3{margin:0;font-size:19px}.memePreviewHead span{font-size:14px;color:var(--muted)}.memeCanvasWrap{display:grid;place-items:center;background:var(--paper);border:1px solid var(--line);border-radius:10px;overflow:hidden;min-height:180px}.memeCanvasWrap canvas{display:block;width:100%;height:auto;max-height:570px;object-fit:contain}.memeLocalNote{font-size:14px;color:var(--muted);line-height:1.6;margin:12px 0 0}.memePreview .sources{margin-top:12px;overflow-wrap:anywhere}.memeControls{display:grid;gap:14px}.memeStep h3{display:flex;align-items:center;gap:10px;font-size:19px;margin:0 0 16px}.memeStep h3>span{display:grid;place-items:center;width:30px;height:30px;flex:none;border-radius:50%;background:var(--teal2);color:var(--ink);font-size:15px}.memeControls label{display:block;font-size:15px;font-weight:700;line-height:1.5;margin:12px 0 6px}.memeControls :is(input[type=search],textarea,select){display:block;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);font:inherit;min-width:0}.memeControls textarea{resize:vertical;line-height:1.5;min-height:86px}.memeControls input[type=range]{display:block;width:100%;min-height:44px;accent-color:var(--teal)}.memeControls input[type=color]{display:block;width:100%;height:44px;padding:4px;border:1px solid var(--line);border-radius:8px;background:var(--card)}.memeControls button{min-height:44px;padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);font:700 14px/1.5 system-ui;cursor:pointer}.memeControls button.primary{background:var(--teal);color:#fff;border-color:var(--teal)}.memeControls button:disabled{opacity:.5;cursor:default}.memeUpload{padding:12px;border:2px dashed var(--line);border-radius:10px;background:var(--paper);cursor:pointer}.memeUpload input{display:block;margin-top:8px;width:100%;font-size:14px;max-width:100%}.memeStarterButtons{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.memeStarterButtons button{flex:1 1 160px}.memeFindImage,.memeMore{margin-top:16px;border-top:1px solid var(--line);padding-top:8px}.memeControls summary{min-height:44px;padding:10px 0;cursor:pointer;font-weight:750;font-size:15px;line-height:1.5}.memeFindImage form{margin:8px 0}.memeFindImage button{width:100%;margin-top:8px}.memeFieldGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:0 12px}.memeCheck{display:flex!important;align-items:center;gap:10px;min-height:44px}.memeCheck input{width:20px;height:20px;accent-color:var(--teal)}.memeSave{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.memeSave button{flex:1 1 150px}.memeSave p{flex-basis:100%;font-size:14px;line-height:1.6;color:var(--muted);margin:0}.memeControls output{float:right;color:var(--muted)}#memeFraming[hidden],#memeShare[hidden]{display:none!important}
@media(max-width:800px){.memeStudio{grid-template-columns:minmax(0,1fr)}.memePreview{position:static}.memeCanvasWrap canvas{max-height:460px}.memePreviewHead{flex-wrap:wrap}.memePreview{padding:14px}.memeControls .memeStep{padding:16px}}
@media(max-width:600px){.memeFieldGrid{grid-template-columns:minmax(0,1fr)}}
:root[data-appearance="dark"] .memeControls :is(button,.memeUpload,select,input,textarea){background:var(--card);color:var(--ink);border-color:var(--line)}:root[data-appearance="dark"] .memeControls button.primary{background:#734661;color:#fff}:root[data-appearance="dark"] .memeControls :is(input[type=range],input[type=checkbox]){accent-color:var(--accent-light)}
html[data-text-size="larger"] .memeFieldGrid{grid-template-columns:minmax(0,1fr)}

/* Native selects are single-line controls; never wrap their selected label. */
#meme-generator .memeControls select{height:auto;min-height:48px;font-size:16px;line-height:1.5;white-space:nowrap;padding:12px 32px 12px 12px}
