/* =========================================================
   editor.css — editor visual de cursos (aba "Unidades" do painel)

   Regra de ouro: nada aqui muda o TAMANHO nem o espaçamento dos
   blocos no canvas. Seleção é `outline` (não ocupa espaço), as zonas
   de "+" ficam por cima (position:absolute) e as ferramentas flutuam.
   Assim o canvas fica com a mesma cara da página do aluno.
   ========================================================= */

/* o editor da subunidade usa a tela larga (canvas + painel) */
#app:has(.ed-wide){max-width:1480px}

.ed-root{display:flex;flex-direction:column;gap:1rem}

/* ── aviso fixo + espaço usado ───────────────────────── */
.ed-aviso{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;
  background:var(--gold-l);border:1px dashed var(--gold);border-radius:var(--r-sm);padding:.7rem 1rem}
.ed-aviso > span{font-size:1.3rem}
.ed-aviso p{margin:0;flex:1;min-width:240px;font-size:.88rem;color:var(--ink-2)}
.ed-aviso strong{color:var(--gold-d)}
.ed-uso{width:100%;color:var(--ink-3);font-size:.78rem}

/* ── trilha ───────────────────────────────────────────── */
.ed-crumbs{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;font-size:.88rem;color:var(--ink-3)}
.ed-crumb{background:none;border:0;padding:.2rem .35rem;border-radius:8px;color:var(--jade-d);font-weight:600;cursor:pointer}
.ed-crumb:hover{background:var(--jade-l)}
.ed-crumb.is-here{color:var(--ink);cursor:default}

/* ── cards de módulo e linhas ─────────────────────────── */
.ed-module{cursor:pointer}
.ed-rows .ed-row{gap:.6rem;padding:.6rem .8rem;cursor:default}
.ed-rows .ed-row:hover{transform:none}
.ed-row.is-draft{border-style:dashed}
.ed-row-open{flex:1;min-width:0;display:flex;align-items:center;gap:1rem;background:none;border:0;padding:.35rem;
  text-align:left;color:inherit;font:inherit;cursor:pointer;border-radius:var(--r-sm)}
.ed-row-open:hover{background:var(--surface-2)}
.ed-grip,.ed-handle{cursor:grab;color:var(--ink-3);font-size:1.15rem;padding:.25rem .3rem;border-radius:6px;user-select:none}
.ed-grip:hover,.ed-handle:hover{background:var(--surface-2);color:var(--ink)}
.ed-badges{display:flex;gap:.3rem;flex-wrap:wrap;justify-content:flex-end}
.ed-row-acts{display:flex;gap:.1rem}
.pill.pill-edit{background:var(--petrol-l);color:var(--petrol)}
.pill.pill-ok{background:var(--jade-l);color:var(--jade-d)}
.pill.pill-soft{background:var(--surface-2);color:var(--ink-3)}
.ed-row.is-dragging{opacity:.45}
.ed-row.drop-before{box-shadow:0 -3px 0 var(--coral)}
.ed-row.drop-after{box-shadow:0 3px 0 var(--coral)}
.ed-rename{display:grid;grid-template-columns:1fr 1fr auto;gap:.6rem;align-items:end;
  padding:.8rem;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2)}
.ed-rename-acts{display:flex;gap:.4rem}
.ed-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:.9rem 1.1rem;box-shadow:var(--shadow)}
.ed-card > summary{cursor:pointer;font-weight:700;color:var(--heading)}
.ed-card[open] > summary{margin-bottom:.8rem}
.ed-excluidas{margin-top:1rem;display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.ed-excluidas p{margin:0}

/* ── barra superior da subunidade ─────────────────────── */
.ed-topbar{position:sticky;top:calc(var(--topbar-h,64px) + .5rem);z-index:30;display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;
  padding:.55rem .7rem;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(6px);
  border:1px solid var(--line);border-radius:var(--r-sm);box-shadow:var(--shadow)}
.ed-histbar{display:flex;align-items:center;gap:.2rem}
.ed-histbar .btn{font-size:1.1rem;padding:.3rem .55rem}
.ed-histbar .btn:disabled{opacity:.35}
.ed-salvo{font-size:.78rem;color:var(--jade-d);margin-left:.3rem;white-space:nowrap}
.ed-salvo[data-estado="salvando"]{color:var(--ink-3)}
.ed-salvo[data-estado="erro"]{color:var(--coral-d);font-weight:700}
.ed-seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:var(--surface-2)}
.ed-seg button{border:0;background:none;padding:.38rem .75rem;font:inherit;font-size:.82rem;color:var(--ink-2);cursor:pointer}
.ed-seg button + button{border-left:1px solid var(--line)}
.ed-seg button.is-on{background:var(--jade);color:#fff;font-weight:700}
.ed-topbar .btn.is-on{background:var(--jade-l);color:var(--jade-d)}
.ed-faltas{border:1px dashed var(--coral);background:var(--coral-l);color:var(--coral-d);border-radius:999px;
  padding:.3rem .7rem;font-size:.78rem;font-weight:700;cursor:pointer}
.ed-kbd{margin-left:auto;font-size:.75rem;color:var(--ink-3);cursor:help}

/* ── canvas + painel ──────────────────────────────────── */
.ed-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:1.25rem;align-items:start}
.ed-stage{background:var(--cream,var(--surface-2));border:1px solid var(--line);border-radius:var(--r);
  padding:1.5rem clamp(.75rem,2.5vw,2rem) 3rem;min-height:60vh}
