/* =============================================
   MEME GENERATOR — EDITOR CSS
   Works with CSS variables from inline <style>
   ============================================= */

/* SCREENS */
.screen{display:none;}
.screen.active{display:block;}

/* =============================================
   EDITOR TOOLBAR — Screen 2 only
   ============================================= */
.editor-toolbar{
  display:flex;align-items:center;justify-content:space-between;
  padding:8px 16px;background:var(--surface);border-bottom:1px solid var(--line);
  height:48px;position:sticky;top:56px;z-index:90;
}
body.editor-mode .editor-toolbar{top:0;}

.toolbar-btn{
  display:inline-flex;align-items:center;gap:5px;padding:6px 12px;
  border:1px solid var(--line);border-radius:8px;background:var(--surface-2);
  color:var(--muted);font-size:12px;font-weight:500;font-family:inherit;
  cursor:pointer;transition:all 0.15s;
}
.toolbar-btn:hover{border-color:var(--accent);color:var(--accent);}
.toolbar-btn.on{background:var(--accent-glow);color:var(--accent);border-color:var(--accent);}
.back-btn{border:none;color:var(--accent);font-weight:600;background:none;}
.back-btn:hover{background:var(--accent-glow);}
.toolbar-actions{display:flex;align-items:center;gap:4px;overflow-x:auto;white-space:nowrap;-ms-overflow-style:none;scrollbar-width:none;}
.toolbar-actions::-webkit-scrollbar{display:none;}
.toolbar-sep{width:1px;height:20px;background:var(--line);margin:0 4px;flex-shrink:0;}

/* =============================================
   EDITOR MAIN — canvas + panel
   ============================================= */
.editor-main{display:flex;height:calc(100vh - 104px);overflow:hidden;}
body.editor-mode .editor-main{height:calc(100vh - 48px);}

.canvas-area{
  flex:1;display:flex;align-items:center;justify-content:center;
  background:var(--surface-3);overflow:auto;padding:20px;min-width:0;position:relative;
}
.canvas-container{
  position:relative;background:#fff;border-radius:4px;
  box-shadow:0 2px 8px rgba(0,0,0,0.08);line-height:0;margin:auto;
}
.canvas-container canvas{display:block;touch-action:none;}

/* PANEL */
.panel{
  width:320px;min-width:320px;background:var(--surface);
  border-left:1px solid var(--line);display:flex;flex-direction:column;overflow:hidden;
}
.panel-scroll{flex:1;overflow-y:auto;padding:0;}
.panel-section{padding:16px;border-bottom:1px solid var(--line);}
.panel-section:last-child{border-bottom:none;}

.section-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;margin-bottom:10px;display:flex;align-items:center;gap:6px;}
.top-label{color:var(--accent);}
.top-label::before{content:'';display:block;width:3px;height:12px;border-radius:2px;background:var(--accent);}
.bottom-label{color:#ea580c;}
.bottom-label::before{content:'';display:block;width:3px;height:12px;border-radius:2px;background:#ea580c;}

.section-title{font-size:12px;font-weight:600;color:var(--text);margin-bottom:10px;}

/* =============================================
   CONTROLS
   ============================================= */
.control-row{display:flex;gap:8px;margin-bottom:10px;align-items:flex-end;}
.control-group{display:flex;flex-direction:column;}
.control-group.flex-1{flex:1;}
.control-label{font-size:11px;font-weight:500;color:var(--muted);margin-bottom:4px;}
.range-row{display:flex;align-items:center;gap:6px;}
.range-val{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums;min-width:28px;text-align:right;}
.select-input{
  width:100%;padding:7px 10px;border:1px solid var(--line);border-radius:6px;
  font-size:12px;font-family:inherit;background:var(--surface-2);color:var(--text);outline:none;cursor:pointer;
}
.select-input:focus{border-color:var(--accent);}

/* RANGE */
.range-input{-webkit-appearance:none;appearance:none;width:100%;height:4px;border-radius:2px;background:var(--surface-3);outline:none;}
.range-input::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--accent);cursor:pointer;border:2px solid var(--surface);box-shadow:0 1px 3px rgba(0,0,0,0.2);}
.range-input::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--accent);cursor:pointer;border:2px solid var(--surface);}

/* COLOR */
.color-row{display:flex;align-items:center;gap:6px;}
.color-input{width:32px;height:32px;border:1px solid var(--line);border-radius:6px;cursor:pointer;padding:1px;background:none;}
.color-input.full{width:100%;}

