/* Biblioteca visual e projetos locais do Encartê */
.template-library-modal{width:min(960px,calc(100vw - 28px));max-height:calc(100dvh - 28px);overflow:auto;padding:24px}
.template-library-modal .modal-head{position:sticky;top:-24px;z-index:3;margin:-24px -24px 0;padding:22px 24px 14px;background:#292f35ee;backdrop-filter:blur(12px);border-bottom:1px solid #3d4548}
.template-library-modal .modal-intro{margin:10px 0 14px}
.template-library-kicker{display:flex;align-items:center;gap:8px;color:#bacd8c;font-size:9px;font-weight:800;letter-spacing:1px;text-transform:uppercase}
.template-category-tabs{display:flex;gap:7px;overflow-x:auto;padding:2px 0 11px;scrollbar-width:thin}
.template-category-tabs button{flex:none;border:1px solid #414a4b;border-radius:999px;background:#252b30;color:#b8c0b8;padding:8px 12px;font-size:9px;font-weight:800;white-space:nowrap}
.template-category-tabs button:hover,.template-category-tabs button.active{border-color:#94b64b;background:#313a31;color:#d8efaa}
.template-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-top:8px}
.template-card{position:relative;min-width:0;overflow:hidden;border:1px solid #41494b;border-radius:14px;background:linear-gradient(160deg,#2c3238,#22272c);box-shadow:0 9px 22px #11151a35;transition:border-color .18s,transform .18s,box-shadow .18s}
.template-card:hover{border-color:#b1d45b;transform:translateY(-3px);box-shadow:0 13px 26px #11151a65}
.template-preview{--tpl-header-bg:var(--tpl-primary);--tpl-footer-bg:var(--tpl-primary);--tpl-card:#fffdf0e8;position:relative;display:flex;min-height:205px;overflow:hidden;flex-direction:column;justify-content:space-between;padding:15px;background:var(--tpl-bg);color:var(--tpl-ink)}
.template-preview::before{position:absolute;inset:0;content:'';background:radial-gradient(ellipse at 92% 2%,var(--tpl-accent)75,transparent 39%),radial-gradient(ellipse at 2% 100%,var(--tpl-price)24,transparent 48%);opacity:.72;pointer-events:none}
.template-preview>*{position:relative;z-index:1}
.template-preview-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.template-preview-head span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:8px;font-weight:950;letter-spacing:1px;color:var(--tpl-ink)}
.template-preview-head i{display:grid;width:29px;height:29px;place-items:center;border:2px solid #ffffff80;border-radius:50%;background:var(--tpl-accent);color:var(--tpl-ink);font-size:10px;font-style:normal;font-weight:950;box-shadow:0 3px 10px #1114}
.template-preview-title{max-width:92%;margin:5px 0;color:var(--tpl-ink);font-size:21px;font-weight:1000;letter-spacing:-.8px;line-height:.94;text-shadow:0 2px 10px #0002;white-space:pre-line}
.template-preview-badge{align-self:flex-start;border:1px solid #ffffff6e;border-radius:999px;background:var(--tpl-accent);color:var(--tpl-ink);padding:6px 9px;font-size:7px;font-weight:950;letter-spacing:.6px;box-shadow:0 4px 8px #0002}
.template-preview-price{display:flex;align-items:baseline;gap:4px;align-self:flex-end;margin-top:-16px;border:2px solid #fff9;border-radius:8px 8px 18px 8px;background:var(--tpl-price);padding:6px 9px;color:#fff;font-size:12px;font-weight:1000;box-shadow:0 4px 10px #1115;transform:rotate(-3deg)}
.template-preview-price small{font-size:7px}
.template-preview-products{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;width:76%;margin:0 0 2px}
.template-preview-products i{display:flex;min-height:32px;align-items:center;justify-content:space-around;gap:2px;border:1px solid #ffffff95;border-radius:7px;background:var(--tpl-card,#fffdf0e8);color:#263429;font-size:13px;font-style:normal;box-shadow:0 3px 6px #17211b1f}
.template-preview-products b{font-size:12px}
.template-preview-products small{align-self:flex-end;border-radius:3px;background:var(--tpl-price);padding:2px 3px;color:white;font-size:6px;font-weight:950}
.template-preview.is-complete{background:linear-gradient(145deg,var(--tpl-bg) 0 58%,var(--tpl-footer-bg,var(--tpl-primary)) 58%)}
.template-preview.is-complete .template-preview-title{font-size:25px;max-width:77%}
.template-preview.is-header{min-height:154px;justify-content:flex-start;background:var(--tpl-header-bg,var(--tpl-primary));color:#fff}
.template-preview.is-header::before{background:radial-gradient(ellipse at 100% 110%,var(--tpl-accent)78,transparent 49%);opacity:.9}
.template-preview.is-header .template-preview-head span,.template-preview.is-header .template-preview-title{color:#fff}
.template-preview-header-demo{display:flex;align-items:center;gap:8px;margin-top:auto;border-radius:5px 5px 34px 5px;background:var(--tpl-bg);padding:9px 11px;color:var(--tpl-ink);box-shadow:0 6px 13px #1114}
.template-preview-store{display:grid;place-items:center;width:34px;height:28px;flex:none;border-radius:6px;background:var(--tpl-accent);font-size:5px;font-weight:950;text-align:center}
.template-preview-header-demo strong{flex:1;font-size:11px;font-weight:1000;line-height:1}
.template-preview-header-demo>b{border-radius:50%;background:var(--tpl-price);padding:8px 6px;color:#fff;font-size:6px;font-weight:950}
.template-preview.is-footer{min-height:154px;justify-content:flex-end;background:var(--tpl-bg)}
.template-preview.is-footer .template-preview-title{font-size:14px;line-height:1.1}
.template-preview-footer-demo{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:6px;border-radius:6px;background:var(--tpl-footer-bg,var(--tpl-primary));padding:9px;color:var(--tpl-ink);font-size:7px;font-weight:900;box-shadow:0 5px 12px #0002}
.template-preview-footer-demo>b{color:var(--tpl-accent);font-size:8px}
.template-preview-footer-demo>span{border-radius:99px;background:#ffffff2b;padding:4px 6px;white-space:nowrap}
.template-preview-footer-demo>small{grid-column:1/-1;opacity:.83;font-size:6px;font-weight:600}
.template-preview.is-background{min-height:154px;background:var(--tpl-bg)}
.template-preview.is-background::after{position:absolute;right:12%;bottom:-18%;width:56%;height:70%;border:12px solid var(--tpl-primary);border-radius:50%;content:'';opacity:.14;transform:rotate(-22deg)}
.template-preview.is-background .template-preview-title{align-self:flex-start;font-size:17px}
.template-preview-colorchips{display:flex;align-items:center;gap:7px;margin:7px 0 0}
.template-preview-colorchips i{width:24px;height:24px;border:2px solid #ffffffaa;border-radius:50%;background:var(--tpl-primary);box-shadow:0 3px 7px #0002}
.template-preview-colorchips i:nth-child(2){background:var(--tpl-accent)}
.template-preview-colorchips i:nth-child(3){background:var(--tpl-price)}
.template-preview-colorchips b{margin-left:4px;border-radius:4px;background:#fff9;padding:6px 8px;color:var(--tpl-ink);font-size:6px;letter-spacing:.6px}
.template-card-content{padding:12px 13px 13px}
.template-card-content h3{margin:0;color:#f3f5ef;font-size:11px;font-weight:850}
.template-card-content p{min-height:28px;margin:5px 0 10px;color:#9ea8a0;font-size:8px;line-height:1.5}
.template-card-actions{display:flex;align-items:center;gap:7px}
.template-card-actions .button{min-height:31px;padding:0 10px;font-size:8px}
.template-card-actions .button-primary{flex:1}
.template-category-label{margin-left:auto;color:#86918b;font-size:7px;font-weight:850;letter-spacing:.8px;text-transform:uppercase}
.template-remove{position:absolute;top:7px;right:7px;z-index:2;display:grid;width:27px;height:27px;place-items:center;border:1px solid #ffffff40;border-radius:8px;background:#171b20b8;color:#fff}
.template-remove:hover{background:#913e38}
.template-save-bar{display:flex;align-items:end;gap:8px;flex-wrap:wrap;margin:15px 0 10px;padding:12px;border:1px solid #424b46;border-radius:10px;background:#242a2b}
.template-save-bar label{flex:1;min-width:180px;color:#a7b0a8;font-size:8px;font-weight:800}
.template-save-bar input{display:block;width:100%;height:34px;margin-top:6px;border:1px solid #40494a;border-radius:7px;background:#1e2428;color:#f3f5ef;padding:0 9px;font-size:10px}
.template-save-bar .button{min-height:34px;font-size:8px}
.template-empty{grid-column:1/-1;padding:34px 16px;border:1px dashed #4b5650;border-radius:12px;color:#aeb7ad;text-align:center;font-size:10px;line-height:1.7}
.template-empty strong{display:block;margin-bottom:3px;color:#e6eadf;font-size:12px}
.project-folder-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 15px;padding:11px;border:1px solid #363f40;border-radius:11px;background:#242a2d}
.project-search{position:relative;flex:1;min-width:170px;max-width:300px}
.project-search input{width:100%;height:34px;border:1px solid #3c4546;border-radius:8px;background:#1e2428;color:#f1f3ed;padding:0 10px 0 32px;font-size:9px}
.project-search svg{position:absolute;top:9px;left:10px;color:#8e9991}
.project-folder-status{display:flex;align-items:center;gap:6px;margin-right:auto;color:#9fa99f;font-size:8px}
.project-folder-status i{width:6px;height:6px;border-radius:50%;background:#92a181}
.project-folder-status.connected i{background:#b8e34a;box-shadow:0 0 0 3px #b8e34a20}
.project-folder-tools .button{min-height:34px;padding:0 10px;font-size:8px}
.project-card[hidden]{display:none!important}
.project-empty-search{display:none;grid-column:1/-1;padding:24px;border:1px dashed #4b5550;border-radius:10px;color:#aeb5ad;text-align:center;font-size:10px}
.project-empty-search.visible{display:block}
.product-slot-placeholder{position:absolute;z-index:1;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;border:1px dashed #a9b99a;border-radius:5px;background:#ffffff55;color:#63715f;font-size:18px;transition:background .15s,border-color .15s}
.product-slot-placeholder:hover{border-color:#58733c;background:#e6efcecc;color:#37552c}
.product-slot-placeholder small{font-size:7px;font-weight:850;letter-spacing:.2px}

/* Base de produto com fundo transparente e camadas sobrepostas */
.product-object{position:relative;display:flex;width:100%;height:100%;overflow:visible;flex-direction:column;justify-content:flex-end;align-items:center;background:transparent;border:0;border-radius:0;padding:0;color:#223027;box-shadow:none}
.product-object::before{display:none}

/* Camada da Foto: ocupa todo o espaço ao fundo sem fundo branco */
.product-photo-layer{position:absolute;inset:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;z-index:1;pointer-events:none}
.product-photo-layer .product-photo{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center;filter:drop-shadow(0 4px 10px rgba(0,0,0,0.18))}

/* Camada Sobreposta de Textos e Preços */
.product-overlay-layer{position:relative;z-index:2;width:100%;display:flex;flex-direction:column;align-items:center;text-align:center;pointer-events:none;padding:2% 4%}
.product-name{display:-webkit-box;overflow:hidden;width:100%;color:var(--product-text-color, #1a221c);font-size:4.1cqw;font-weight:900;line-height:1.1;-webkit-box-orient:vertical;-webkit-line-clamp:2;text-shadow:0 1px 3px rgba(255,255,255,0.8), 0 2px 6px rgba(0,0,0,0.25)}

/* Selo / Splash de Preço Sobreposto à Foto */
.product-price-badge{display:inline-flex;align-items:center;justify-content:center;gap:3%;background:var(--product-accent, #ef5747);color:#ffffff;padding:2% 6%;border-radius:999px;box-shadow:0 3px 8px rgba(0,0,0,0.35);margin-top:2%;line-height:1;transform:translateZ(0)}
.product-price-row{display:flex;align-items:baseline;gap:2%;color:inherit;line-height:1}
.product-currency{font-size:3.2cqw;font-weight:900;letter-spacing:-.04em}
.product-price-row strong{font-size:7.5cqw;font-weight:950;letter-spacing:-.06em;white-space:nowrap}
.product-price-row sup{margin-left:1px;font-size:.52em;letter-spacing:-.02em}
.product-unit{font-size:2.8cqw;font-weight:800;opacity:.92;margin-left:2px}

/* Estado vazio com visual sutil e pontilhado */
.product-object.is-empty{border:1.5px dashed rgba(120,150,110,0.55);border-radius:10px;background:rgba(255,255,255,0.18);backdrop-filter:blur(2px);box-shadow:none;cursor:pointer}
.product-object.is-empty:hover{background:rgba(255,255,255,0.32);border-color:#b8e34a}
.product-add-hint{display:flex;align-items:center;flex-direction:column;color:#49613c;font-size:7cqw;font-weight:700;line-height:1;text-shadow:0 1px 2px rgba(255,255,255,0.8)}
.product-add-hint small{margin-top:4%;font-size:2.8cqw;font-weight:900;letter-spacing:.3px}

/* Variações de Estilo da Caixa */
.product-object.card-style-boxed{background:rgba(255,255,255,0.92);border:1px solid rgba(220,225,215,0.9);border-radius:12px;padding:4%;box-shadow:0 3px 10px rgba(0,0,0,0.08)}
.product-object.card-style-outline{border:1.5px solid var(--product-accent, #b8e34a);border-radius:14px;background:rgba(255,255,255,0.06)}
@media(max-width:760px){.section-actions{gap:5px}.section-actions .button{min-height:34px;padding:0 8px;font-size:8px}}
@media(max-width:500px){.section-heading{align-items:flex-start}.section-actions{align-items:stretch;flex-direction:column}.project-folder-status{max-width:none}}

/* --- SLOTS DO TEMPLATE SUPERMERCADO VIBRANTE (7 OFERTAS) --- */
.product-object.slot-horizontal{display:flex;align-items:center;width:100%;height:100%;overflow:visible;pointer-events:none}
.product-object.slot-horizontal .slot-circle-photo{width:38%;height:100%;display:flex;align-items:center;justify-content:center;flex-shrink:0;pointer-events:auto;cursor:pointer}
.product-object.slot-horizontal .slot-circle-photo img{max-width:92%;max-height:92%;object-fit:contain;filter:drop-shadow(0 4px 8px rgba(0,0,0,0.18))}
.product-object.slot-horizontal .slot-pill-content{flex:1;display:flex;flex-direction:column;justify-content:center;padding:0 4% 0 6%;pointer-events:auto}
.product-object.slot-horizontal.circle-right .slot-pill-content{padding:0 6% 0 4%}
.slot-product-name{font-size:3.6cqw;font-weight:900;color:#1e293b;line-height:1.15;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.slot-price-row{display:flex;align-items:baseline;gap:2px;font-weight:950;margin-top:2px}
.slot-price-row .slot-curr{font-size:3.0cqw;font-weight:900}
.slot-price-row .slot-main{font-size:7.2cqw;letter-spacing:-0.04em}
.slot-price-row .slot-main sup{font-size:0.55em}
.slot-price-row .slot-unit{font-size:2.8cqw;font-weight:800;opacity:0.9;margin-left:2px}

.product-object.slot-vertical-lateral{display:flex;flex-direction:column;width:100%;height:100%;position:relative;overflow:visible;pointer-events:none}
.product-object.slot-vertical-lateral .slot-lateral-photo{height:58%;width:100%;display:flex;align-items:center;justify-content:center;pointer-events:auto;cursor:pointer}
.product-object.slot-vertical-lateral .slot-lateral-photo img{max-width:88%;max-height:88%;object-fit:contain;filter:drop-shadow(0 3px 6px rgba(0,0,0,0.18))}
.slot-star-badge{position:absolute;top:0;right:-4%;width:46%;height:28%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none;z-index:4}
.slot-star-badge .star-badge-label{font-size:1.9cqw;font-weight:900;color:#ffffff;line-height:1;letter-spacing:-0.02em;text-shadow:0 1px 2px rgba(0,0,0,0.5)}
.slot-star-badge .star-badge-val{font-size:2.5cqw;font-weight:950;color:#ffffff;line-height:1.1;letter-spacing:-0.03em;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,0.6)}

.slot-lateral-card{height:40%;width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:0 4%;pointer-events:auto}
.slot-lateral-price{display:flex;align-items:baseline;gap:1px;font-weight:950;line-height:1}
.slot-lateral-price span{font-size:2.6cqw;font-weight:900}
.slot-lateral-price strong{font-size:5.8cqw;letter-spacing:-0.04em}
.slot-lateral-price strong sup{font-size:0.55em}
.slot-lateral-price small{font-size:2.4cqw;font-weight:800;opacity:0.9;margin-left:1px}
.slot-lateral-name{font-size:2.8cqw;font-weight:800;color:#475569;margin-top:2px;max-width:92%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.slot-photo-placeholder{font-size:2.5cqw;font-weight:800;color:rgba(0,100,50,0.6);border:1px dashed rgba(0,100,50,0.4);border-radius:50%;width:70%;height:70%;display:flex;align-items:center;justify-content:center}