.ed-canvas{position:relative}
.ed-canvas .page-head [data-edit]{cursor:text;border-radius:6px}
.ed-canvas .page-head [data-edit]:hover{outline:1px dashed var(--jade);outline-offset:3px}
.ed-ph{color:var(--ink-3);font-style:italic}
.ed-video-note{margin-top:.5rem;padding:.6rem .8rem;border:1px dashed var(--line);border-radius:var(--r-sm);font-size:.82rem;color:var(--ink-3)}

/* cada bloco: moldura que não ocupa espaço */
.ed-blk{position:relative;border-radius:10px;cursor:pointer;outline:1px dashed transparent;outline-offset:5px;transition:outline-color .15s}
.ed-blk:hover{outline-color:color-mix(in srgb,var(--jade) 45%,transparent)}
.ed-blk.is-path{outline:1px dashed color-mix(in srgb,var(--jade) 70%,transparent)}
.ed-blk.is-sel{outline:2px solid var(--jade);outline-offset:5px}
.ed-blk.drop-before{box-shadow:0 -4px 0 -1px var(--coral)}
.ed-blk.drop-after{box-shadow:0 4px 0 -1px var(--coral)}
.ed-blk [data-edit]{cursor:text}
.ed-empty{padding:.8rem;border:1px dashed var(--line);border-radius:var(--r-sm);color:var(--ink-3);font-size:.85rem;text-align:center}