/* TOGGLE */
.toggle{position:relative;display:inline-block;width:36px;height:20px;cursor:pointer;}
.toggle input{display:none;}
.toggle-slider{position:absolute;inset:0;background:var(--surface-3);border-radius:20px;transition:0.2s;}
.toggle-slider::before{content:'';position:absolute;width:16px;height:16px;left:2px;bottom:2px;background:#fff;border-radius:50%;transition:0.2s;}
.toggle input:checked+.toggle-slider{background:var(--accent);}
.toggle input:checked+.toggle-slider::before{transform:translateX(16px);}

/* FORMAT BUTTONS */
.fmt-row{display:flex;gap:4px;align-items:center;margin-bottom:10px;}
.fmt-btn{
  width:32px;height:32px;border:1px solid var(--line);border-radius:6px;
  background:var(--surface-2);color:var(--muted);font-size:13px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:all 0.15s;font-family:inherit;
}
.fmt-btn:hover{border-color:var(--accent);color:var(--accent);}
.fmt-btn.active,.fmt-btn.on{background:var(--accent-glow);color:var(--accent);border-color:var(--accent);}
.pos-btn{font-size:16px;line-height:1;}
.ratio-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);}
.fmt-sep{width:1px;height:20px;background:var(--line);margin:0 4px;}

/* ACTION BTNS */
.action-btns{display:flex;gap:8px;}
.action-btns .btn-outline{
  flex:1;text-align:center;display:flex;align-items:center;justify-content:center;
  gap:6px;padding:10px 12px;font-size:12px;
  background:var(--surface-2);color:var(--muted);border:1px solid var(--line);
  border-radius:10px;font-weight:500;font-family:inherit;cursor:pointer;transition:all 0.15s;
}
.action-btns .btn-outline:hover{border-color:var(--accent);color:var(--accent);}

/* EDITOR BUTTONS */
.btn-blue{
  display:block;width:100%;padding:12px 20px;
  background:linear-gradient(135deg,var(--accent),var(--accent-deep));
  color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:600;
  font-family:inherit;cursor:pointer;transition:all 0.15s;margin-bottom:10px;
}
.btn-blue:hover{filter:brightness(1.1);transform:translateY(-1px);}
.btn-blue.full{width:100%;}
.btn-blue.sm{padding:8px 14px;font-size:12px;margin-bottom:0;}
.btn-outline{
  display:block;width:100%;padding:12px 20px;
  background:var(--surface-2);color:var(--muted);border:1px solid var(--line);
  border-radius:10px;font-size:14px;font-weight:500;font-family:inherit;
  cursor:pointer;transition:all 0.15s;
}
.btn-outline:hover{border-color:var(--accent);color:var(--accent);}
.btn-outline.full{width:100%;}
.btn-outline.sm{padding:8px 12px;font-size:12px;margin-bottom:0;}

/* =============================================
   STICKERS
   ============================================= */
.sticker-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-bottom:8px;}
.sticker-btn{
  width:100%;aspect-ratio:1;border:1px solid var(--line);border-radius:8px;
  background:var(--surface-2);cursor:pointer;display:flex;align-items:center;
  justify-content:center;font-size:22px;transition:all 0.15s;
}
.sticker-btn:hover{border-color:var(--accent);background:var(--accent-glow);}

/* DOWNLOAD */
.download-btns{display:flex;flex-direction:column;gap:8px;}

/* DELETE BUTTON */
.toolbar-btn.delete-btn{color:var(--err);border-color:rgba(239,68,68,0.3);}
.toolbar-btn.delete-btn:hover{background:rgba(239,68,68,0.08);color:var(--err);border-color:var(--err);}

/* =============================================
   TEMPLATES — styled with theme vars
   ============================================= */
.tpl-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.tpl-item{
  background:var(--surface);border:1px solid var(--line);border-radius:8px;
  overflow:hidden;cursor:pointer;transition:all 0.2s;display:flex;flex-direction:column;
}
.tpl-item:hover{border-color:var(--accent);box-shadow:0 4px 12px rgba(0,0,0,0.08);transform:translateY(-2px);}
.tpl-thumb{width:100%;position:relative;padding-bottom:100%;background:var(--surface-2);overflow:hidden;}
.tpl-thumb img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain;padding:4px;}
.tpl-name{padding:5px 6px;font-size:10px;font-weight:600;color:var(--muted);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* =============================================
   TOAST
   ============================================= */
.toast-wrap{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:9999;display:flex;flex-direction:column;align-items:center;gap:8px;}
.toast{padding:10px 20px;border-radius:10px;background:var(--surface);color:var(--text);font-size:13px;font-weight:500;box-shadow:0 4px 20px rgba(0,0,0,0.15);border:1px solid var(--line);animation:toastIn 0.3s ease;}
@keyframes toastIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}

/* CROP OVERLAY */
.crop-overlay{position:absolute;pointer-events:none;}
.crop-rect{position:absolute;border:2px dashed var(--accent);box-shadow:0 0 0 9999px rgba(0,0,0,0.4);pointer-events:none;}

/* FILTER CHIP ACTIVE */
.filter-chip.active,.tpl-cat-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);}

/* ZOOM */
.zoom-level{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums;min-width:36px;text-align:center;}

@keyframes spin{to{transform:rotate(360deg)}}

/* =============================================
   RESPONSIVE
   ============================================= */
@media(max-width:768px){
  .editor-main{flex-direction:column;}
  .panel{width:100%;min-width:auto;border-left:none;border-top:1px solid var(--line);max-height:50vh;}
  .canvas-area{min-height:40vh;}
  .tpl-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;}
}
