/* ─────────────────────────────────────────────────────────────────────────
   Estilos da ferramenta de letras. Partilhados por letras-diferentes.html e
   fontes-para-instagram.html — as duas páginas montam o mesmo motor
   (assets/letras-engine.js) e só diferem no texto, no FAQ e no schema.
   Editar aqui muda as duas. Ver [[letras-unicode-cobertura-glifos]].
   ───────────────────────────────────────────────────────────────────────── */

.lt-tool{
  display:grid;grid-template-columns:1fr 300px;gap:14px;align-items:start;
  grid-template-areas:"input preview" "styles preview";
}
.lt-tool>*{min-width:0}
.lt-input{grid-area:input}
.lt-styles{grid-area:styles}
.lt-preview{grid-area:preview;position:sticky;top:14px}
@media(max-width:860px){
  /* No telemóvel a pré-visualização sobe para logo a seguir à caixa de texto:
     a primeira coisa que se vê depois de escrever é o texto em contexto. */
  .lt-tool{grid-template-columns:1fr;grid-template-areas:"input" "preview" "styles"}
  .lt-preview{position:static}
}

.lt-panel{border:1px solid var(--border);border-radius:16px;background:var(--surface);padding:15px 16px;box-shadow:0 1px 3px rgba(20,18,16,.05)}
.lt-lbl{display:block;font-size:10.5px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:#8a8175;margin-bottom:8px}
.lt-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.lt-head .lt-lbl{margin-bottom:0}
.lt-count{font-size:12px;color:var(--muted)}

.lt-tool textarea{width:100%;min-height:76px;resize:vertical;font:inherit;font-size:16px;font-weight:600;border:1px solid var(--border);border-radius:12px;padding:12px 14px;background:var(--surface);color:var(--fg)}
.lt-tool textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(176,140,79,.16)}
.lt-opts{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:11px}
.lt-chk{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;font-weight:700;color:#3a3632;cursor:pointer}
.lt-chk input{width:16px;height:16px;accent-color:var(--gold);cursor:pointer}

.lt-ornwrap{margin-top:14px;padding-top:13px;border-top:1px solid rgba(15,15,15,.07)}
.lt-chipscroll{position:relative}
.lt-chips{display:flex;gap:7px;flex-wrap:wrap}
.lt-tail{display:inline}
.lt-chip{
  font:inherit;font-size:13.5px;font-weight:700;cursor:pointer;line-height:1.35;
  border:1px solid var(--border);background:var(--surface2);color:#141210;
  border-radius:10px;padding:7px 11px;transition:.12s;
  font-family:'Segoe UI Symbol','Segoe UI Emoji','Apple Symbols','Apple Color Emoji','Noto Sans Symbols 2','Noto Color Emoji',system-ui,sans-serif;
}
.lt-chip:hover{border-color:var(--gold)}
.lt-chip[aria-pressed="true"]{background:var(--gold);border-color:var(--gold);color:#141210;font-weight:800}

.lt-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.lt-row{
  display:flex;align-items:center;gap:12px;width:100%;text-align:left;font:inherit;color:var(--fg);
  border:1px solid var(--border);border-radius:12px;background:var(--surface);
  padding:10px 12px;cursor:pointer;transition:.12s;
}
.lt-row:hover{border-color:rgba(176,140,79,.55);background:#fffdf9}
.lt-row[data-sel="1"]{border-color:var(--gold);box-shadow:inset 3px 0 0 var(--gold)}
.lt-row.lt-broken{border-style:dashed;border-color:rgba(180,69,59,.45)}
.lt-row .lt-nm{flex:none;width:112px;font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--gold)}
.lt-row.lt-broken .lt-nm{color:var(--red)}
.lt-row .lt-out{flex:1;min-width:0;font-size:16.5px;line-height:1.5;word-break:break-word;color:#141210;
  font-family:'Segoe UI Symbol','Segoe UI Emoji','Apple Symbols','Apple Color Emoji','Noto Sans Symbols 2','Noto Color Emoji',system-ui,sans-serif}
.lt-row .lt-go{flex:none;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#8a8175}
.lt-row:hover .lt-go{color:var(--gold)}
.lt-row:focus-visible,.lt-chip:focus-visible,.lt-tab:focus-visible,.lt-copy:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
/* No telemóvel a linha passa a grelha compacta: nome pequeno por cima, texto por
   baixo, «copiar» à direita centrado. Antes o nome ocupava uma linha inteira e
   cada estilo gastava ~80px de altura; assim gasta ~58px e cabem mais no ecrã. */
@media(max-width:640px){
  .lt-list{gap:7px}
  .lt-row{display:grid;grid-template-columns:1fr auto;grid-template-areas:"nm go" "out go";gap:1px 10px;align-items:center;padding:8px 12px}
  .lt-row .lt-nm{grid-area:nm;width:auto;font-size:9.5px;letter-spacing:.07em}
  .lt-row .lt-out{grid-area:out;font-size:16px;line-height:1.4}
  .lt-row .lt-go{grid-area:go;align-self:center;font-size:10px}
}

/* Os estilos que este dispositivo não desenha ficam num bloco à parte, por baixo,
   nunca no meio da lista. grid-template-rows 0fr→1fr anima até altura automática. */
.lt-note{margin:12px 2px 0;font-size:13px;line-height:1.55;color:var(--muted)}
.lt-note button{font:inherit;font-size:13px;font-weight:800;color:var(--gold);background:none;border:none;padding:0;cursor:pointer;text-decoration:underline}
.lt-note button:hover{color:#8f7040}
.lt-extrawrap{display:grid;grid-template-rows:0fr;transition:grid-template-rows .34s cubic-bezier(.4,0,.2,1)}
.lt-extrawrap[data-open="1"]{grid-template-rows:1fr}
.lt-extrawrap-in{overflow:hidden;min-height:0}
.lt-extrawrap .lt-list{opacity:0;transition:opacity .26s ease .04s}
.lt-extrawrap[data-open="1"] .lt-list{opacity:1}
@media(prefers-reduced-motion:reduce){.lt-extrawrap,.lt-extrawrap .lt-list{transition:none}}

/* ── pré-visualização ── */
.lt-tabs{display:flex;gap:5px;margin-bottom:11px}
.lt-tab{flex:1;font:inherit;font-size:11.5px;font-weight:800;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:9px;padding:7px 4px;transition:.12s}
.lt-tab:hover{border-color:var(--gold)}
.lt-tab[aria-pressed="true"]{background:#141210;color:#fff;border-color:#141210}
.lt-screen{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px;min-height:150px;overflow:hidden}
.lt-prof{display:flex;gap:11px;align-items:center;margin-bottom:11px}
.lt-av{width:44px;height:44px;border-radius:50%;flex:none;background:linear-gradient(135deg,var(--gold),var(--gold2))}
.lt-sym{font-family:'Segoe UI Symbol','Segoe UI Emoji','Apple Symbols','Apple Color Emoji','Noto Sans Symbols 2','Noto Color Emoji',system-ui,sans-serif;word-break:break-word}
.lt-pname{font-size:15px;font-weight:700;line-height:1.3}
.lt-handle{font-size:11.5px;color:#8a8175}
.lt-bio{font-size:13.5px;line-height:1.55;color:#141210;min-height:2.6em}
.lt-bar{margin-top:12px;padding-top:10px;border-top:1px solid rgba(15,15,15,.07);display:flex;gap:14px;font-size:11px;color:#8a8175}
.lt-postimg{width:100%;aspect-ratio:1;border-radius:10px;margin-bottom:9px;background:
  radial-gradient(circle at 30% 28%,rgba(255,255,255,.45),transparent 55%),
  linear-gradient(150deg,var(--gold2),var(--gold) 55%,#8d7040)}
.lt-postmeta{display:flex;align-items:center;gap:7px;margin-bottom:5px}
.lt-sizerow{display:flex;gap:10px;align-items:baseline;padding:9px 0;border-bottom:1px solid rgba(15,15,15,.07)}
.lt-sizerow:last-child{border-bottom:none}
/* A faixa escura sangra até aos bordos e até ao fundo do cartão, para a etiqueta
   alinhar com as de cima e não sobrar branco por baixo. */
.lt-sizerow.lt-dark{background:#141210;margin:9px -14px -14px;padding:12px 14px 22px;border-radius:0 0 11px 11px;border-bottom:none}
.lt-sizerow.lt-dark .lt-bio{color:#f3efe7}
.lt-sizerow.lt-dark .lt-sizetag{color:#8a8175}
.lt-sizetag{flex:none;width:58px;font-size:9.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:#8a8175}
.lt-sizerow .lt-pname,.lt-sizerow .lt-bio{flex:1;min-width:0;min-height:0}
.lt-copy{width:100%;margin-top:11px;font:inherit;font-size:14px;font-weight:800;cursor:pointer;border:none;border-radius:11px;padding:12px;color:#141210;background:linear-gradient(135deg,var(--gold),var(--gold2));transition:.12s}
.lt-copy:hover{filter:brightness(1.05)}

/* O botão que abre/fecha a pré-visualização só existe no telemóvel. */
.lt-pvtoggle{display:none}
.lt-pvbody-wrap{display:block}

/* ═══════════════════════════════════════════════════════════════════════
   TELEMÓVEL — a lista de estilos é o produto e tem de aparecer cedo.
   Antes desta passagem, no 390px, a caixa de texto mais os enfeites mais a
   pré-visualização enchiam dois ecrãs antes de se ver uma única letra.
   ═══════════════════════════════════════════════════════════════════════ */
@media(max-width:860px){
  .lt-panel{padding:13px 14px;border-radius:14px}
  .lt-tool{gap:10px}
  .lt-tool textarea{min-height:56px;font-size:16px;padding:10px 12px}

  /* «Remover acentos» numa linha só: a cauda explicativa desaparece. */
  .lt-opts{margin-top:9px}
  .lt-chk{font-size:12.5px;gap:7px}
  .lt-chk input{width:15px;height:15px}
  .lt-tail{display:none}

  /* Enfeites: UMA fila que se arrasta na horizontal, com esbatimento à direita
     a dizer que há mais. Antes ocupavam duas filas inteiras. */
  .lt-ornwrap{margin-top:11px;padding-top:11px}
  .lt-ornwrap .lt-lbl{margin-bottom:6px}
  .lt-chips{flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:1px 22px 1px 1px}
  .lt-chips::-webkit-scrollbar{display:none}
  .lt-chip{flex:none;scroll-snap-align:start;padding:7px 12px}
  .lt-chipscroll::after{content:"";position:absolute;top:0;right:0;bottom:0;width:28px;pointer-events:none;
    background:linear-gradient(90deg,rgba(255,255,255,0),var(--surface) 72%)}

  /* Pré-visualização reduzida a uma linha, fechada por omissão. */
  .lt-preview{padding:0}
  .lt-pvtoggle{display:flex;width:100%;align-items:center;justify-content:space-between;gap:10px;
    font:inherit;background:none;border:none;cursor:pointer;padding:13px 14px;text-align:left}
  .lt-pvtoggle .lt-lbl{margin:0}
  .lt-chev{flex:none;width:9px;height:9px;border-right:2px solid var(--gold);border-bottom:2px solid var(--gold);
    transform:rotate(45deg) translate(-2px,-2px);transition:transform .25s}
  .lt-preview[data-open="1"] .lt-chev{transform:rotate(-135deg) translate(-2px,-2px)}
  .lt-pvbody-wrap{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s cubic-bezier(.4,0,.2,1)}
  .lt-preview[data-open="1"] .lt-pvbody-wrap{grid-template-rows:1fr}
  .lt-pvbody{overflow:hidden;min-height:0}
  .lt-preview[data-open="1"] .lt-pvbody{padding:0 14px 14px}
}
@media(max-width:860px) and (prefers-reduced-motion:reduce){
  .lt-pvbody-wrap,.lt-chev{transition:none}
}