/* ferramentas do bloco selecionado */
.ed-tools{position:absolute;right:0;top:-2.3rem;z-index:6;display:flex;align-items:center;gap:.15rem;
  background:var(--petrol);color:#fff;border-radius:999px;padding:.15rem .35rem;box-shadow:var(--shadow);font-size:.78rem;white-space:nowrap}
.ed-tools b{padding:0 .35rem;font-weight:700;max-width:220px;overflow:hidden;text-overflow:ellipsis}
.ed-tools button{border:0;background:none;color:#fff;width:1.8rem;height:1.8rem;border-radius:50%;cursor:pointer;font-size:.9rem}
.ed-tools button:hover,.ed-tools .ed-handle:hover{background:rgba(255,255,255,.18)}
.ed-tools .ed-handle{color:#fff}

/* zona de "+": por cima do espaço entre os blocos, sem ocupar lugar */
.ed-ins{position:absolute;left:0;right:0;top:-1.25rem;height:1.25rem;z-index:5;padding:0;border:0;background:none;
  cursor:copy;opacity:0;transition:opacity .12s}
.ed-ins::before{content:"";position:absolute;left:0;right:0;top:50%;border-top:2px dashed var(--coral)}
.ed-ins > span{position:relative;display:inline-grid;place-items:center;min-width:1.5rem;height:1.5rem;padding:0 .45rem;
  border-radius:999px;background:var(--coral);color:#fff;font-weight:800;font-size:.85rem;top:-.12rem}
.ed-ins:hover,.ed-ins:focus-visible,.ed-ins.is-alvo,.ed-ins.is-over,.ed-dragging .ed-ins{opacity:1}
/* dentro de balões e colunas não há espaço entre os blocos: zona fina,
   para não roubar o clique do texto de cima */
.ed-blk .ed-blk > .ed-ins:not(.is-end){top:-.55rem;height:.7rem}
.ed-blk .ed-blk > .ed-ins:not(.is-end) > span{transform:scale(.8);top:-.4rem}
.ed-ins:focus-visible{outline:2px solid var(--coral);outline-offset:2px}
/* a última zona (fim da página ou do contêiner) é visível e ocupa lugar */
.ed-ins.is-end{position:relative;top:auto;height:auto;opacity:.75;display:block;width:100%;margin-top:.4rem;
  border:1.5px dashed color-mix(in srgb,var(--coral) 55%,var(--line));border-radius:var(--r-sm);padding:.45rem}
.ed-ins.is-end::before{display:none}
.ed-ins.is-end > span{background:none;color:var(--coral-d);top:0}
.ed-ins.is-end:hover,.ed-ins.is-end.is-alvo,.ed-ins.is-end.is-over{opacity:1;background:var(--coral-l)}
.b-compare > .ed-ins.is-end,.b-cards > .ed-ins.is-end,.rb-cols > .ed-ins.is-end{grid-column:1 / -1}

/* tradução faltando */
.ed-miss{position:absolute;left:-.4rem;top:-.55rem;z-index:4;background:var(--coral);color:#fff;font-size:.62rem;
  font-weight:800;padding:.1rem .35rem;border-radius:999px;pointer-events:none}

/* texto sendo editado no lugar */
.ed-editing{outline:2px solid var(--coral) !important;outline-offset:3px;background:color-mix(in srgb,var(--coral) 6%,transparent);
  cursor:text;white-space:pre-wrap;border-radius:4px}

/* ── painel lateral ───────────────────────────────────── */
.ed-panel{position:sticky;top:calc(var(--topbar-h,64px) + 4.4rem);max-height:calc(100vh - var(--topbar-h,64px) - 5.6rem);overflow:auto;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.ed-panel-in{padding:1rem 1.1rem 1.4rem;display:flex;flex-direction:column;gap:.8rem}
.ed-panel-head{display:flex;align-items:center;gap:.3rem}
.ed-panel-title{margin:0;flex:1;font-weight:800;color:var(--heading)}
.ed-panel-title small{display:block;font-weight:500;color:var(--ink-3);font-size:.75rem}
.ed-hint ul{margin:0;padding-left:1.1rem;font-size:.86rem;color:var(--ink-2);display:grid;gap:.35rem}

.ed-form{display:flex;flex-direction:column;gap:.75rem}
.ed-form .field input,.ed-form .field select,.ed-form .field textarea{padding:.55rem .7rem;font-size:.9rem}
.ed-form .field > span{font-size:.76rem}
.ed-sublabel{display:block;font-size:.76rem;font-weight:700;color:var(--ink-2);margin-bottom:.35rem}
.ed-bi{display:grid;grid-template-columns:1fr 1fr;gap:.45rem}
.ed-bi-label{grid-column:1 / -1;font-size:.78rem;font-weight:700;color:var(--ink-2)}
.ed-bi .field > span{font-size:.68rem;letter-spacing:.06em}
.ed-miss-inline{margin-left:.35rem;color:var(--coral-d);font-weight:700;font-size:.7rem}
.ed-check{display:flex;gap:.5rem;align-items:flex-start;font-size:.86rem;color:var(--ink-2);cursor:pointer}
.ed-check input{margin-top:.2rem}
.ed-cor input[type=color]{height:2.4rem;padding:.15rem}
.ed-emoji-sug{display:flex;flex-wrap:wrap;gap:.15rem;margin-top:.3rem}
.ed-emoji-sug button{border:1px solid var(--line);background:var(--surface-2);border-radius:8px;width:2rem;height:2rem;cursor:pointer}
.ed-link-btns{display:flex;align-items:center;gap:.25rem;flex-wrap:wrap;margin-top:-.2rem}
.ed-bi .ed-link-btns{grid-column:auto}
.ed-link-btns small{color:var(--ink-3);font-size:.7rem}
.ed-link-btns button{border:1px solid var(--line);background:var(--surface-2);border-radius:6px;font-size:.72rem;padding:.1rem .35rem;cursor:pointer}

.ed-items{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.4rem}
.ed-item{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2)}
.ed-item > summary{display:flex;align-items:center;gap:.4rem;padding:.45rem .6rem;cursor:pointer;font-size:.84rem}
.ed-item > summary > span:first-child{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ed-item-acts button{border:0;background:none;cursor:pointer;color:var(--ink-3);padding:.1rem .3rem;border-radius:6px}
.ed-item-acts button:hover{background:var(--surface);color:var(--ink)}
.ed-item-body{padding:.2rem .7rem .8rem;display:flex;flex-direction:column;gap:.6rem}
.ed-item .ed-item{background:var(--surface)}

.ed-pares{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.4rem}
.ed-par{display:grid;grid-template-columns:1fr 1fr auto;gap:.3rem}
.ed-par input{padding:.4rem .55rem;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-size:.86rem}

.ed-grade-wrap{overflow-x:auto}
.ed-grade{border-collapse:collapse;width:100%}
.ed-grade th,.ed-grade td{padding:.15rem}
.ed-grade input{width:100%;min-width:5.5rem;padding:.35rem .45rem;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);font:inherit;font-size:.82rem}
.ed-grade th input{font-weight:700;background:var(--surface-2)}
.ed-grade button{border:0;background:none;cursor:pointer;color:var(--ink-3)}
.ed-grade-acts{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.4rem}

.ed-midia{display:flex;flex-direction:column;gap:.5rem}
.ed-midia-acts{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}
.ed-midia-acts small{color:var(--ink-3);font-size:.78rem}
.ed-thumb{max-width:100%;max-height:150px;border-radius:var(--r-sm);border:1px solid var(--line);object-fit:contain;align-self:flex-start}
.ed-slot{display:flex;flex-direction:column;gap:.6rem;padding:.6rem;border:1px dashed var(--line);border-radius:var(--r-sm)}
.ed-fs{border:1px solid var(--line);border-radius:var(--r-sm);padding:.7rem .8rem;display:flex;flex-direction:column;gap:.6rem}
.ed-fs legend{font-size:.78rem;font-weight:700;color:var(--ink-2);padding:0 .3rem}
.ed-fs p{margin:0;font-size:.86rem}
.ed-json{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.78rem !important;line-height:1.45}
.ed-err{margin:0;color:var(--coral-d);font-size:.8rem}

/* paleta de blocos */
.ed-pal-group{margin:.4rem 0 0;font-size:.74rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.ed-pal-group small{text-transform:none;letter-spacing:0;font-weight:500}
.ed-palette{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem}
.ed-pal{display:flex;align-items:center;gap:.5rem;padding:.55rem .6rem;border:1px solid var(--line);border-radius:var(--r-sm);
  background:var(--surface-2);color:var(--ink);font:inherit;font-size:.82rem;text-align:left;cursor:pointer;transition:border-color .15s,transform .15s}
.ed-pal > span{font-size:1.1rem;width:1.4rem;text-align:center;flex:none}
.ed-pal b{font-weight:600;line-height:1.25}
.ed-pal:hover{border-color:var(--jade);transform:translateY(-1px)}
.ed-pal:focus-visible{outline:2px solid var(--jade);outline-offset:2px}
.ed-pal-esp > span{color:var(--gold-d)}

/* ── pré-visualização: o site de verdade, no tamanho do aparelho ── */
.ed-previa{display:flex;flex-direction:column;align-items:center;gap:.6rem}
.ed-device{background:var(--ink,#1d2b30);padding:12px;border-radius:30px;box-shadow:var(--shadow-lg,var(--shadow));max-width:100%}
.ed-device iframe{display:block;border:0;border-radius:20px;background:#fff;width:100%;height:78vh}
.ed-previa-celular .ed-device{width:414px}
.ed-previa-tablet .ed-device{width:844px}
.ed-previa-computador .ed-device{width:100%;border-radius:16px;padding:8px}
.ed-previa-computador .ed-device iframe{border-radius:10px}

/* foco visível em tudo do editor */
.ed-root button:focus-visible,.ed-root a:focus-visible,.ed-root summary:focus-visible{outline:2px solid var(--jade);outline-offset:2px}

/* ── telas menores: painel embaixo do canvas ──────────── */
@media (max-width:980px){
  .ed-grid{grid-template-columns:1fr}
  .ed-panel{position:static;max-height:none}
  .ed-kbd{display:none}
}
@media (max-width:600px){
  .ed-rename{grid-template-columns:1fr}
  .ed-bi{grid-template-columns:1fr}
  .ed-palette{grid-template-columns:1fr 1fr}
  .ed-tools b{display:none}
  .ed-row-acts .btn{padding:.25rem .4rem}
}

/* ── cor do bloco ─────────────────────────────────────── */
.ed-cores{border:1px solid var(--line);border-radius:var(--r-sm);padding:.55rem .7rem;background:var(--surface-2)}
.ed-cores > summary{cursor:pointer;font-weight:700;font-size:.86rem;color:var(--ink-2)}
.ed-cores[open] > summary{margin-bottom:.5rem}
.ed-cor-linha{display:grid;grid-template-columns:3.4rem 1fr;gap:.4rem;align-items:center;margin-bottom:.45rem}
.ed-cor-linha > span{font-size:.76rem;font-weight:700;color:var(--ink-2)}
.ed-swatches{display:flex;flex-wrap:wrap;gap:.25rem;align-items:center}
.ed-swatches button[data-h]{width:1.35rem;height:1.35rem;border-radius:50%;border:1px solid var(--line);background:var(--sw);cursor:pointer;padding:0}
.ed-swatches button[data-h].is-on{outline:2px solid var(--jade);outline-offset:2px}
.ed-swatches input[type=color]{width:1.9rem;height:1.5rem;padding:0;border:1px solid var(--line);border-radius:6px;background:none;cursor:pointer}
.ed-swatches [data-limpa]{border:0;background:none;color:var(--ink-3);cursor:pointer;font-size:.85rem}

/* ── áudio no trecho selecionado ──────────────────────── */
.ed-fala-btns{display:flex;align-items:center;gap:.3rem;flex-wrap:wrap}
.ed-bi .ed-fala-btns{grid-column:1 / -1}
.ed-fala-btns small{color:var(--ink-3);font-size:.7rem}
.ed-fala-btns button,.ed-fala-btns label{border:1px solid var(--line);background:var(--jade-l);color:var(--jade-d);border-radius:999px;
  font-size:.72rem;font-weight:600;padding:.15rem .55rem;cursor:pointer}

/* =========================================================
   EDITOR DE EXERCÍCIOS (aba "Exercícios" — js/exercise-editor.js)
   ========================================================= */
.ed-backup{display:inline-flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.ed-check-sm{font-size:.78rem;align-items:center}
.ed-versoes-lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}
.ed-versoes-lista li{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.4rem .6rem;
  border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);font-size:.86rem}

.xe-grid{display:grid;grid-template-columns:280px minmax(0,1fr);gap:1.1rem;align-items:start}
.xe-tree{position:sticky;top:calc(var(--topbar-h,64px) + .75rem);max-height:calc(100vh - var(--topbar-h,64px) - 2rem);overflow:auto;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:.6rem .4rem;box-shadow:var(--shadow)}
.xe-arvore,.xe-arvore ul{list-style:none;margin:0;padding:0}
.xe-arvore ul{padding-left:.9rem}
.xe-no{display:flex;align-items:center;gap:.15rem;border-radius:8px}
.xe-no.is-on{background:var(--jade-l)}
.xe-seta{width:1.3rem;flex:none;border:0;background:none;color:var(--ink-3);cursor:pointer;font-size:.8rem;text-align:center}
.xe-no-btn{flex:1;min-width:0;text-align:left;border:0;background:none;padding:.32rem .2rem;font:inherit;font-size:.85rem;color:var(--ink);
  cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.xe-no.is-on .xe-no-btn{font-weight:700;color:var(--jade-d)}
.xe-conta{font-size:.7rem;font-weight:700;color:var(--ink-3);background:var(--surface-2);border-radius:999px;padding:.05rem .45rem;margin-right:.2rem}
.xe-conta.is-warn{background:var(--coral-l);color:var(--coral-d)}

.xe-main{min-width:0;display:flex;flex-direction:column;gap:.9rem}
.xe-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.xe-head h2{margin:.2rem 0 0;font-size:1.25rem}
.xe-head .mini-hint{margin:.2rem 0 0}
.xe-onde{display:block;font-size:.78rem;font-weight:500;color:var(--ink-3)}
.xe-warn-txt{color:var(--coral-d)}
.xe-pub{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}

.xe-filtros{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;padding:.6rem .7rem;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--r-sm)}
.xe-filtros input[type=search],.xe-filtros select{padding:.45rem .6rem;border-radius:8px;border:1px solid var(--line);
  background:var(--surface-2);color:var(--ink);font:inherit;font-size:.84rem}
.xe-filtros input[type=search]{flex:1;min-width:200px}

.xe-lote{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;padding:.55rem .7rem;border-radius:var(--r-sm);
  background:var(--petrol-l);border:1px solid color-mix(in srgb,var(--petrol) 30%,var(--line))}
.xe-lote select{padding:.35rem .5rem;border-radius:8px;border:1px solid var(--line);font:inherit;font-size:.8rem;max-width:280px}
.xe-perigo{color:var(--coral-d);border-color:color-mix(in srgb,var(--coral) 50%,var(--line))}

.xe-lista{display:flex;flex-direction:column;gap:.35rem}
.xe-row{display:flex;align-items:center;gap:.6rem;padding:.45rem .6rem;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-sm)}
.xe-row:hover{border-color:var(--jade)}
.xe-row.is-marked{background:var(--jade-l)}
.xe-tipo{flex:none;width:8.5rem;font-size:.7rem;font-weight:700;color:var(--petrol);text-transform:uppercase;letter-spacing:.03em}
.xe-abre{flex:1;min-width:0;text-align:left;border:0;background:none;font:inherit;color:var(--ink);cursor:pointer;padding:.15rem;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.xe-abre small{display:block;color:var(--ink-3);font-size:.74rem;overflow:hidden;text-overflow:ellipsis}
.xe-badges{display:flex;gap:.25rem;flex:none}
.xe-row-acts{display:flex;flex:none}
.pill.pill-warn{background:var(--coral-l);color:var(--coral-d)}

.xe-matriz table{min-width:420px}
.xe-matriz td{text-align:center;font-weight:800}
.xe-matriz td small{font-weight:500;color:var(--ink-3)}
.xe-matriz td.is-warn{background:var(--coral-l);color:var(--coral-d)}
.xe-matriz td.is-mid{background:var(--gold-l)}
.xe-matriz td.is-ok{background:var(--jade-l);color:var(--jade-d)}
.xe-avisos{margin:.5rem 0 0;padding-left:1.1rem;font-size:.84rem;color:var(--coral-d)}
.xe-novo{display:flex;flex-direction:column;gap:.6rem}
.xe-novo p{margin:0}

.xe-validacao{padding:.6rem .85rem;border-radius:var(--r-sm);font-size:.86rem}
.xe-validacao.is-ok{background:var(--jade-l);color:var(--jade-d)}
.xe-validacao.is-warn{background:var(--coral-l);color:var(--coral-d)}
.xe-validacao ul{margin:.3rem 0 0;padding-left:1.1rem}
.xe-edit-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,440px);gap:1.1rem;align-items:start}
.xe-form{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.xe-previa-col{position:sticky;top:calc(var(--topbar-h,64px) + .75rem);display:flex;flex-direction:column;gap:.4rem}
.xe-previa-head{display:flex;align-items:center;justify-content:space-between}
.xe-previa{background:var(--cream,var(--surface-2));border:1px solid var(--line);border-radius:var(--r);padding:.8rem;max-height:calc(100vh - var(--topbar-h,64px) - 7rem);overflow:auto}

.xe-opcoes{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.4rem}
.xe-op{display:grid;grid-template-columns:auto 1fr auto;gap:.45rem;align-items:start;padding:.45rem;border:1px solid var(--line);
  border-radius:var(--r-sm);background:var(--surface-2)}
.xe-op.is-certa{border-color:var(--jade);background:var(--jade-l)}
.xe-op-radio{display:flex;align-items:center;gap:.25rem;font-weight:800;font-size:.85rem;padding-top:.35rem;cursor:pointer}
.xe-op-campos{display:flex;flex-direction:column;gap:.3rem;min-width:0}
.xe-op-campos input{padding:.4rem .55rem;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-size:.86rem}
.xe-op-blocos summary{cursor:pointer;font-size:.76rem;color:var(--ink-3)}

.ed-area{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.4rem}
.ed-area.is-nested{padding-left:.6rem;border-left:2px dashed var(--line)}
.ed-area-add{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}
.ed-area-add select{padding:.35rem .5rem;border-radius:8px;border:1px solid var(--line);font:inherit;font-size:.82rem;max-width:240px}

@media (max-width:1100px){ .xe-edit-grid{grid-template-columns:1fr} .xe-previa-col{position:static} }
@media (max-width:860px){ .xe-grid{grid-template-columns:1fr} .xe-tree{position:static;max-height:none} .xe-tipo{display:none} }

/* variações de um exercício (sai uma por sessão) */
.xe-variacoes{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.55rem .8rem;border-radius:var(--r-sm);background:var(--gold-l);font-size:.86rem}
.xe-variacoes .ed-seg button{padding:.3rem .6rem}
