/* Ferramentas de compra: a mesma grelha e pele da loja. */
.product-title-link { color:inherit; text-decoration:none; }
.product-title-link:hover { text-decoration:underline; text-underline-offset:3px; }
.product-image-link { display:flex; align-items:center; justify-content:center; width:100%; height:100%; }
.product-image-link img { width:100%; height:100%; object-fit:contain; }
.product-key-specs:empty { display:none; }
.product-key-specs { font-size:.72rem; color:var(--sh-muted); margin:0 0 .65rem; line-height:1.5; }
.product-card-tools { display:flex; flex-wrap:wrap; justify-content:space-between; gap:.4rem; margin-top:.7rem; padding-top:.65rem; border-top:1px solid var(--sh-line); }
.product-card-tools button { background:none; border:0; color:var(--sh-muted); font:inherit; font-size:.68rem; padding:.3rem 0; cursor:pointer; }
.product-card-tools [aria-pressed=true] { color:var(--sh-accent); }
.product-card--small .product-card-tools { justify-content:center; }
.product-card--small .product-card-tools span:not([aria-hidden]) { display:none; }
.discovery-toolbar { display:grid; gap:1rem; margin-bottom:1rem; }
.discovery-search { display:flex; border:1px solid var(--sh-line-strong); background:var(--sh-panel); border-radius:var(--sh-radius-md); overflow:hidden; }
.discovery-search input { min-width:0; width:100%; border:0; padding:.9rem 1rem; background:transparent; color:var(--sh-text); font:inherit; }
.discovery-search button { background:var(--sh-accent); color:white; border:0; padding:.8rem 1.2rem; cursor:pointer; }
.discovery-actions { display:flex; align-items:end; flex-wrap:wrap; gap:.6rem; }
.discovery-actions label { display:flex; flex-direction:column; gap:.3rem; font-size:.73rem; color:var(--sh-muted); margin-right:auto; }
.discovery-actions button,.discovery-actions select,.discovery-filters button,.discovery-filters input,.discovery-filters select { font:inherit; color:var(--sh-text); background:var(--sh-panel); border:1px solid var(--sh-line); padding:.65rem .75rem; border-radius:.4rem; min-width:0; }
.discovery-actions button { font-size:.75rem; cursor:pointer; }
.discovery-actions select { font-size:.78rem; }
.discovery-actions [aria-pressed=true] { border-color:var(--sh-accent); background:var(--sh-accent-tint); }
.discovery-filters { margin-top:.75rem; border:1px solid var(--sh-line); border-radius:var(--sh-radius-md); background:var(--sh-panel); }
.discovery-filters summary { padding:.9rem; cursor:pointer; font-weight:600; font-size:.78rem; }
.discovery-filters > div { display:grid; gap:.8rem; padding:0 .9rem .9rem; }
.discovery-filters label { display:grid; gap:.4rem; font-size:.74rem; color:var(--sh-muted); }
.discovery-filters input,.discovery-filters select { width:100%; font-size:.76rem; }
.discovery-filters form { display:grid; gap:.5rem; }
.discovery-filters button { font-size:.74rem; cursor:pointer; }
.facet-explanation { font-size:.7rem; line-height:1.5; color:var(--sh-muted); }
.catalog-chips { display:flex; flex-wrap:wrap; gap:.4rem; }
.catalog-chips button { max-width:100%; overflow-wrap:anywhere; font:inherit; font-size:.72rem; border:1px solid var(--sh-line); background:var(--sh-accent-tint); color:var(--sh-text); padding:.4rem .65rem; border-radius:2rem; cursor:pointer; }
.discovery-notice { font-size:.78rem; color:var(--sh-text); line-height:1.6; margin:.7rem 0; }
.discovery-notice:empty { display:none; }
.catalog-pagination { display:flex; align-items:center; justify-content:space-between; gap:.75rem; margin-top:1.5rem; padding:1rem 0; color:var(--sh-muted); font-size:.78rem; }
.catalog-pagination button { border:1px solid var(--sh-line-strong); background:var(--sh-panel); color:var(--sh-text); border-radius:.4rem; padding:.65rem .85rem; font:inherit; cursor:pointer; }
.catalog-pagination button:disabled { opacity:.4; cursor:default; }
.shop-page #catalog-grid.is-table-view { display:block; }
.technical-table-scroll { overflow:auto; max-width:100%; overscroll-behavior:contain; border:1px solid var(--sh-line); border-radius:.6rem; }
.technical-table { width:100%; border-collapse:collapse; font-size:.76rem; background:var(--sh-panel); color:var(--sh-text); text-align:left; }
.technical-table caption { text-align:left; padding:.8rem; color:var(--sh-muted); font-size:.72rem; }
.technical-table th,.technical-table td { padding:.85rem; border-bottom:1px solid var(--sh-line); vertical-align:top; min-width:110px; line-height:1.6; }
.technical-table th:first-child { min-width:180px; }
.technical-table th a { color:inherit; text-decoration:none; }
.technical-table th a:hover { text-decoration:underline; }
.technical-table small { display:block; font-weight:400; color:var(--sh-muted); }
.technical-table button,.no-products button { background:var(--sh-panel); color:var(--sh-text); border:1px solid var(--sh-line-strong); border-radius:.4rem; font:inherit; font-size:.72rem; padding:.55rem .7rem; cursor:pointer; }
.no-products button { margin-top:.75rem; }
.comparison-bar { position:fixed; z-index:1100; bottom:1rem; left:50%; transform:translateX(-50%); display:flex; align-items:center; gap:1rem; width:max-content; max-width:calc(100vw - 2rem); background:var(--sh-panel); border:1px solid var(--sh-line-strong); box-shadow:0 8px 30px #0002; border-radius:.7rem; padding:.75rem 1rem; color:var(--sh-text); font-size:.8rem; }
.comparison-bar[hidden] { display:none; }
.comparison-bar button { border:1px solid var(--sh-line); border-radius:.35rem; padding:.5rem .75rem; background:var(--sh-accent-tint); color:var(--sh-text); font:inherit; cursor:pointer; }
.comparison-bar button:disabled { opacity:.5; cursor:default; }
.product-dialog,.comparison-dialog,.product-zoom { background:var(--sh-bg,#fff); color:var(--sh-text,#15151c); border:1px solid var(--sh-line,#ddd); border-radius:1rem; padding:0; width:min(1080px,calc(100vw - 2rem)); max-width:none; max-height:calc(100dvh - 2rem); margin:auto; box-shadow:0 20px 90px #0005; }
.product-dialog::backdrop,.comparison-dialog::backdrop,.product-zoom::backdrop { background:#080b16b8; }
.product-dialog-toolbar { position:sticky; z-index:3; top:0; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.8rem 1.25rem; background:var(--sh-panel,#fff); border-bottom:1px solid var(--sh-line,#ddd); font-size:.75rem; }
.product-dialog-toolbar h2 { margin:0; font-size:1.2rem; }
.product-dialog-toolbar button,.product-zoom > button { border:1px solid var(--sh-line,#ddd); background:var(--sh-panel,#fff); color:var(--sh-text,#15151c); border-radius:50%; width:36px; height:36px; font-size:1.5rem; cursor:pointer; flex-shrink:0; }
#product-dialog-body { padding:1.75rem; }
.product-detail-layout { display:grid; grid-template-columns:1fr 1fr; gap:2rem; }
.detail-gallery { min-width:0; }
.detail-image-button { display:block; width:100%; aspect-ratio:1; border:1px solid var(--sh-line); border-radius:.75rem; padding:1rem; background:var(--sh-panel); cursor:zoom-in; }
.detail-image-button img { width:100%; height:100%; object-fit:contain; }
.detail-thumbnails { display:flex; gap:.5rem; overflow:auto; margin:.75rem 0; }
.detail-thumbnails button { width:58px; height:58px; padding:.25rem; flex-shrink:0; border:1px solid var(--sh-line); background:var(--sh-panel); border-radius:.35rem; cursor:pointer; }
.detail-thumbnails button[aria-pressed=true] { border:2px solid var(--sh-accent); }
.detail-thumbnails img { width:100%; height:100%; object-fit:contain; }
.detail-gallery small { color:var(--sh-muted); font-size:.7rem; }
.detail-no-image { aspect-ratio:1; display:grid; place-items:center; background:var(--sh-panel); border:1px solid var(--sh-line); border-radius:.75rem; font-size:.8rem; }
.detail-intro { min-width:0; }
.detail-intro h2 { font-size:clamp(1.35rem,2.5vw,2rem); line-height:1.25; margin:.65rem 0; overflow-wrap:anywhere; }
.detail-category { color:var(--sh-muted); font-size:.72rem; line-height:1.6; }
.detail-price { color:var(--sh-accent); font-size:1.75rem; font-weight:700; margin:1rem 0 .4rem; }
.detail-price small { display:block; font-size:.75rem; color:var(--sh-muted); font-weight:400; }
.detail-availability { font-size:.8rem; font-weight:600; }
.detail-description { font-size:.87rem; line-height:1.8; margin:1rem 0; white-space:pre-line; }
.product-dialog label { display:grid; gap:.4rem; font-size:.78rem; line-height:1.5; }
.product-dialog input,.product-dialog select,.product-dialog textarea { width:100%; min-width:0; padding:.7rem; border:1px solid var(--sh-line-strong); border-radius:.4rem; background:var(--sh-panel); color:var(--sh-text); font:inherit; }
.product-dialog textarea { min-height:100px; resize:vertical; }
.product-dialog form { display:grid; gap:.8rem; }
#detail-add-form { grid-template-columns:95px 1fr; align-items:end; margin:1.2rem 0; }
.product-dialog form button,.detail-secondary button,.detail-help button { padding:.75rem; border:1px solid var(--sh-line-strong); background:var(--sh-panel); color:var(--sh-text); border-radius:.4rem; font:inherit; font-size:.75rem; cursor:pointer; }
.product-dialog form .detail-primary { background:var(--sh-accent); color:#fff; border-color:var(--sh-accent); }
.product-dialog form button:disabled { opacity:.5; }
.detail-secondary { display:flex; flex-wrap:wrap; gap:.4rem; margin-top:.85rem; }
.detail-secondary [aria-pressed=true] { border-color:var(--sh-accent); color:var(--sh-accent); }
.product-dialog .detail-consent { display:block; font-size:.7rem; }
.product-dialog .detail-consent input { width:auto; vertical-align:middle; margin-right:.4rem; }
.detail-consent a,.detail-help a { color:var(--sh-accent); }
.detail-help { display:flex; align-items:center; flex-wrap:wrap; gap:.65rem; margin-top:1rem; }
.detail-help a { font-size:.7rem; }
#detail-status,#review-status { font-size:.8rem; line-height:1.6; margin-top:.65rem; }
.detail-specification,.detail-reviews,.detail-alternatives { margin-top:2rem; padding-top:1.5rem; border-top:1px solid var(--sh-line); }
.detail-specification h3,.detail-reviews h3,.detail-alternatives h3 { font-size:1rem; margin:0 0 1rem; }
.detail-raw-specs { font-size:.85rem; line-height:1.8; white-space:pre-line; }
.detail-specification dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; margin:1rem 0 0; }
.detail-specification dl > div { padding:.8rem; background:var(--sh-panel); border:1px solid var(--sh-line); border-radius:.4rem; }
.detail-specification dt { font-size:.7rem; color:var(--sh-muted); }
.detail-specification dd { font-size:.8rem; margin:.3rem 0 0; overflow-wrap:anywhere; }
.detail-reviews p { font-size:.8rem; line-height:1.7; }
.detail-reviews article { padding:1rem 0; border-bottom:1px solid var(--sh-line); font-size:.8rem; }
.detail-reviews article small { display:block; color:var(--sh-muted); font-size:.7rem; margin-top:.3rem; }
#detail-review-form { margin-top:1rem; padding:1rem; border:1px solid var(--sh-line); border-radius:.5rem; }
.detail-alternatives > div { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; }
.detail-alternatives a { display:flex; flex-direction:column; gap:.65rem; color:var(--sh-text); text-decoration:none; font-size:.8rem; padding:1rem; border:1px solid var(--sh-line); border-radius:.5rem; }
.detail-alternatives a strong { margin-top:auto; color:var(--sh-accent); }
.detail-alternatives small { color:var(--sh-muted); }
.comparison-dialog { width:min(1100px,calc(100vw - 2rem)); }
#comparison-body { padding:1.25rem; }
#comparison-body > p { font-size:.8rem; line-height:1.7; margin-bottom:1rem; }
.comparison-table th:not(:first-child),.comparison-table td { min-width:200px; max-width:300px; }
.comparison-table th button { display:block; margin-top:.6rem; }
.comparison-difference { background:var(--sh-accent-tint); }
.product-zoom { padding:1rem; width:min(1100px,calc(100vw - 2rem)); }
.product-zoom > button { position:sticky; top:0; float:right; }
.product-zoom img { display:block; width:100%; max-height:80dvh; object-fit:contain; }
.discovery-toolbar :focus-visible,.discovery-filters :focus-visible,.product-card a:focus-visible,.product-card button:focus-visible,.product-dialog :focus-visible,.comparison-dialog :focus-visible { outline:2px solid var(--sh-accent); outline-offset:3px; }
@media(max-width:800px) {
 .catalog-sidebar { max-height:48dvh; overflow:auto; border-radius:.6rem; background:var(--sh-bg); box-shadow:0 2px 6px #0001; }
 .catalog-filter-panel .category-tree { max-height:27dvh; }
 .product-detail-layout { grid-template-columns:1fr; gap:1rem; }
 .detail-image-button { aspect-ratio:1.3; }
 .product-dialog,.comparison-dialog { width:calc(100vw - 1rem); max-height:calc(100dvh - 1rem); border-radius:.65rem; }
 #product-dialog-body { padding:1rem; }
 .detail-alternatives > div { grid-template-columns:1fr; }
 .comparison-bar { bottom:.5rem; gap:.5rem; padding:.65rem; font-size:.72rem; }
 .comparison-bar button { padding:.45rem; }
}
@media(max-width:767px) {
 .catalog-sidebar { display:grid; grid-template-columns:1fr 1fr; gap:.5rem; max-height:42dvh; padding:.25rem; }
 .catalog-sidebar > .discovery-filters { margin:0; }
 .catalog-sidebar #catalog-facets { grid-column:1 / -1; }
 .catalog-filter-panel summary,.discovery-filters summary { font-size:.7rem; padding:.75rem .6rem; }
 .catalog-pagination { font-size:.7rem; gap:.4rem; }
 .catalog-pagination button { padding:.6rem .5rem; }
}
@media(max-width:420px) { .detail-specification dl { grid-template-columns:1fr; } .discovery-actions > button { flex:1; } .discovery-actions > label { width:100%; } #detail-add-form { grid-template-columns:80px 1fr; } }
@media(prefers-reduced-motion:reduce) { .product-card img { transition:none!important; } }
