/* render.css :: Render com IA (js/render.js) */
.rd-wrap { display: flex; flex-direction: column; gap: 18px; max-width: 1280px; }
.rd-h1 { font-family: var(--font-title); font-size: 26px; color: var(--ink); margin: 0 0 4px; }
.rd-intro p { color: var(--body); margin: 0; max-width: 760px; }
.rd-cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 18px; align-items: start; }
.rd-dir { position: sticky; top: 12px; }
@media (max-width: 1000px) { .rd-cols { grid-template-columns: minmax(0, 1fr); } .rd-dir { position: static; } }
.rd-form .field { margin-bottom: 14px; }
.rd-form input, .rd-form select, .rd-form textarea, .rd-editar textarea, .rd-chave-row input { width: 100%; box-sizing: border-box; }
.rd-dica { color: var(--muted); font-size: 12.5px; margin: 6px 0; }
.rd-tipos { display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 8px; }
.rd-tipo { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; padding: 10px; border: 1px solid var(--border);
  border-radius: 10px; background: var(--bg-surface); cursor: pointer; text-align: left; font-family: var(--font-ui); min-width: 0; }
.rd-tipo .av-ic { width: 28px; height: 28px; }
.rd-tipo-rot { font-weight: 700; font-size: 13px; color: var(--ink); }
.rd-tipo-sub { font-size: 11.5px; color: var(--muted); line-height: 1.3; }
.rd-tipo.on, .rd-q.on { border-color: var(--orange); box-shadow: 0 0 0 2px var(--orange-light); background: var(--orange-light); }
.rd-drop { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 26px 14px; border: 2px dashed var(--navy-border);
  border-radius: 12px; cursor: pointer; text-align: center; color: var(--body); background: var(--bg-zebra); }
