/* ==============================================================
   BUILDER — form, preview, mode tabs, optional sections,
   symbol library, transform bar, Etsy SEO cards
   ============================================================== */

/* Mode tabs */
.mode-tabs{display:flex;gap:3px;background:#f5f0eb;border-radius:9px;padding:3px;margin-bottom:14px}
.mode-tab{flex:1;padding:7px 10px;border-radius:6px;font-size:12px;font-weight:700;color:var(--text-mute);transition:all .15s}
.mode-tab.active{background:#fff;color:var(--orange);box-shadow:0 1px 3px rgba(0,0,0,.06)}
.mode-tab:hover:not(.active){color:#3d3832}

/* Selectors row */
.selectors{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}
.selectors .field{margin:0}

/* Template picker — search + grid */
.tpl-picker{margin-bottom:14px}
.tpl-picker-label{
  font-size:11px;font-weight:700;color:var(--text-mute);
  text-transform:uppercase;letter-spacing:.3px;margin-bottom:6px;
  display:flex;justify-content:space-between;align-items:baseline;
}
.tpl-picker-label .tpl-count{
  font-size:10px;font-weight:600;color:var(--text-faint);
  text-transform:none;letter-spacing:0;
}
.tpl-search{
  width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:8px;
  font-size:13px;background:#fff;margin-bottom:8px;
}
.tpl-search:focus{border-color:var(--blue);outline:none}
.tpl-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:6px;
  max-height:260px;overflow-y:auto;padding:4px;
  background:#fafaf6;border:1px solid var(--border);border-radius:9px;
}
.tpl-card{
  padding:9px 11px;border-radius:7px;border:1.5px solid transparent;
  background:#fff;cursor:pointer;transition:all .12s;text-align:left;
  display:flex;flex-direction:column;gap:2px;
}
.tpl-card:hover{border-color:var(--border-strong);background:#f8fafe}
.tpl-card.active{
  background:var(--orange-bg);border-color:var(--orange);
  box-shadow:0 1px 4px rgba(124,58,237,.15);
}
.tpl-card-name{
  font-size:12px;font-weight:700;color:#3d3832;line-height:1.3;
}
.tpl-card.active .tpl-card-name{color:var(--orange)}
.tpl-empty{
  grid-column:1/-1;padding:20px;text-align:center;
  color:var(--text-faint);font-size:12px;
}
@media (max-width:540px){
  .tpl-grid{grid-template-columns:1fr;max-height:200px}
}

/* Visual style chips */
.style-row{margin-bottom:14px}
.style-label{font-size:11px;font-weight:700;color:var(--text-mute);text-transform:uppercase;letter-spacing:.3px;margin-bottom:5px}
.style-chips{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.style-chip{background:#fff;border:1.5px solid var(--border);border-radius:9px;padding:8px 7px;text-align:left;transition:all .15s;cursor:pointer}
.style-chip:hover{border-color:var(--border-strong)}
.style-chip.active{background:var(--orange-bg);border-color:var(--orange)}
.style-chip .name{font-size:11px;font-weight:800;color:#3d3832;margin-bottom:1px}
.style-chip .desc{font-size:10px;color:var(--text-mute);line-height:1.2}
.style-chip.active .name{color:var(--orange)}

/* Form fields */
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.field label{
  font-size:12.5px;font-weight:800;color:#3d3832;
  text-transform:uppercase;letter-spacing:.4px;
  padding-bottom:2px;
}
.field label .hint{color:var(--text-faint);font-weight:600;text-transform:none;letter-spacing:0;font-size:10px}
.field label .title-count{
  float:right;font-size:10px;font-weight:700;padding:2px 7px;border-radius:8px;
  text-transform:none;letter-spacing:0;background:#f0f4f9;color:var(--text-mute);
}
.field label .title-count.ok{background:var(--green-bg);color:var(--green)}
.field label .title-count.warn{background:#fef3c7;color:#92400e}
.field label .title-count.over{background:var(--red-bg);color:var(--red)}
.field label .field-count{
  float:right;font-size:10px;font-weight:700;padding:2px 7px;border-radius:8px;
  text-transform:none;letter-spacing:0;background:#f0f4f9;color:var(--text-faint);
}
.field label .field-count.warn{background:#fef3c7;color:#92400e}
.field label .field-count.over{background:var(--red-bg);color:var(--red)}
.field input,.field select,.field textarea{width:100%;padding:8px 11px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13px;color:var(--text);transition:border .15s;background:#fff}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue)}
.field textarea{resize:vertical;min-height:56px;font-family:inherit}
.field textarea.large{min-height:300px}

/* Transform bar */
.xform-bar{
  display:flex;flex-wrap:wrap;align-items:center;gap:6px;
  background:#f5f3ff;border:1px solid #ddd6fe;border-radius:9px;
  padding:9px 12px;margin-bottom:12px;
}
.xform-label{
  font-size:11px;font-weight:800;color:#5b21b6;
  text-transform:uppercase;letter-spacing:.4px;margin-right:4px;
}
.xform-btn{
  padding:6px 11px;border-radius:7px;font-size:12px;font-weight:600;
  border:1px solid var(--border);background:#fff;color:#3d3832;
  transition:all .12s;cursor:pointer;
}
.xform-btn:hover{background:var(--orange-bg);border-color:var(--orange);color:var(--orange)}
.xform-btn:active{transform:translateY(1px)}
.xform-sep{width:1px;height:18px;background:var(--border);margin:0 4px}
.xform-help{
  list-style:none;margin:-6px 0 14px 0;padding:10px 14px;
  background:#fff;border:1px solid var(--border);border-radius:0 0 9px 9px;
  border-top:none;font-size:11.5px;color:var(--text-mute);line-height:1.7;
}
.xform-help li{padding:1px 0}
.xform-help strong{color:#3d3832;font-weight:700;display:inline-block;min-width:115px}

/* Paste source note */
.paste-source-note{
  background:linear-gradient(135deg,#f5f3ff,#ede9fe);
  border-left:3px solid var(--blue);
  padding:9px 12px;border-radius:7px;
  font-size:12.5px;font-weight:600;color:#6b21a8;line-height:1.5;
  margin-bottom:8px;
}

/* Mode explainer card */
.mode-intro{
  background:linear-gradient(135deg,#f5f3ff,#ede9fe);
  border:1px solid #ddd6fe;border-radius:11px;padding:14px 16px;margin-bottom:16px;
}
.mode-intro-title{
  font-size:14px;font-weight:800;color:#6b21a8;margin-bottom:8px;
  display:flex;align-items:center;gap:6px;
}
.mode-intro-body{font-size:12.5px;color:#3d3832;line-height:1.55}
.mode-intro-body ul{margin:6px 0 8px 18px;padding:0}
.mode-intro-body li{margin:2px 0}
.mode-intro-body strong{color:#6b21a8}
.mode-intro-tip{
  margin-top:8px;padding:8px 10px;background:rgba(255,255,255,.7);
  border-radius:7px;font-size:11.5px;color:var(--text-mute);
}
.mode-intro-tip strong{color:var(--orange)}

/* Optional sections panel */
.opt-panel{
  margin-top:18px;margin-bottom:22px;
  border:1px solid var(--border);border-radius:9px;
  background:#fafaf6;overflow:hidden;
}
.opt-panel-hdr{
  padding:11px 14px;background:#fafaf6;font-size:12px;font-weight:700;
  color:var(--text-mute);border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;gap:8px;
}
.opt-panel-hdr .hint{font-size:10px;font-weight:600;color:var(--text-faint)}
.opt-row{padding:10px 14px;border-bottom:1px solid var(--border)}
.opt-row:last-child{border-bottom:none}
.opt-row-head{display:flex;align-items:center;gap:9px;cursor:pointer;user-select:none}
.opt-toggle{
  position:relative;width:34px;height:20px;border-radius:11px;background:#d4cabc;
  transition:background .15s;flex-shrink:0;
}
.opt-toggle::after{
  content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;
  border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);
  transition:transform .15s;
}
.opt-row.active .opt-toggle{background:var(--orange)}
.opt-row.active .opt-toggle::after{transform:translateX(14px)}
.opt-row-title{font-size:13px;font-weight:700;color:#3d3832;flex:1}
.opt-row-desc{font-size:11px;color:var(--text-faint);font-weight:600}
.opt-row-body{display:none;margin-top:10px}
.opt-row.active .opt-row-body{display:block}
.opt-row-body textarea{width:100%;padding:8px 11px;border:1px solid var(--border);border-radius:7px;font-size:13px;background:#fff;min-height:60px;font-family:inherit;resize:vertical}

/* Symbol library */
.sym-library{
  border:1px solid var(--border);border-radius:9px;margin-bottom:14px;overflow:hidden;background:#fafaf6;
}
.sym-toggle{
  width:100%;padding:10px 14px;display:flex;align-items:center;justify-content:space-between;
  font-size:12px;font-weight:700;color:var(--text-mute);cursor:pointer;background:#fafaf6;
}
.sym-toggle:hover{background:#f5f0eb;color:#3d3832}
.sym-toggle .caret{transition:transform .2s}
.sym-library.open .sym-toggle .caret{transform:rotate(180deg)}
.sym-body{display:none;padding:10px 12px 12px;border-top:1px solid var(--border)}
.sym-library.open .sym-body{display:block}
.sym-howto{
  background:#fff;border:1px dashed var(--border-strong);border-radius:7px;
  padding:8px 11px;margin-bottom:10px;font-size:11px;color:var(--text-mute);line-height:1.5;
}
.sym-howto strong{color:#3d3832;font-weight:700}
.sym-group{margin-bottom:10px}
.sym-group:last-child{margin-bottom:0}
.sym-group-title{font-size:10px;font-weight:700;color:var(--text-faint);text-transform:uppercase;letter-spacing:.4px;margin-bottom:5px}
.sym-grid{display:flex;flex-wrap:wrap;gap:4px}
.sym-btn{
  min-width:30px;height:30px;padding:0 6px;border:1px solid var(--border);border-radius:7px;
  background:#fff;font-size:16px;line-height:1;color:#3d3832;transition:all .12s;
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer;
}
.sym-btn:hover{background:var(--orange-bg);border-color:var(--orange);transform:translateY(-1px)}
.sym-btn:active{transform:translateY(0)}

/* Sections editor (custom mode) */
.sections-editor{display:flex;flex-direction:column;gap:10px}
.section-item{background:#faf8f5;border:1px solid var(--border);border-radius:9px;padding:10px}
.section-item-hdr{display:flex;gap:6px;align-items:center;margin-bottom:6px}
.section-item-hdr input{flex:1;font-weight:700}
.section-item .remove{width:26px;height:26px;border-radius:6px;border:1px solid var(--border);background:#fff;font-size:13px;color:#dc2626}
.section-item .remove:hover{background:#fef2f2}
.add-section{align-self:flex-start;padding:7px 12px;border:1px dashed var(--border-strong);border-radius:8px;font-size:12px;font-weight:700;color:var(--text-mute);background:#fff}
.add-section:hover{background:#f5f0eb;border-color:var(--orange);color:var(--orange)}

/* Preview */
.preview-card{position:sticky;top:76px}
.preview-card .card-hdr{background:#f8fafe}
.preview-actions{display:flex;gap:6px;align-items:center}
.preview-actions .btn{padding:6px 10px;font-size:11px;display:inline-flex;align-items:center;gap:4px}
.preview-meta{
  font-size:11px;font-weight:700;padding:3px 9px;border-radius:11px;
  transition:background .15s, color .15s;background:#f0f4f9;color:var(--text-mute);
  display:inline-flex;align-items:center;gap:4px;
}
.preview-meta.ok{background:var(--green-bg);color:var(--green)}
.preview-meta.warn{background:#fef3c7;color:#92400e}
.preview-meta.over{background:var(--red-bg);color:var(--red);animation:pulse 1.5s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.7}}
.preview-body{background:var(--preview-bg);padding:18px;min-height:380px;max-height:640px;overflow-y:auto;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;font-size:13px;color:#3d3832;line-height:1.55;white-space:pre-wrap}
.preview-body .star{color:#f59e0b;font-weight:bold;text-shadow:0 0 1px rgba(245,158,11,.3)}
.preview-empty{text-align:center;color:var(--text-faint);padding:50px 20px;white-space:normal}
.preview-empty .icon{font-size:38px;opacity:.45;margin-bottom:6px}

/* Trust bar — sits at the bottom of the preview card, right next to
   where the user clicks Copy. One subtle line, no marketing fluff —
   reassures the user their description isn't being uploaded. */
.preview-trust{
  display:flex;align-items:center;gap:8px;
  padding:10px 16px;
  background:#ecfdf5;border-top:1px solid #a7f3d0;
  font-size:12px;font-weight:600;color:#15803d;
  line-height:1.4;
}

/* Etsy Title & Tag cards */
.etsy-tool-card{margin-top:24px;max-width:1320px;margin-left:auto;margin-right:auto}
.etsy-tool-intro{font-size:13px;color:var(--text-mute);margin-bottom:14px;line-height:1.5}
.etsy-tool-disclaimer{
  font-size:11.5px;color:var(--text-faint);margin-top:10px;line-height:1.5;
  font-style:italic;
}
.etsy-only-msg{
  margin-top:24px;background:linear-gradient(135deg,#fef3c7,#fde68a);
  border:1px solid #fcd34d;color:#92400e;padding:14px 18px;border-radius:11px;
  font-size:13px;font-weight:600;text-align:center;
}
.etsy-only-msg strong{color:#78350f}

/* Quality indicator above Generate buttons */
.quality-indicator{
  margin-bottom:12px;padding:10px 14px;border-radius:9px;font-size:12.5px;
  display:flex;align-items:center;gap:10px;line-height:1.5;
  border:1px solid var(--border);background:#fafaf6;color:var(--text-mute);
}
.quality-indicator.weak{background:#fef2f2;border-color:#fecaca;color:var(--red)}
.quality-indicator.ok{background:#fef3c7;border-color:#fcd34d;color:#92400e}
.quality-indicator.strong{background:var(--green-bg);border-color:#86efac;color:var(--green)}
.quality-indicator .quality-emoji{font-size:18px}
.quality-indicator strong{font-weight:800}

/* Title results */
.title-results{margin-top:14px;display:flex;flex-direction:column;gap:8px}
.title-result{
  display:grid;grid-template-columns:60px 1fr auto;gap:12px;align-items:center;
  background:#fafaf6;border:1px solid var(--border);border-radius:9px;padding:10px 12px;
}
/* Old numeric score chip — kept for any leftover references */
.title-score{
  font-size:14px;font-weight:800;text-align:center;
  padding:4px 0;border-radius:7px;
}
.title-score.strong{background:var(--green-bg);color:var(--green)}
.title-score.ok{background:#fef3c7;color:#92400e}
.title-score.weak{background:var(--red-bg);color:var(--red)}

/* New simple title quality badge — replaces the misleading 0-10 score.
   Just shows: ✓ (good), ⚠ (over limit), or blank dot (could be richer). */
.title-badge{
  width:36px;text-align:center;font-size:16px;font-weight:800;
  padding:6px 0;border-radius:8px;line-height:1;
}
.title-badge.ok{background:var(--green-bg);color:var(--green)}
.title-badge.over{background:var(--red-bg);color:var(--red)}
.title-badge.soft{background:#f5f0eb;color:var(--text-faint)}
.title-badge.soft::before{content:"·"}
.title-len{
  display:inline-block;margin-left:8px;
  font-size:11px;font-weight:700;color:var(--text-faint);
  padding:2px 7px;background:#f5f0eb;border-radius:8px;
  vertical-align:middle;
}
.title-text{font-size:13px;color:#3d3832;line-height:1.4;word-break:break-word}
.title-result .btn{padding:6px 11px;font-size:11px}

/* Tag results — score banner removed; clean summary line only */
.tag-results{margin-top:14px}
.tag-set-summary{
  font-size:12.5px;color:var(--text-mute);
  padding:8px 14px;background:#fafaf6;border:1px solid var(--border);
  border-radius:9px;margin-bottom:12px;
}
.tag-set-summary strong{color:#3d3832;font-weight:800}
.tag-set-score{
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;
  padding:12px 16px;border-radius:9px;margin-bottom:12px;
}
.tag-set-score.strong{background:var(--green-bg)}
.tag-set-score.ok{background:#fef3c7}
.tag-set-score.weak{background:var(--red-bg)}
.tag-set-score-label{font-size:12px;font-weight:700;color:var(--text-mute);text-transform:uppercase;letter-spacing:.3px}
.tag-set-score-value{font-size:18px;font-weight:800}
.tag-set-score.strong .tag-set-score-value{color:var(--green)}
.tag-set-score.ok .tag-set-score-value{color:#92400e}
.tag-set-score.weak .tag-set-score-value{color:var(--red)}
.tag-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.tag-chip{
  background:#fff;border:1.5px solid var(--border);border-radius:18px;
  padding:5px 12px;font-size:12px;font-weight:700;color:#3d3832;
  display:inline-flex;align-items:center;gap:4px;cursor:default;transition:all .12s;
}
.tag-chip.strong{background:var(--green-bg);border-color:#86efac;color:var(--green)}
.tag-chip.ok{background:#fef3c7;border-color:#fcd34d;color:#92400e}
.tag-chip.weak{background:var(--red-bg);border-color:#fca5a5;color:var(--red)}
.tag-chip .tag-chip-score{
  background:rgba(0,0,0,.08);padding:1px 6px;border-radius:8px;
  font-size:10px;font-weight:600;
}
.tag-chip.swappable{cursor:pointer}
.tag-chip.swappable:hover{transform:translateY(-1px);box-shadow:0 2px 6px rgba(0,0,0,.08)}
.tag-chip-swap-arrow{font-size:11px;opacity:.6;margin-left:2px}

.tag-suggestions{
  background:#f5f3ff;border:1px solid #ddd6fe;border-radius:9px;padding:10px 14px;
  margin-bottom:12px;
}
.tag-suggestions-title{font-size:11px;font-weight:800;color:#6b21a8;text-transform:uppercase;letter-spacing:.3px;margin-bottom:6px}
.tag-suggestions ul{margin:0;padding-left:18px;font-size:12px;color:var(--text-mute);line-height:1.6}

.tag-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}
.tag-alternatives-section{
  margin-top:12px;padding-top:12px;border-top:1px dashed var(--border);
}
.tag-alternatives-section-title{
  font-size:11px;font-weight:800;color:var(--text-mute);text-transform:uppercase;
  letter-spacing:.3px;margin-bottom:8px;
}