.rd-drop.over { border-color: var(--orange); background: var(--orange-light); }
.rd-drop .av-ic { width: 40px; height: 40px; }
.rd-drop small { color: var(--muted); }
.rd-drop input { display: none; }
.rd-base { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.rd-base img { max-width: 220px; max-height: 150px; border-radius: 8px; border: 1px solid var(--border); object-fit: cover; }
.rd-paleta { border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px; margin-bottom: 14px; background: var(--bg-zebra); }
.rd-paleta summary { cursor: pointer; font-weight: 700; color: var(--ink); display: flex; align-items: center; gap: 8px; }
.rd-paleta summary .av-ic { width: 22px; height: 22px; }
.rd-check { display: flex; gap: 8px; align-items: flex-start; font-size: 13px; color: var(--body); margin: 0 0 12px; cursor: pointer; }
.rd-check input { width: auto; margin-top: 2px; }
.rd-qual { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.rd-q { display: flex; flex-direction: column; gap: 2px; padding: 9px; border: 1px solid var(--border); border-radius: 10px; background: var(--bg-surface);
  cursor: pointer; font-family: var(--font-ui); font-size: 11.5px; color: var(--muted); text-align: left; min-width: 0; }
.rd-q strong { color: var(--ink); font-size: 13px; }
@media (max-width: 480px) { .rd-qual { grid-template-columns: minmax(0, 1fr); } }
.rd-gerar { width: 100%; justify-content: center; padding: 13px; font-size: 15px; }
.rd-gerar[disabled] { opacity: .55; cursor: not-allowed; }
.rd-vazio { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; min-height: 320px; gap: 8px; color: var(--body); }
.rd-vazio .av-ic { width: 64px; height: 64px; opacity: .85; }
.rd-spin { width: 42px; height: 42px; border: 4px solid var(--orange-light); border-top-color: var(--orange); border-radius: 50%; animation: rd-giro 1s linear infinite; }
@keyframes rd-giro { to { transform: rotate(360deg); } }
.rd-aviso { width: 100%; box-sizing: border-box; background: #FFF4E5; border: 1px solid var(--orange-border); color: #7A3A0C; border-radius: 10px;
  padding: 10px 12px; font-size: 13.5px; margin-bottom: 12px; text-align: left; }
.rd-img { width: 100%; border-radius: 10px; display: block; }
.rd-cmp { position: relative; overflow: hidden; border-radius: 10px; user-select: none; }
.rd-cmp img { display: block; width: 100%; }
.rd-cmp .rd-cmp-antes { position: absolute; inset: 0; height: 100%; object-fit: cover; clip-path: inset(0 calc(100% - var(--pos)) 0 0); }
.rd-cmp-linha { position: absolute; top: 0; bottom: 0; left: var(--pos); width: 3px; margin-left: -1.5px; background: #fff; box-shadow: 0 0 6px rgba(0,0,0,.4); pointer-events: none; }
.rd-cmp-tag { position: absolute; top: 10px; background: rgba(12,21,37,.72); color: #fff; font-size: 11px; font-weight: 700; padding: 4px 8px; border-radius: 20px; pointer-events: none; }
.rd-cmp-tag.rd-l { left: 10px; }
.rd-cmp-tag.rd-r { right: 10px; }
.rd-cmp input[type=range] { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: ew-resize; margin: 0; }
.rd-meta { font-size: 12.5px; color: var(--muted); margin: 10px 0; overflow-wrap: anywhere; }
.rd-acoes { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.rd-acoes .btn { display: inline-flex; align-items: center; gap: 6px; text-decoration: none; }
.rd-acoes .av-ic { width: 18px; height: 18px; }
.rd-editar { border-top: 1px solid var(--border); padding-top: 12px; display: flex; flex-direction: column; gap: 8px; }
.rd-editar label { font-weight: 700; font-size: 13px; color: var(--ink); }
.rd-editar .btn { align-self: flex-start; }
.rd-vers { display: flex; gap: 8px; overflow-x: auto; margin-top: 12px; padding-bottom: 4px; }
.rd-v { flex: 0 0 auto; width: 92px; border: 2px solid var(--border); border-radius: 8px; padding: 0; background: none; cursor: pointer; position: relative; overflow: hidden; }
.rd-v img { width: 100%; height: 60px; object-fit: cover; display: block; }
.rd-v span { position: absolute; bottom: 3px; left: 3px; background: rgba(12,21,37,.75); color: #fff; font-size: 10.5px; padding: 1px 6px; border-radius: 10px; }
.rd-v.on, .rd-g.on { border-color: var(--orange); }
.rd-gal-top { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.rd-gal-top select { max-width: 100%; }
.rd-grid-gal { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.rd-g { border: 2px solid var(--border); border-radius: 10px; padding: 0; overflow: hidden; background: var(--bg-surface); cursor: pointer; text-align: left; min-width: 0; }
.rd-g img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.rd-g span { display: block; font-size: 11.5px; padding: 6px 8px; color: var(--body); overflow-wrap: anywhere; }
.rd-chave p { margin: 0 0 10px; color: var(--body); }
.rd-ok { display: flex; gap: 8px; align-items: center; }
.rd-ok .av-ic { width: 22px; height: 22px; }
.rd-passos { margin: 0 0 12px 18px; padding: 0; color: var(--body); font-size: 13.5px; }
.rd-passos li { margin-bottom: 4px; }
.rd-chave-row { display: flex; gap: 8px; flex-wrap: wrap; }
.rd-chave-row input { flex: 1 1 220px; min-width: 0; }
.rd-chave-msg { font-size: 13px; color: #7A3A0C; margin-top: 8px; min-height: 1em; }
.sc-head h2 .av-ic { width: 22px; height: 22px; vertical-align: -5px; margin-right: 4px; }
.rd-gerar { white-space: normal; line-height: 1.3; }
.rd-chave-row input[type=password] { font-family: var(--font-ui); font-size: 13px; color: var(--ink); background: var(--bg-surface);
  border: 1px solid #D1D5E8; border-radius: var(--r-sm); padding: 8px 10px; outline: none; line-height: 1.4; }
.rd-custo { font-size: 12px; color: var(--muted); text-align: center; margin: 6px 0 0; }

/* ---------- moodboard, plugin do SketchUp e vídeo do render ---------- */
.rd-info { display: flex; gap: 8px; align-items: center; background: #EEF7EE; border: 1px solid #B9DDB9; color: #1E5B2A; border-radius: 10px;
  padding: 8px 12px; font-size: 13px; margin-bottom: 8px; overflow-wrap: anywhere; }
.rd-info .av-ic { width: 20px; height: 20px; flex: 0 0 auto; }
.rd-plugin { display: flex; flex-direction: column; gap: 2px; margin-top: 8px; font-size: 12px; color: var(--muted); }
.rd-plugin a { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: var(--navy-700); text-decoration: none; font-size: 12.5px; align-self: flex-start; }
.rd-plugin a:hover { color: var(--orange); text-decoration: underline; }
.rd-plugin .av-ic { width: 20px; height: 20px; }
.rd-plugin small { font-size: 11.5px; line-height: 1.4; overflow-wrap: anywhere; }
.rd-refs { display: flex; flex-wrap: wrap; gap: 8px; }
.rd-ref { position: relative; width: 96px; height: 72px; border-radius: 8px; overflow: hidden; border: 1px solid var(--border); }
.rd-ref img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rd-ref-x { position: absolute; top: 3px; right: 3px; width: 22px; height: 22px; border-radius: 50%; border: none; cursor: pointer;
  background: rgba(12,21,37,.75); color: #fff; font-size: 15px; line-height: 22px; padding: 0; }
.rd-ref-add { width: 96px; height: 72px; box-sizing: border-box; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
  border: 2px dashed var(--navy-border); border-radius: 8px; background: var(--bg-zebra); cursor: pointer; font-size: 11.5px; color: var(--body); }
.rd-ref-add:hover { border-color: var(--orange); }
.rd-ref-add .av-ic { width: 24px; height: 24px; }
.rd-ref-add input { display: none; }
.rd-conceito { border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px; margin-bottom: 14px; background: var(--bg-zebra); }
.rd-conc-top { display: flex; align-items: center; gap: 8px; color: var(--ink); margin-bottom: 8px; }
.rd-conc-top .av-ic { width: 22px; height: 22px; }
.rd-conceito .rd-acoes { margin: 8px 0 0; }
.rd-conceito .btn { white-space: normal; line-height: 1.3; text-align: left; }
.rd-vid-novo { border: 1px solid var(--orange-border); background: #FFFAF5; border-radius: 10px; padding: 12px; margin-bottom: 14px;
  display: flex; flex-direction: column; gap: 8px; }
.rd-vid-novo > label { font-weight: 700; font-size: 13px; color: var(--ink); }
.rd-vid-novo-tit { display: flex; align-items: center; gap: 8px; color: var(--ink); }
.rd-vid-novo-tit .av-ic, .rd-vids-tit .av-ic { width: 24px; height: 24px; }
.rd-vid-novo .rd-acoes { margin: 4px 0 0; }
.rd-vid-novo .rd-dica { margin: 0; }
.rd-vid-btn { white-space: normal; line-height: 1.3; }
.rd-vid-btn[disabled] { opacity: .55; cursor: not-allowed; }
.rd-vids { display: flex; flex-direction: column; gap: 10px; margin-bottom: 14px; }
.rd-vids:empty { display: none; }
.rd-vids-tit { display: flex; align-items: center; gap: 8px; font-weight: 700; font-size: 13.5px; color: var(--ink); }
.rd-vid { border: 1px solid var(--border); border-radius: 10px; padding: 10px; background: var(--bg-surface); min-width: 0; }
.rd-vid video { width: 100%; max-height: 420px; border-radius: 8px; background: #0C1525; display: block; }
.rd-vid-meta { font-size: 12.5px; color: var(--muted); margin: 8px 0; }
.rd-vid .rd-acoes { margin: 0; }
.rd-vid .av-icl { width: 16px; height: 16px; }
.rd-vid-gerando { display: flex; gap: 12px; align-items: flex-start; }
.rd-spin-p { width: 28px; height: 28px; border-width: 3px; flex: 0 0 auto; }
.rd-vid-txt { display: flex; flex-direction: column; gap: 4px; min-width: 0; flex: 1 1 auto; font-size: 13px; color: var(--body); }
.rd-vid-txt strong { color: var(--ink); }
.rd-vid-txt small { color: var(--muted); font-size: 12px; }
.rd-barra { height: 6px; border-radius: 6px; background: var(--orange-light); overflow: hidden; position: relative; }
.rd-barra i { position: absolute; top: 0; bottom: 0; width: 35%; border-radius: 6px; background: var(--orange); animation: rd-barra 1.6s ease-in-out infinite; }
@keyframes rd-barra { 0% { left: -35%; } 100% { left: 100%; } }
.rd-vid-erro .rd-aviso { margin-bottom: 8px; }
.rd-g { position: relative; }
.rd-g-vid { position: absolute; top: 6px; right: 6px; width: 26px; height: 26px; border-radius: 50%; background: rgba(12,21,37,.78); }
.rd-g-vid::after { content: ''; position: absolute; top: 7px; left: 10px; border-style: solid; border-width: 6px 0 6px 9px;
  border-color: transparent transparent transparent #fff; }
@media (max-width: 480px) {
  .rd-acoes .btn { white-space: normal; line-height: 1.3; }
  .rd-vid-novo .btn-p { min-width: 0; flex: 1 1 100%; }
}

/* ---------- panorama 360°, edição de área e galeria central ---------- */
/* duas classes: o CSS do Pannellum (.pnlm-container, height 100%) carrega depois e não pode zerar a altura */
.rd-out .rd-pano { width: 100%; height: 440px; border-radius: 10px; overflow: hidden; background: #0C1525; }
@media (max-width: 600px) { .rd-out .rd-pano { height: 300px; } }
.rd-pano .rd-aviso { margin: 12px; width: auto; }
.rd-pano-fonte { display: flex; gap: 10px; align-items: center; font-size: 12.5px; color: var(--body); margin: 8px 0; }
.rd-pano-fonte img { width: 96px; height: 64px; object-fit: cover; border-radius: 6px; border: 1px solid var(--border); flex: 0 0 auto; }
.rd-360-publico { position: fixed; inset: 0; z-index: 2147483000; background: #0C1525; display: flex; flex-direction: column; }
.rd-360-topo { color: #fff; font-family: var(--font-ui); font-size: 13.5px; font-weight: 600; padding: 10px 16px; }
.rd-360-vista { flex: 1 1 auto; min-height: 0; }
.rd-360-erro { color: #fff; padding: 16px; font-family: var(--font-ui); }
.rd-area { display: flex; flex-direction: column; gap: 8px; }
.rd-area-tela { position: relative; border-radius: 10px; overflow: hidden; line-height: 0; }
.rd-area-tela img { width: 100%; display: block; user-select: none; -webkit-user-drag: none; }
.rd-area-tela canvas { position: absolute; inset: 0; width: 100%; height: 100%; opacity: .55; touch-action: none; cursor: crosshair; }
.rd-area-ctl { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.rd-area-ctl .btn { display: inline-flex; align-items: center; gap: 6px; }
.rd-area-ctl .av-icl { width: 15px; height: 15px; }
.rd-area-pincel { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 700; color: var(--ink); flex: 1 1 220px; min-width: 0; }
.rd-area-pincel input[type=range] { flex: 1 1 auto; min-width: 80px; max-width: 200px; accent-color: var(--orange); }
.rd-area-dot { display: inline-block; flex: 0 0 auto; border-radius: 50%; background: rgba(226,117,38,.55); border: 1px solid var(--orange); }
.rd-area > label { font-weight: 700; font-size: 13px; color: var(--ink); }
.rd-area textarea { width: 100%; box-sizing: border-box; }
.rd-area .rd-dica { margin: 0; }
.rd-area .rd-area-erro { color: #7A3A0C; font-weight: 600; }
.rd-area .rd-acoes { margin-bottom: 0; }
.rd-area-ok { white-space: normal; line-height: 1.3; }
.rd-det { border-top: 1px solid var(--border); padding-top: 10px; margin-bottom: 12px; }
.rd-det-linha { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: 12.5px; color: var(--body); overflow-wrap: anywhere; }
.rd-det-linha b { color: var(--ink); font-weight: 700; margin-right: 4px; }
.rd-det-prompt summary { cursor: pointer; font-weight: 700; font-size: 13px; color: var(--ink); margin: 8px 0; }
.rd-det-prompt pre { white-space: pre-wrap; overflow-wrap: anywhere; font-family: var(--font-ui); font-size: 12px; line-height: 1.5; color: var(--body);
  background: var(--bg-zebra); border: 1px solid var(--border); border-radius: 8px; padding: 10px; max-height: 260px; overflow: auto; margin: 0 0 8px; }
.rd-det .rd-acoes { margin-bottom: 0; }
.rd-det .btn { white-space: normal; line-height: 1.3; text-align: left; }
.rd-det .av-icl { width: 15px; height: 15px; }
.rd-gal-filtros { display: grid; grid-template-columns: minmax(0, 2fr) repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 8px; }
@media (max-width: 760px) { .rd-gal-filtros { grid-template-columns: minmax(0, 1fr); } }
.rd-gal-filtros select, .rd-gal-filtros input { width: 100%; box-sizing: border-box; min-width: 0; }
.rd-gal-filtros input[type=search] { font-family: var(--font-ui); font-size: 13px; color: var(--ink); background: var(--bg-surface);
  border: 1px solid #D1D5E8; border-radius: var(--r-sm); padding: 8px 10px; outline: none; line-height: 1.4; }
.rd-gal-filtros input[type=search]:focus { border-color: var(--orange); }
.rd-gal-conta { margin: 0 0 10px; }
.rd-g .rd-g-t { padding-bottom: 0; }
.rd-g .rd-g-s { font-size: 10.5px; color: var(--muted); padding-top: 1px; }
.rd-g-360 { position: absolute; top: 6px; left: 6px; background: rgba(12,21,37,.78); color: #fff; font-size: 10.5px; font-weight: 700;
  font-style: normal; padding: 2px 7px; border-radius: 10px; }
/* o visualizador fica preso no topo ao rolar o formulário; quando é mais alto que a tela, rola por dentro */
@media (min-width: 1001px) {
  .rd-dir { max-height: calc(100vh - 24px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; border-radius: 12px; }
}

/* ---------- variações: etiqueta, "criar a partir desta imagem" e painel de opções ---------- */
.rd-etq { display: flex; align-items: flex-start; gap: 6px; background: var(--navy-950); color: #fff; border-radius: 10px; padding: 7px 12px;
  font-size: 13px; font-weight: 600; margin-bottom: 8px; overflow-wrap: anywhere; }
.rd-etq .av-icl { width: 16px; height: 16px; flex: 0 0 auto; margin-top: 1px; color: var(--orange); }
.rd-criar-tit { display: flex; flex-direction: column; gap: 2px; margin: 4px 0 8px; }
.rd-criar-tit strong { font-size: 13.5px; color: var(--ink); }
.rd-criar-tit span { font-size: 12px; color: var(--muted); }
.rd-criar { display: grid; grid-template-columns: repeat(auto-fill, minmax(132px, 1fr)); gap: 8px; margin-bottom: 14px; }
.rd-criar-b { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; padding: 10px; border: 1px solid var(--border); border-radius: 10px;
  background: var(--bg-surface); cursor: pointer; text-align: left; font-family: var(--font-ui); min-width: 0; }
.rd-criar-b:hover { border-color: var(--orange-border); background: #FFFAF5; }
.rd-criar-b.on { border-color: var(--orange); box-shadow: 0 0 0 2px var(--orange-light); background: var(--orange-light); }
.rd-criar-b .av-ic { width: 26px; height: 26px; }
.rd-criar-b strong { font-size: 13px; color: var(--ink); line-height: 1.25; }
.rd-criar-b span { font-size: 11.5px; color: var(--muted); line-height: 1.3; overflow-wrap: anywhere; }
.rd-var { border: 1px solid var(--orange-border); background: #FFFAF5; border-radius: 10px; padding: 12px; margin-bottom: 14px;
  display: flex; flex-direction: column; gap: 8px; }
.rd-var-tit { display: flex; align-items: center; gap: 8px; color: var(--ink); }
.rd-var-tit .av-ic { width: 24px; height: 24px; }
.rd-var .rd-dica { margin: 0; }
.rd-var > label { font-weight: 700; font-size: 13px; color: var(--ink); }
.rd-var textarea { width: 100%; box-sizing: border-box; }
.rd-var .rd-acoes { margin: 2px 0 0; }
.rd-var .rd-aviso { margin: 0; }
.rd-var-btn[disabled] { opacity: .55; cursor: not-allowed; }
.rd-opcoes { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.rd-opcoes .rd-q span { line-height: 1.3; overflow-wrap: anywhere; }
@media (max-width: 480px) { .rd-opcoes { grid-template-columns: repeat(2, minmax(0, 1fr)); } .rd-criar { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---------- troca de peça (edição de área com peça do catálogo) ---------- */
.rd-area-modo { display: flex; flex-direction: column; gap: 8px; }
.rd-area-modo > label, .rd-peca > label, #rdPeca > label { font-weight: 700; font-size: 13px; color: var(--ink); }
.rd-seg { display: flex; flex-wrap: wrap; gap: 6px; }
.rd-seg-b { display: inline-flex; align-items: center; gap: 6px; flex: 1 1 160px; justify-content: center; padding: 8px 12px; border: 1px solid var(--border);
  border-radius: 999px; background: var(--bg-surface); color: var(--body); font: 600 12.5px/1.3 var(--font-ui); cursor: pointer; text-align: center; }
.rd-seg-b .av-icl { width: 15px; height: 15px; flex: 0 0 auto; }
.rd-seg-b.on { border-color: var(--orange); background: var(--orange-light); color: var(--ink); box-shadow: 0 0 0 1px var(--orange); }
.rd-seg-f .rd-seg-b { flex: 1 1 140px; }
#rdPeca { display: flex; flex-direction: column; gap: 8px; }
.rd-peca-q { width: 100%; box-sizing: border-box; font-family: var(--font-ui); font-size: 13px; color: var(--ink); background: var(--bg-surface);
  border: 1px solid #D1D5E8; border-radius: var(--r-sm); padding: 8px 10px; outline: none; line-height: 1.4; }
.rd-peca-q:focus { border-color: var(--orange); }
.rd-peca-lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px; max-height: 420px; overflow-y: auto; padding: 2px; }
.rd-peca-lista .rd-aviso, .rd-peca-lista .rd-dica { grid-column: 1 / -1; margin: 0; }
.rd-peca-it { display: flex; flex-direction: column; gap: 3px; padding: 6px; border: 1px solid var(--border); border-radius: 10px; background: var(--bg-surface);
  cursor: pointer; text-align: left; font-family: var(--font-ui); min-width: 0; }
.rd-peca-it:hover { border-color: var(--orange); }
.rd-peca-img { position: relative; display: flex; align-items: center; justify-content: center; aspect-ratio: 1 / 1; background: #fff; border-radius: 8px; overflow: hidden; }
.rd-peca-img .rd-peca-ft { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; background: #fff; }
.rd-peca-img .av-ic { width: 40px; height: 40px; opacity: .7; }
.rd-peca-nome { font-size: 12.5px; font-weight: 700; color: var(--ink); line-height: 1.3; overflow-wrap: anywhere; }
.rd-peca-sub { font-size: 11.5px; color: var(--muted); line-height: 1.3; overflow-wrap: anywhere; }
.rd-peca-sel { display: flex; gap: 12px; align-items: flex-start; border: 1px solid var(--border); border-radius: 10px; padding: 10px; background: var(--bg-surface); }
.rd-peca-foto { flex: 0 0 auto; width: 104px; height: 104px; border-radius: 8px; background: #fff; border: 1px solid var(--border);
  display: flex; align-items: center; justify-content: center; overflow: hidden; }
.rd-peca-foto img { width: 100%; height: 100%; object-fit: contain; }
.rd-peca-foto .av-ic { width: 44px; height: 44px; opacity: .7; }
.rd-peca-info { display: flex; flex-direction: column; gap: 3px; min-width: 0; flex: 1 1 auto; font-size: 12.5px; color: var(--body); overflow-wrap: anywhere; }
.rd-peca-info strong { font-size: 14px; color: var(--ink); line-height: 1.3; }
.rd-peca-kicker { font-size: 10.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--orange); }
.rd-peca-info .rd-acoes { margin: 6px 0 0; }
.rd-peca-info .rd-dica { margin: 4px 0 0; }
.rd-peca-info .rd-ok { font-weight: 700; color: #1E5B2A; }
.rd-peca-up { position: relative; cursor: pointer; }
.rd-peca-up input { display: none; }
.rd-peca-card { margin-bottom: 14px; }
.rd-peca-card .rd-peca-sel { border-color: var(--orange-border); background: #FFFAF5; }
@media (max-width: 480px) {
  .rd-peca-sel { flex-direction: column; }
  .rd-peca-foto { width: 100%; height: 180px; }
  .rd-peca-lista { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---------- render em lote ---------- */
.rd-lote .fg { margin-bottom: 4px; }
.rd-lote select { width: 100%; box-sizing: border-box; }
.rd-lote .field { margin-bottom: 12px; }
.rd-lote-conta { display: flex; flex-direction: column; gap: 3px; background: var(--bg-zebra); border: 1px solid var(--border); border-radius: 10px;
  padding: 10px 12px; margin-bottom: 12px; font-size: 13px; color: var(--body); }
.rd-lote-conta strong { color: var(--ink); font-size: 15px; }
.rd-lote-ok { white-space: normal; line-height: 1.3; }
.rd-lote-prog { display: flex; flex-direction: column; gap: 2px; margin-bottom: 8px; }
.rd-lote-prog strong { font-size: 15px; color: var(--ink); }
.rd-lote-prog span { font-size: 12.5px; color: var(--muted); }
.rd-lote-barra { height: 8px; border-radius: 8px; background: var(--orange-light); overflow: hidden; margin-bottom: 12px; }
.rd-lote-barra i { display: block; height: 100%; background: var(--orange); border-radius: 8px; transition: width .4s; }
.rd-lote-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 10px; margin-top: 4px; }
.rd-lote-it { display: flex; flex-direction: column; gap: 8px; border: 1px solid var(--border); border-radius: 10px; padding: 8px; background: var(--bg-surface); min-width: 0; }
.rd-lote-img { width: 100%; aspect-ratio: 16 / 9; border-radius: 6px; overflow: hidden; background: var(--bg-zebra); display: flex; align-items: center; justify-content: center; }
.rd-lote-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rd-lote-txt { display: flex; flex-direction: column; gap: 4px; min-width: 0; flex: 1 1 auto; font-size: 12px; color: var(--muted); overflow-wrap: anywhere; }
.rd-lote-txt strong { font-size: 13px; color: var(--ink); line-height: 1.3; }
.rd-lote-txt select { font-size: 12.5px; width: 100%; }
.rd-lote-txt .btn { align-self: flex-start; padding: 4px 10px; font-size: 12px; }
.rd-lote-st { font-weight: 700; color: var(--body); }
.rd-lote-pronto { border-color: #B9DDB9; }
.rd-lote-pronto .rd-lote-st { color: #1E5B2A; }
.rd-lote-gerando { border-color: var(--orange-border); background: #FFFAF5; }
.rd-lote-msg, .rd-lote-erro .rd-lote-st, .rd-lote-invalida .rd-lote-st { color: #7A3A0C; }
.rd-lote-it.rd-lote-erro, .rd-lote-it.rd-lote-invalida { border-color: var(--orange-border); }
.rd-lote-parado { opacity: .75; }

/* ---------- tour 360°: editor ---------- */
body.rd-tour-aberto { overflow: hidden; }
.rd-tour { position: fixed; inset: 0; z-index: 8500; background: rgba(12,21,37,.72); display: flex; align-items: flex-start; justify-content: center;
  overflow-y: auto; padding: 16px; box-sizing: border-box; }
.rd-tour-caixa { width: 100%; max-width: 1240px; background: var(--bg-surface, #fff); border-radius: 14px; box-shadow: 0 20px 60px rgba(0,0,0,.35);
  padding: 16px; box-sizing: border-box; display: flex; flex-direction: column; gap: 10px; font-family: var(--font-ui); color: var(--body); min-width: 0; }
.rd-tour-topo { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: space-between; }
.rd-tour-topo h2 { margin: 0; font-family: var(--font-title); font-size: 22px; color: var(--ink); display: flex; align-items: center; gap: 8px; overflow-wrap: anywhere; min-width: 0; }
.rd-tour-topo h2 .av-ic { width: 28px; height: 28px; flex: 0 0 auto; }
.rd-tour-intro { margin: 0; }
.rd-tour-corpo { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 16px; align-items: start; }
@media (max-width: 900px) { .rd-tour-corpo { grid-template-columns: minmax(0, 1fr); } }
.rd-tour-vista { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.rd-tour .rd-tour-pano { width: 100%; height: 440px; border-radius: 10px; overflow: hidden; background: #0C1525; position: relative; }
@media (max-width: 600px) { .rd-tour .rd-tour-pano { height: 300px; } .rd-tour { padding: 8px; } .rd-tour-caixa { padding: 12px; } }
.rd-tour .rd-tour-pano.rd-tour-pondo { outline: 3px solid var(--orange); outline-offset: -3px; }
.rd-tour-pano.rd-tour-pondo .pnlm-dragfix, .rd-tour-pano.rd-tour-pondo .pnlm-render-container { cursor: crosshair !important; }
.rd-tour-lado { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.rd-tour h3 { margin: 0 0 4px; font-size: 14px; color: var(--ink); display: flex; align-items: center; gap: 6px; }
.rd-tour h3 .av-icl { width: 16px; height: 16px; }
.rd-tour .rd-dica { margin: 4px 0; }
.rd-tour-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.rd-tour-cena { display: flex; gap: 10px; align-items: flex-start; border: 1px solid var(--border); border-radius: 10px; padding: 8px; background: var(--bg-surface); }
.rd-tour-cena.on { border-color: var(--orange); box-shadow: 0 0 0 2px var(--orange-light); }
.rd-tour-mini { flex: 0 0 auto; width: 96px; height: 64px; padding: 0; border: 0; border-radius: 6px; overflow: hidden; background: #0C1525; cursor: pointer; }
.rd-tour-mini img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rd-tour-cena-txt { display: flex; flex-direction: column; gap: 4px; min-width: 0; flex: 1 1 auto; }
.rd-tour-cena-txt input[type=text] { width: 100%; box-sizing: border-box; }
.rd-tour-bts { display: flex; flex-wrap: wrap; gap: 6px; }
.rd-tour-bts .btn { padding: 4px 10px; font-size: 12px; }
.rd-tour-add, .rd-tour-nova { display: flex; flex-direction: column; gap: 6px; }
.rd-tour-add label, .rd-tour-nova label { font-weight: 700; font-size: 13px; color: var(--ink); }
.rd-tour-add select, .rd-tour-nova select { width: 100%; box-sizing: border-box; }
.rd-tour-add .btn, .rd-tour-nova .btn { align-self: flex-start; }
.rd-tour-portas { display: flex; flex-direction: column; gap: 8px; border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px; background: var(--bg-zebra); }
.rd-tour-portas > strong { color: var(--ink); font-size: 14px; overflow-wrap: anywhere; }
.rd-tour-portas .rd-acoes { margin: 0; }
.rd-tour-pl { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.rd-tour-pl li { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: space-between; font-size: 13px; color: var(--body); overflow-wrap: anywhere; }
.rd-tour-pl li span { display: inline-flex; align-items: center; gap: 6px; min-width: 0; }
.rd-tour-pl .av-icl { width: 15px; height: 15px; flex: 0 0 auto; }
.rd-tour-pl .btn { padding: 4px 10px; font-size: 12px; }
.rd-tour-dica-on { color: #7A3A0C; font-weight: 700; }
.rd-tour-pub { display: flex; flex-direction: column; gap: 6px; border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px; }
.rd-tour-pub textarea { width: 100%; box-sizing: border-box; font-size: 12.5px; line-height: 1.4; resize: none; overflow-wrap: anywhere; word-break: break-all; }
.rd-tour-pub .rd-acoes { margin: 0; }
.rd-tour-pub h3 + .rd-dica { margin-top: 0; }
.rd-tour-rodape { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; justify-content: space-between; border-top: 1px solid var(--border); padding-top: 10px; }
.rd-tour-rodape .rd-acoes { margin: 0; }
.rd-tour-st { font-size: 13px; color: var(--muted); overflow-wrap: anywhere; }
.rd-tour-st-erro { color: #7A3A0C; font-weight: 700; }
.rd-tour .btn .av-icl { width: 15px; height: 15px; }

/* portas do tour (hotspots do Pannellum): rótulo sempre visível, que quebra linha */
.pnlm-hotspot-base.rd-porta { display: flex; align-items: center; gap: 6px; padding: 5px 12px 5px 5px; max-width: 190px; box-sizing: border-box;
  background: rgba(12,21,37,.82); color: #fff; border: 2px solid #E27526; border-radius: 999px; cursor: pointer;
  font: 600 12.5px/1.25 'Montserrat', sans-serif; box-shadow: 0 4px 14px rgba(0,0,0,.35); }
.pnlm-hotspot-base.rd-porta:hover { background: #E27526; }
.rd-porta-seta { flex: 0 0 auto; width: 22px; height: 22px; border-radius: 50%; background: #E27526; position: relative; }
.rd-porta-seta::after { content: ''; position: absolute; left: 8px; top: 6px; border-style: solid; border-width: 5px 0 5px 8px; border-color: transparent transparent transparent #fff; }
.pnlm-hotspot-base.rd-porta:hover .rd-porta-seta { background: #0C1525; }
.rd-porta-txt { white-space: normal; overflow-wrap: anywhere; }

/* ---------- tour 360°: visualizador (público, portal e pré-visualização) ---------- */
.rd-tv-topo { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; justify-content: space-between; }
.rd-tv-tit { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.rd-tv-tit strong { font-size: 15px; overflow-wrap: anywhere; }
.rd-tv-tit span { font-size: 12.5px; font-weight: 500; color: rgba(255,255,255,.75); overflow-wrap: anywhere; }
.rd-tv-fechar { appearance: none; border: 1px solid rgba(255,255,255,.5); background: transparent; color: #fff; border-radius: 999px; padding: 7px 14px;
  font: 600 13px/1.2 'Montserrat', sans-serif; cursor: pointer; }
.rd-tv-fechar:hover { background: #E27526; border-color: #E27526; }
.rd-tv-chips { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 16px 10px; }
.rd-tv-chip { appearance: none; border: 1px solid rgba(255,255,255,.35); background: rgba(255,255,255,.06); color: #fff; border-radius: 999px; padding: 6px 12px;
  font: 600 12.5px/1.25 'Montserrat', sans-serif; cursor: pointer; text-align: left; max-width: 100%; overflow-wrap: anywhere; }
.rd-tv-chip.on { background: #E27526; border-color: #E27526; }
.rd-tv-vista { position: relative; }
@media (max-width: 600px) { .rd-tv-chips { padding: 0 10px 8px; } .rd-360-topo.rd-tv-topo { padding: 10px; } }

/* saldo de créditos à vista; a chave própria fica guardada em Opções avançadas */
.rd-saldo-linha { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; }
.rd-saldo-linha span { display: inline-flex; align-items: center; gap: 6px; color: var(--body); }
.rd-saldo-linha a { font-weight: 700; color: var(--orange); }
.rd-avancado { margin-top: 10px; border-top: 1px solid var(--border); padding-top: 8px; }
.rd-avancado summary { cursor: pointer; font-size: 12.5px; font-weight: 600; color: var(--muted); }
.rd-avancado-corpo { margin-top: 10px; display: flex; flex-direction: column; gap: 10px; }
.rd-avancado:first-child { margin-top: 0; border-top: 0; padding-top: 0; }
