:root{--brand-grape:#3B162A;--brand-marsala:#7A2E3B;--brand-gold:#D4B483;--brand-rose:#D7A69A;--brand-kraft:#C3A68F;--brand-cream:#F6E9D9;--brand-taupe:#A88F7E;--brand-brown:#3E2A26;--brand-offwhite:#F8EEE8;--muted:#6B5650;--danger:#A3392B;--danger-bg:#F6E7E3;--danger-line:#E3BDB3;--ok:#246443;--ok-bg:#E9F1EB;--ok-line:#B9D3C1;--qr-bg:#FFFFFF;--bg:var(--brand-offwhite);--ink:var(--brand-brown);--dark:var(--brand-grape);--line:var(--brand-taupe);--card:var(--brand-offwhite);--surface:var(--brand-cream);--accent:var(--brand-rose);--on-accent:var(--brand-brown);--on-dark:var(--brand-offwhite);--highlight:var(--brand-gold);--decor:var(--brand-kraft);--btn-bg:var(--brand-grape);--btn-fg:var(--brand-offwhite);--btn-hover-bg:var(--brand-marsala);--btn-hover-fg:var(--brand-offwhite);--ghost-border:var(--brand-grape);--field-border:var(--muted);--focus:var(--brand-grape);--on-danger:var(--brand-offwhite);--shadow-tone:var(--brand-brown);--shadow:color-mix(in srgb,var(--shadow-tone) 8%,transparent)}
/* specs/011-paleta-identidade-premium + specs/015-logo-oficial (Uva como cor principal): derivados do Dourado, tipografia e papéis do layout (contracts/design-tokens.md; tipografia em specs/008-novo-layout-loja/contracts/design-system.md) */
:root{--brand-gold-light:color-mix(in srgb,var(--brand-gold) 50%,var(--brand-offwhite));--brand-gold-deep:color-mix(in srgb,var(--brand-gold) 70%,var(--brand-brown));--metallic:linear-gradient(135deg,var(--brand-gold-light),var(--brand-gold) 55%,var(--brand-gold-deep));--font-sans:"Montserrat",system-ui,-apple-system,"Segoe UI",sans-serif;--tracking-label:.18em;--radius-btn:999px;--radius-card:12px;--shadow-lift:color-mix(in srgb,var(--shadow-tone) 22%,transparent);--brand-band:var(--brand-grape);--on-brand-band:var(--brand-offwhite);--footer-bg:var(--brand-grape);--footer-fg:var(--brand-offwhite);--footer-accent:var(--brand-gold);--overlay:color-mix(in srgb,var(--shadow-tone) 45%,transparent)}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/montserrat-var.woff2) format("woff2")}
/* A loja inteira fica dentro de .store (research R13); o admin não herda regras desta feature. Montserrat é a fonte padrão de todo o sistema (body). */
*{box-sizing:border-box}
body{margin:0;font-family:var(--font-sans);color:var(--ink);background:var(--bg);line-height:1.5}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
/* Fluido: ocupa a tela com respiro lateral proporcional; o teto só evita linhas absurdas em monitores ultrawide. */
.container{width:min(1920px,100% - 2*clamp(16px,3vw,48px));margin-inline:auto}
.flash{margin:1rem 0;padding:.8rem 1rem;background:var(--surface);border:1px solid var(--highlight);border-radius:6px}
.btn{display:inline-block;margin-top:auto;text-align:center;padding:.6rem 1.1rem;background:var(--btn-bg);color:var(--btn-fg);border:0;border-radius:6px;cursor:pointer;font:inherit;font-weight:600}
.btn:hover{background:var(--btn-hover-bg);color:var(--btn-hover-fg)}.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--ghost-border)}.btn.ghost:hover{background:var(--surface);color:var(--ink)}
.crumbs{margin:1rem 0;font-size:.85rem;color:var(--muted);display:flex;gap:.4rem;flex-wrap:wrap}
.list-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.list-head h1{margin:0}.list-head small{color:var(--muted);font-size:.9rem}
.list-head select{padding:.4rem;border:1px solid var(--field-border);border-radius:6px;font:inherit}
.chips{list-style:none;padding:0;display:flex;gap:.5rem;flex-wrap:wrap;margin:0 0 1.2rem}
.chips a{display:block;padding:.3rem .8rem;border:1px solid var(--line);border-radius:99px;background:var(--card);font-size:.85rem}
.chips a:hover{border-color:var(--accent)}
.pager{display:flex;gap:.4rem;justify-content:center;margin:2rem 0;flex-wrap:wrap}
.pager a{padding:.4rem .8rem;border:1px solid var(--line);border-radius:6px;background:var(--card)}.pager a.on{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.empty{color:var(--muted);padding:2rem;text-align:center}
.product{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-bottom:2rem}
.product-info h1{margin:0 0 .5rem}
.buy{display:flex;gap:1rem;align-items:flex-end;margin:1rem 0}
.buy input[type=number]{width:70px;padding:.5rem;border:1px solid var(--field-border);border-radius:6px;font:inherit;display:block}
.low{color:var(--danger);font-size:.9rem}
.perks{padding-left:1.1rem;color:var(--muted)}
.desc{color:var(--muted)}
.prose{max-width:760px;margin-block:2rem}
table.cart{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:10px;overflow:hidden}
table.cart th,table.cart td{padding:.8rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
table.cart img{width:64px;height:64px;border-radius:6px}
table.cart input[type=number]{width:64px;padding:.4rem;border:1px solid var(--field-border);border-radius:6px}
.linkbtn{background:none;border:0;color:var(--danger);cursor:pointer;font:inherit;padding:0}
.summary{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:1.2rem}
.summary dl{display:grid;grid-template-columns:1fr auto;gap:.4rem;margin:0 0 1rem}.summary dd{margin:0;text-align:right}
.summary .total{font-size:1.2rem;font-weight:700}
.cols{display:grid;grid-template-columns:2fr 1fr;gap:1.5rem;align-items:start;margin-block:1.5rem}
.form{display:grid;gap:.8rem}
.form label{display:grid;gap:.25rem;font-size:.85rem;color:var(--muted)}
.form input,.form select{padding:.6rem;border:1px solid var(--field-border);border-radius:6px;font:inherit;color:var(--ink);background:var(--card)}
.form .row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.8rem}
.form fieldset{border:1px solid var(--line);border-radius:8px;padding:.8rem}
.form fieldset label{display:flex;gap:.5rem;align-items:center;color:var(--ink)}
.val{color:var(--danger);font-size:.8rem}
.auth{max-width:420px;margin:2.5rem auto;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1.5rem}
.auth h1{margin-top:0}
.pix{background:var(--card);border:1px dashed var(--decor);border-radius:8px;padding:1rem;word-break:break-all;font-family:monospace;font-size:.8rem}
@media(max-width:800px){.product,.cols{grid-template-columns:1fr}}
.notice{padding:.9rem 1rem;border-radius:8px;border:1px solid var(--line);background:var(--card);margin:1rem 0}
.notice.ok{background:var(--ok-bg);border-color:var(--ok-line)}.notice.bad{background:var(--danger-bg);border-color:var(--danger-line)}
.qr{width:220px;height:220px;border:1px solid var(--line);border-radius:8px;background:var(--qr-bg);padding:6px;margin:.5rem 0}
.admin-shell{width:min(1180px,100% - 32px);margin:2rem auto}
.admin-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1.2rem}
.admin-heading h1,.admin-shell>h1{margin:0}
.admin-eyebrow{color:var(--gold-d);text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;font-weight:700;margin:0 0 .2rem}
.admin-note{margin:.2rem 0 1rem;color:var(--admin-muted)}
.admin-filters{display:flex;align-items:end;gap:.8rem;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:8px;padding:1rem;margin-bottom:1rem}
.admin-filters label{display:grid;gap:.25rem;color:var(--muted);font-size:.85rem}
.admin-filters input,.admin-filters select{min-width:190px;padding:.55rem .65rem;border:1px solid var(--line);border-radius:6px;font:inherit}
.admin-filters .btn{margin:0}
.admin-count{font-size:.85rem;color:var(--muted)}
.admin-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:#fff}
.admin-table{width:100%;border-collapse:collapse;white-space:nowrap}
.admin-table th,.admin-table td{padding:.75rem .85rem;border-bottom:1px solid var(--line);text-align:left}
.admin-table th{background:#f5f0e9;color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}
.admin-table th a:hover,.admin-link{color:var(--gold-d);text-decoration:underline;text-underline-offset:2px}
.admin-status{display:inline-block;padding:.15rem .5rem;border-radius:99px;font-size:.78rem}
.admin-status.is-active{color:#246443;background:#e5f3e9}
.admin-status.is-inactive{color:#8c382f;background:#f9e8e5}
.admin-form-shell{max-width:820px}
.admin-form{margin:1rem 0 1.5rem}
.admin-form textarea{padding:.6rem;border:1px solid var(--line);border-radius:6px;font:inherit;color:var(--ink)}
.admin-form .admin-check{display:flex;align-items:center;gap:.5rem;color:var(--ink)}
.admin-form .admin-check input{width:1rem;height:1rem}
.admin-notice{padding:.7rem 1rem;border:1px solid #c9e4d1;border-radius:6px;background:#eaf6ed;color:#246443}
.admin-dashboard{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-top:1.5rem}
.admin-dashboard a{display:grid;gap:.4rem;padding:1.25rem;background:#fff;border:1px solid var(--line);border-radius:8px}
.admin-dashboard a:hover{border-color:var(--gold)}
.admin-dashboard strong{font-size:1.2rem}
.admin-dashboard span,.admin-user-meta{color:var(--muted)}
.admin-control-grid{display:flex;gap:.8rem;flex-wrap:wrap;margin-block:1rem}
.admin-control-grid form{display:flex}
.admin-subrow td:first-child{padding-left:1.75rem}
.admin-user-meta{display:grid;grid-template-columns:max-content 1fr;gap:.35rem 1rem;margin-block:1rem}
.admin-user-meta dt{font-weight:600}.admin-user-meta dd{margin:0}
.admin-order-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;margin:1rem 0 1.5rem}
.admin-order-card{padding:1rem 1.2rem;background:#fff;border:1px solid var(--line);border-radius:8px}
.admin-order-card h2{margin-top:0;font-size:1.05rem}
.admin-order-card p{margin:.45rem 0}
.admin-order-card address{font-style:normal;line-height:1.6}
.admin-order-warning,.admin-order-warning-row td{padding:.75rem 1rem;border:1px solid #f0d49a;border-radius:6px;background:#fff8e8;color:#75520c}
.admin-order-warning-row td{border-radius:0;font-weight:600}
.admin-order-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1.25rem}
.admin-order-actions form{margin:0}
.admin-table tfoot th,.admin-table tfoot td{text-align:right;padding:.7rem}
.admin-image-editor{display:grid;gap:.8rem;padding:1rem;border:1px solid var(--admin-line,#e4e9ef);border-radius:8px;background:#fff}
.admin-image-editor>legend{padding:0 .35rem;font-size:.9rem;font-weight:700;color:var(--admin-ink,#182433)}
.admin-image-intro,.admin-image-help{margin:0;color:var(--admin-muted,#738092);font-size:.82rem}
.admin-image-actions{display:flex;flex-wrap:wrap;gap:.65rem}
.admin-image-actions .btn{margin:0}
.admin-image-actions .btn:disabled{opacity:.55;cursor:not-allowed}
.admin-image-picker{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.admin-image-picker:focus-visible{outline:3px solid #1d6fb8;outline-offset:3px}
.admin-image-existing,.admin-image-new-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,190px),1fr));gap:.8rem}
.admin-image-card{position:relative;display:grid;align-content:start;gap:.55rem;min-width:0;padding:.65rem;border:1px solid var(--admin-line,#e4e9ef);border-radius:8px;background:#fff}
.admin-image-card img,.admin-image-preview{width:100%;aspect-ratio:1;object-fit:cover;border-radius:5px;background:#f0f3f6}
.admin-image-preview{touch-action:none;cursor:move}
.admin-image-card-details{display:grid;gap:.2rem;min-width:0}
.admin-image-card-details strong{font-size:.82rem}
.admin-image-name{overflow-wrap:anywhere}
.admin-image-zoom{display:grid;gap:.15rem;color:var(--admin-muted,#738092);font-size:.78rem}
.admin-image-zoom input{width:100%;accent-color:#284563}
.admin-image-remove{justify-self:start;padding:.25rem 0;border:0;background:transparent;color:#a7352c;text-decoration:underline;text-underline-offset:2px;font:inherit;font-size:.8rem;cursor:pointer}
.admin-image-remove:focus-visible{outline:3px solid #1d6fb8;outline-offset:3px;border-radius:3px}
.admin-image-remove-existing{display:flex;align-items:center;gap:.4rem;color:var(--admin-muted,#738092);font-size:.78rem}
.admin-image-remove-existing input{width:1rem;height:1rem;accent-color:#a7352c}
.admin-image-count{margin:0;color:var(--admin-ink,#182433);font-size:.83rem;font-weight:650}
.admin-image-status,.admin-image-error{margin:0;padding:.55rem .7rem;border-radius:6px;font-size:.82rem}
.admin-image-status{border:1px solid #c9e4d1;background:#eaf6ed;color:#246443}
.admin-image-error{border:1px solid #e9b9b4;background:#fff0ee;color:#8e2d24}
.admin-image-error[hidden],.admin-image-status[hidden]{display:none}
.admin-image-nojs{margin:0;padding:.65rem .8rem;border-left:3px solid #a87932;background:#fff8e8;color:#64480e;font-size:.82rem}
.admin-form :focus-visible{outline:3px solid #1d6fb8;outline-offset:2px}
@media(max-width:680px){.admin-shell{width:calc(100% - 20px);margin:1rem auto}.admin-filters{align-items:stretch}.admin-filters label,.admin-filters input,.admin-filters select{width:100%;min-width:0}.admin-filters .btn{width:100%}.admin-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.admin-table,.admin-table tbody,.admin-table tr,.admin-table td{display:block;width:100%}.admin-table tr{padding:.5rem .75rem;border-bottom:1px solid var(--line)}.admin-table td{display:grid;grid-template-columns:minmax(95px,34%) 1fr;gap:.5rem;white-space:normal;padding:.35rem 0;border:0}.admin-table td::before{content:attr(data-label);font-weight:600;color:var(--muted)}.admin-table .admin-link{justify-self:start}}
@media(max-width:520px){.admin-image-actions{display:grid;grid-template-columns:1fr}.admin-image-actions .btn{width:100%}.admin-image-existing,.admin-image-new-list{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-image-card{padding:.45rem}}
.admin-app{--bg:#fbf8f4;--ink:#2b2420;--muted:#7a6f67;--line:#e8dfd4;--card:#fff;--surface:#fff;--accent:#b8893b;--on-accent:#fff;--on-dark:#fff;--highlight:#f3e6cf;--decor:#b8893b;--btn-bg:var(--brand-grape);--btn-fg:#fff;--btn-hover-bg:var(--brand-marsala);--btn-hover-fg:#fff;--ghost-border:#e8dfd4;--field-border:#e8dfd4;--focus:var(--brand-grape);--danger:#b3412f;--on-danger:#fff;--shadow:rgba(0,0,0,.08);--gold:#b8893b;--gold-d:#8f6a28;--admin-ink:#182433;--admin-muted:#738092;--admin-line:#e4e9ef;--admin-surface:#fff;--admin-bg:#f4f6f9;min-height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr);background:var(--admin-bg);color:var(--admin-ink);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}
.admin-sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:1.3rem 1rem;background:#172333;color:#d3dce6}
.admin-brand{display:flex;align-items:center;gap:.7rem;padding:.25rem .55rem 1.8rem;color:#fff;font-size:1.02rem;font-weight:700}
.admin-brand small{display:block;margin-top:.15rem;color:#9aaabd;font-size:.61rem;letter-spacing:.15em}
.admin-brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:9px;background:#c39149;color:#fff;font-size:1.3rem}
.admin-nav-label{padding:.7rem .65rem;color:#8291a3;font-size:.65rem;font-weight:700;letter-spacing:.14em}
.admin-nav{display:grid;gap:.3rem}
.admin-nav a{display:flex;align-items:center;gap:.75rem;padding:.7rem .75rem;border-radius:7px;color:#c3ceda;font-size:.88rem}
.admin-nav a span{width:20px;color:#9dabbc;text-align:center;font-size:1rem}
.admin-nav a:hover,.admin-nav a.active{background:#26374b;color:#fff}
.admin-nav a.active{box-shadow:inset 3px 0 #d0a35f}
.admin-nav{overflow-y:auto;min-height:0;padding-right:.15rem;align-content:start}
.admin-nav-group summary{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;border-radius:7px;color:#c3ceda;font-size:.88rem;cursor:pointer;list-style:none;user-select:none}
.admin-nav-group summary::-webkit-details-marker{display:none}
.admin-nav-group summary span{width:20px;color:#9dabbc;text-align:center;font-size:1rem}
.admin-nav-group summary::after{content:"›";margin-left:auto;color:#8291a3;font-size:1.05rem;transition:transform .15s}
.admin-nav-group[open] summary::after{transform:rotate(90deg)}
.admin-nav-group summary:hover{background:#1f2e40;color:#fff}
.admin-nav-children{display:grid;gap:.15rem;margin:.15rem 0 .35rem 1.35rem;padding-left:.75rem;border-left:1px solid #344255}
.admin-nav .admin-nav-children a{padding:.45rem .7rem;font-size:.84rem}
.admin-sidebar-bottom{display:grid;gap:.35rem;margin-top:auto;border-top:1px solid #344255;padding:.9rem .5rem 0}
.admin-sidebar-bottom a,.admin-sidebar-bottom button{padding:.45rem 0;border:0;background:none;color:#b6c2cf;text-align:left;font:inherit;font-size:.82rem;cursor:pointer}
.admin-main{min-width:0}
.admin-topbar{height:76px;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0 clamp(1rem,3vw,2.5rem);background:#fff;border-bottom:1px solid var(--admin-line)}
.admin-topbar>div:first-child{display:grid;gap:.1rem}
.admin-topbar-kicker{color:#8793a1;font-size:.61rem;font-weight:700;letter-spacing:.13em}
.admin-topbar strong{font-size:.92rem}
.admin-topbar-right{display:flex;align-items:center;gap:.5rem;color:#667487;font-size:.78rem}
.admin-live-dot{width:8px;height:8px;border-radius:50%;background:#36a675;box-shadow:0 0 0 3px #e4f4ec}
.admin-content{padding:clamp(1rem,3vw,2.5rem);min-width:0}
.admin-content .admin-shell{width:100%;max-width:1440px;margin:0 auto}
.admin-content .admin-heading{align-items:flex-end}
.admin-content .admin-heading h1,.admin-content .admin-shell>h1{font-family:inherit;font-size:1.65rem;font-weight:700;letter-spacing:-.03em}
.admin-content .admin-eyebrow{color:#8995a4;font-size:.65rem;letter-spacing:.13em}
.admin-content .btn{margin:0;border-radius:6px;background:#284563;font-size:.84rem;box-shadow:0 1px 2px #14263a1a}
.admin-content .btn:hover{background:#1e3651}
.admin-content .admin-filters{align-items:end;border-color:var(--admin-line);border-radius:8px;box-shadow:0 1px 2px #1b2b3d08}
.admin-content .admin-filters input,.admin-content .admin-filters select,.admin-content .admin-form input,.admin-content .admin-form select,.admin-content .admin-form textarea{border-color:#d9e0e8;border-radius:5px}
.admin-content .admin-table-wrap{border-color:var(--admin-line);border-radius:8px;box-shadow:0 1px 2px #1b2b3d08}
.admin-content .admin-table th{background:#f7f9fb;color:#788596;font-size:.68rem;letter-spacing:.08em}
.admin-content .admin-table td{font-size:.87rem}
.admin-content .admin-table th,.admin-content .admin-table td{border-bottom-color:#edf0f4}
.admin-content .admin-link{color:#315a7e}
.admin-content .admin-dashboard a{border-color:var(--admin-line);border-radius:8px;box-shadow:0 1px 3px #1b2b3d08}
.admin-content .admin-dashboard strong{font-family:inherit;font-size:1rem}
.admin-content .admin-dashboard span{font-size:.84rem}
.admin-modal-backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:1.25rem;background:rgba(15,25,38,.55);backdrop-filter:blur(3px)}
.admin-modal{position:relative;width:min(720px,100%);max-height:min(90vh,900px);overflow:auto;padding:1.7rem;background:#fff;border:1px solid #e2e7ed;border-radius:12px;box-shadow:0 24px 80px #0c19264d}
.admin-product-modal{width:min(90vw,100%)}
.admin-user-modal{width:min(640px,100%)}
.admin-modal-close{position:absolute;top:.75rem;right:.9rem;display:grid;place-items:center;width:34px;height:34px;border-radius:7px;color:#718094;font-size:1.6rem;line-height:1}
.admin-modal-close:hover{background:#f0f3f6;color:#26374b}
.admin-modal-heading{display:flex;justify-content:space-between;gap:1rem;align-items:start;padding-right:2rem;margin-bottom:1.2rem}
.admin-modal-heading h2{margin:0;font-size:1.35rem;letter-spacing:-.02em}
.admin-modal-heading p{max-width:270px;margin:.4rem 0 0;color:#7b8796;font-size:.82rem}
.admin-modal .admin-form{gap:.9rem}
.admin-modal .admin-form .btn{width:max-content}
.admin-modal .admin-user-meta{padding:.85rem 1rem;border-radius:7px;background:#f6f8fa;font-size:.85rem}
.admin-modal .admin-control-grid{padding-top:.75rem;border-top:1px solid var(--admin-line)}
.admin-app a:focus-visible,.admin-app button:focus-visible,.admin-app input:focus-visible,.admin-app select:focus-visible,.admin-app textarea:focus-visible{outline:3px solid #78a9d6;outline-offset:2px}
@media(max-width:760px){.admin-app{grid-template-columns:1fr}.admin-sidebar{position:relative;height:auto;padding:.65rem .8rem}.admin-brand{padding:.2rem .25rem .65rem}.admin-nav-label,.admin-sidebar-bottom{display:none}.admin-nav{grid-template-columns:repeat(3,minmax(0,1fr));gap:.25rem}.admin-nav a{justify-content:center;gap:.4rem;padding:.55rem .25rem;font-size:.75rem}.admin-topbar{height:58px}.admin-content{padding:1rem}.admin-modal-backdrop{align-items:end;padding:0}.admin-modal{width:100%;max-height:92vh;padding:1.25rem 1rem;border-radius:14px 14px 0 0}.admin-modal-heading{display:block}.admin-modal-heading p{max-width:none}.admin-modal .admin-form .btn{width:100%}}
@media(max-width:760px){.admin-nav.admin-nav{grid-template-columns:1fr;gap:.2rem;overflow:visible}.admin-nav .admin-nav-children a{justify-content:flex-start;padding:.5rem .6rem;font-size:.8rem}.admin-nav-children{grid-template-columns:repeat(2,minmax(0,1fr));margin-left:.6rem}}

/* ERP: cadastros, fiscal, vendas, compras e estoque */
.admin-fieldset{display:grid;gap:.6rem;padding:1rem;border:1px solid var(--line);border-radius:8px;background:#fff;margin:0 0 1rem}
.admin-fieldset>legend{padding:0 .35rem;font-weight:700}
.admin-kind-switch{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin:.2rem 0 .8rem}
.admin-kind-switch a{padding:.35rem .8rem;border:1px solid var(--line);border-radius:99px;font-size:.85rem}
.admin-kind-switch a.is-current{background:#172333;color:#fff;border-color:#172333}
.admin-hint{color:var(--muted);font-size:.85rem;margin:.3rem 0}
.admin-readonly{margin:.4rem 0;color:var(--ink)}
.admin-badge{display:inline-block;margin-left:.4rem;padding:.1rem .45rem;border-radius:99px;font-size:.72rem;font-weight:700;vertical-align:middle}
.admin-badge.is-warning{background:#fff1d6;color:#75520c}
.admin-badge.is-info{background:#e7eef8;color:#1f4a7a}
.admin-badge.is-success{background:#e5f3e9;color:#246443}
.admin-badge.is-danger{background:#f9e8e5;color:#8c382f}
.admin-section{margin-top:1.6rem}
.admin-inline-form{display:flex;gap:.6rem;align-items:end;flex-wrap:wrap}
.admin-inline-form label{display:grid;gap:.2rem;font-size:.85rem;color:var(--muted)}
.admin-inline-form input,.admin-inline-form select{padding:.45rem .55rem;border:1px solid var(--line);border-radius:6px;font:inherit;min-width:110px}
.admin-inline-form .btn{margin:0}
.admin-table td.num,.admin-table th.num{text-align:right}
.admin-table input[type=number]{width:7rem;padding:.35rem .45rem;border:1px solid var(--line);border-radius:6px;font:inherit}
.admin-qty-in{color:#246443;font-weight:600}.admin-qty-out{color:#8c382f;font-weight:600}
.admin-issues{display:grid;gap:.8rem}
.admin-issues section{padding:.8rem 1rem;border:1px solid #f0d49a;border-radius:8px;background:#fffaf0}
.admin-issues h3{margin:0 0 .4rem;font-size:.95rem}
.admin-issues ul{margin:0;padding-left:1.1rem}
.admin-fiscal-status{display:inline-block;padding:.25rem .7rem;border-radius:99px;font-weight:700;font-size:.85rem}
.admin-fiscal-status.is-ready{background:#e5f3e9;color:#246443}
.admin-fiscal-status.is-pending{background:#fff1d6;color:#75520c}
.admin-fiscal-status.is-invoiced{background:#e7eef8;color:#1f4a7a}
.admin-totals{display:grid;grid-template-columns:max-content max-content;gap:.3rem 1.2rem;justify-content:end;margin:1rem 0}
.admin-totals dt{color:var(--muted)}.admin-totals dd{margin:0;text-align:right}
.admin-totals .total{font-weight:700;font-size:1.1rem;color:var(--ink)}
.admin-choice{display:flex;gap:1rem;flex-wrap:wrap;margin:.3rem 0 .8rem}
.admin-choice label{display:flex;gap:.4rem;align-items:center}
@media(max-width:680px){.admin-inline-form{display:grid}.admin-inline-form input,.admin-inline-form select{width:100%}.admin-totals{justify-content:stretch}}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* specs/015-logo-oficial — logo oficial (contracts/brand-logo.md; tamanhos por altura, research R5) */
.brand-logo{display:inline-block;padding:.7em;width:auto;height:auto;overflow:visible}
.brand-logo--symbol{min-width:24px;padding:0;width:2.5em}
.brand-logo--color{color:var(--brand-grape)}
.brand-logo--kraft{color:var(--brand-kraft)}
.brand-logo--negative{color:var(--brand-gold)}
/* specs/008-novo-layout-loja — layout da loja, mobile-first (contracts/design-system.md §5). Seletores que o admin
   também usa (.btn, .product, .auth, h1–h3...) só aparecem como .store <seletor> (research R13). */
.store{display:flex;flex-direction:column;min-height:100vh}
.store main{flex:1}
.store h1,.store h2,.store h3,.section-title{font-weight:600;letter-spacing:.01em}
.section-title{text-align:center;font-size:clamp(1.6rem,3.5vw,2.2rem);margin:2.5rem 0 1.2rem}
.icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
.icon-whatsapp{fill:currentColor;stroke:none}
.badge{background:var(--accent);color:var(--on-accent);border-radius:99px;padding:0 .45rem;font-size:.72rem;font-weight:600}
.announce{background:var(--dark);color:var(--on-dark);font-size:.72rem;text-transform:uppercase;letter-spacing:var(--tracking-label);display:flex;gap:2.5rem;justify-content:center;padding:.5rem 16px;overflow-x:auto;white-space:nowrap;scrollbar-width:none}
.site-header{background:var(--card);border-bottom:1px solid var(--line);z-index:20}
.site-header-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;padding:.4rem 0}
.site-logo{grid-column:2;display:block}
.site-logo .brand-logo{height:calc(60px + 1.4em)}
.site-search{display:flex;border-bottom:1px solid var(--field-border);max-width:280px}
.site-search input{flex:1;min-width:0;border:0;background:transparent;padding:.55rem .2rem;font:inherit;color:var(--ink)}
.site-search button{border:0;background:transparent;color:var(--ink);cursor:pointer;min-width:44px;min-height:44px;display:grid;place-items:center}
.site-actions{display:flex;justify-content:flex-end;align-items:center;gap:1.2rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}
.site-actions a{display:flex;align-items:center;gap:.4rem;min-height:44px;white-space:nowrap}
.site-header-row>.site-search,.site-actions,.site-menu{display:none}
.site-menu>summary,.search-pop>summary{list-style:none;display:grid;place-items:center;min-width:44px;min-height:44px;cursor:pointer}
.site-menu>summary::-webkit-details-marker,.search-pop>summary::-webkit-details-marker{display:none}
.site-menu .drawer-panel{bottom:0;font-size:1rem;text-transform:none;letter-spacing:normal}
.drawer-menu.site-menu[open]::before{inset:0}
.search-pop{position:relative}
.search-pop .site-search{position:absolute;z-index:1;right:0;top:100%;width:320px;max-width:none;padding:.3rem .3rem .3rem .9rem;background:var(--card);border:1px solid var(--line);box-shadow:0 12px 24px var(--shadow);text-transform:none;letter-spacing:normal}
.mega{display:none;border-top:1px solid var(--line)}
.mega>ul{list-style:none;margin:0 auto;padding:0;display:flex;justify-content:center;flex-wrap:wrap}
.mega>ul>li>a{display:block;padding:.85rem 1.1rem;font-size:.78rem;text-transform:uppercase;letter-spacing:var(--tracking-label)}
.mega>ul>li:hover>a,.mega>ul>li:focus-within>a{box-shadow:inset 0 -2px 0 var(--accent)}
.mega-panel{display:none;position:absolute;left:0;right:0;background:var(--card);border-top:1px solid var(--line);border-bottom:1px solid var(--line);box-shadow:0 18px 30px var(--shadow);padding:1.5rem max(16px,calc((100% - 1180px)/2))}
.mega-panel ul{list-style:none;margin:0 0 1rem;padding:0;columns:3 200px}
.mega-panel li a{display:block;padding:.35rem 0;font-size:.9rem}
.mega-panel li a:hover{color:var(--muted)}
.mega-all{display:inline-block;font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;text-decoration:underline;text-underline-offset:4px}
.mega>ul>li:hover>.mega-panel,.mega>ul>li:focus-within>.mega-panel{display:block}
.store .flash{margin:1rem 0}
.hero-banners .slides{display:grid;grid-auto-flow:column;grid-auto-columns:100%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.hero-banners .slide{scroll-snap-align:start;aspect-ratio:4/5;position:relative;overflow:hidden}
.slide-link,.hero-banners picture{display:block;height:100%}
.hero-banners .slide img{width:100%;height:100%;object-fit:cover}
/* Carrossel (specs/009-banner-carrossel, contracts/banner-carousel.md §4): controles sobre fundo grafite próprio (contraste sobre qualquer foto). */
.hero-banners{position:relative}
.hero-banners:not([data-carousel]) .slides{overflow:hidden}
.carousel-prev,.carousel-next,.carousel-pause,.carousel-dot{border:0;padding:0;cursor:pointer;color:var(--on-dark);font:inherit}
.carousel-prev,.carousel-next{position:absolute;top:50%;z-index:2;transform:translateY(-50%);width:44px;height:44px;border-radius:var(--radius-btn);background:color-mix(in srgb,var(--brand-grape) 75%,transparent);display:none;place-items:center}
.carousel-prev{left:16px}.carousel-next{right:16px}
.carousel-bar{position:absolute;bottom:12px;left:50%;z-index:2;transform:translateX(-50%);display:flex;align-items:center;padding:0 .4rem;border-radius:var(--radius-btn);background:color-mix(in srgb,var(--brand-grape) 75%,transparent);max-width:calc(100% - 32px)}
.carousel-dots{display:flex}
.carousel-pause,.carousel-dot{width:44px;height:44px;background:transparent;display:grid;place-items:center}
.carousel-dot::before{content:"";width:10px;height:10px;border-radius:var(--radius-btn);background:var(--on-dark);transition:width .2s}
.carousel-dot[aria-current="true"]::before{width:24px;background:var(--brand-gold-light)}
.hero-banners svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.hero-banners .icon-play{fill:currentColor;display:none}
.carousel-pause.is-paused .icon-pause{display:none}.carousel-pause.is-paused .icon-play{display:block}
@media(prefers-reduced-motion:reduce){.carousel-dot::before{transition:none}}
.benefits{background:var(--surface);border-block:1px solid var(--line)}
.benefits-row{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(210px,1fr);overflow-x:auto;gap:1rem;padding-block:1rem;scrollbar-width:none}
.benefits-row>div{display:grid;grid-template-columns:auto 1fr;column-gap:.7rem;align-items:center}
.benefits-row .icon{grid-row:span 2;width:30px;height:30px;color:var(--decor)}
.benefits-row strong{font-size:.85rem}
.benefits-row span{font-size:.78rem;color:var(--muted)}
.benefits-row span a{color:inherit;text-decoration:underline}
.category-tiles .section-title::after{content:"";display:block;width:32px;height:2px;margin:.8rem auto 0;background:var(--accent)}
.category-track{list-style:none;margin:0 auto;padding:.25rem .25rem .75rem;display:grid;grid-auto-flow:column;grid-auto-columns:clamp(108px,28vw,170px);gap:1.25rem;width:max-content;max-width:100%;overflow-x:auto;scroll-snap-type:x mandatory}
.category-track li{scroll-snap-align:start;min-width:0}
.category-track a{display:grid;gap:.7rem;justify-items:center;text-align:center;border-radius:8px}
.category-track a:focus-visible{outline:2px solid var(--focus);outline-offset:4px}
.category-image{display:grid;place-items:center;width:100%;aspect-ratio:1;border-radius:50%;background:var(--surface);overflow:hidden;color:var(--decor)}
.category-image img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.category-track a:hover .category-image img{transform:scale(1.05)}
.category-name{font-size:.85rem;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.shelf-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}
.shelf-head .section-title{text-align:left;margin-bottom:1rem}
.shelf-more{font-size:.75rem;text-transform:uppercase;letter-spacing:var(--tracking-label);text-decoration:underline;text-underline-offset:4px;white-space:nowrap}
.shelf-frame{position:relative}
.shelf-track{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(200px,46%);gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:.5rem .75rem 1.5rem;margin:-.5rem -.75rem -1rem;scroll-padding-inline:.75rem}
.shelf-track>.card{scroll-snap-align:start}
.shelf-prev,.shelf-next{position:absolute;top:35%;z-index:2;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--ink);font-size:1.4rem;cursor:pointer;box-shadow:0 4px 12px var(--shadow)}
.shelf-prev{left:-12px}.shelf-next{right:-12px}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem 1rem}
.card{background:var(--card);display:flex;flex-direction:column;gap:.3rem;min-width:0;transition:transform .25s ease}
.card-img{position:relative;overflow:hidden;aspect-ratio:1;background:var(--surface);border-radius:var(--radius-card);isolation:isolate;transition:box-shadow .25s ease}
.card-img img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease,opacity .35s}
.card-img-alt{position:absolute;inset:0;opacity:0}
@media(hover:hover){.card:hover .card-img-alt{opacity:1}}
/* specs/013-cards-produto-destaque: destaque ao passar o cursor; movimento só sem "reduzir movimento" (contracts/card-produto.md §4) */
@media(hover:hover){.card:hover .card-img{box-shadow:0 12px 24px -12px var(--shadow-lift)}}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.card:hover{transform:translateY(-4px)}.card:hover .card-img img{transform:scale(1.04)}}
.card:has(:focus-visible) .card-img{box-shadow:0 12px 24px -12px var(--shadow-lift)}
@media(prefers-reduced-motion:no-preference){.card:has(:focus-visible){transform:translateY(-4px)}.card:has(:focus-visible) .card-img img{transform:scale(1.04)}}
.card-img-fallback{display:grid;place-items:center;height:100%;color:var(--decor)}
.card-img-fallback .brand-logo{width:35%}
.card h3{font-family:var(--font-sans);font-size:.88rem;font-weight:500;margin:.4rem 0 0;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.7em}
.price{margin:0}.price s{color:var(--muted);margin-right:.4rem;font-size:.85rem}.price strong{font-size:1.05rem}
.price.big strong{font-size:1.8rem}
.installments{margin:0;color:var(--muted);font-size:.78rem}
.tag{position:absolute;left:.5rem;top:.5rem;background:var(--dark);color:var(--on-dark);font-size:.65rem;padding:.2rem .55rem;text-transform:uppercase;letter-spacing:.12em;border-radius:4px}
.tag.sale{background:var(--danger);color:var(--on-danger)}.tag.out{background:var(--muted)}
.store .btn{border-radius:var(--radius-btn);text-transform:uppercase;letter-spacing:var(--tracking-label);font-size:.75rem;font-weight:600;min-height:44px;padding:.8rem 1.4rem;display:inline-flex;align-items:center;justify-content:center}
.store .btn.is-disabled{background:var(--surface);color:var(--muted);cursor:default}
.store .card .btn{margin-top:.5rem}
/* specs/014-favoritar-produtos: coração no card (canto direito, longe das etiquetas) e na página do produto */
.card{position:relative}
.fav{display:inline-flex;margin:0}
.fav button,a.fav{display:grid;place-items:center;width:40px;height:40px;padding:0;border:0;border-radius:50%;background:color-mix(in srgb,var(--card) 85%,transparent);color:var(--dark);cursor:pointer;box-shadow:0 2px 8px var(--shadow);transition:transform .15s ease}
.fav button:hover,a.fav:hover{transform:scale(1.08)}
.fav .is-on .icon{fill:currentColor}
.fav button:focus-visible,a.fav:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.card-fav{position:absolute;top:.5rem;right:.5rem;z-index:2}
.product-title{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.product-title .fav button,.product-title a.fav{background:var(--surface)}
@media(prefers-reduced-motion:reduce){.fav button,a.fav{transition:none}.fav button:hover,a.fav:hover{transform:none}}
.fav-live{position:fixed;left:50%;bottom:72px;z-index:40;transform:translateX(-50%);max-width:calc(100% - 32px);padding:.7rem 1rem;border-radius:6px;background:var(--dark);color:var(--on-dark);font-size:.85rem}
.fav-live:empty{display:none}
/* Aviso de cadastro: <dialog> aberto pelo script (showModal) ou já aberto pelo servidor (?favoritos=aviso) */
.fav-notice{width:min(92vw,420px);padding:1.6rem 1.4rem 1.4rem;border:0;border-radius:var(--radius-card);background:var(--card);color:var(--ink);box-shadow:0 24px 48px var(--shadow-lift);text-align:center}
.fav-notice[open]:not(:modal){position:fixed;top:50%;left:50%;z-index:41;transform:translate(-50%,-50%);margin:0}
.fav-notice::backdrop{background:var(--overlay)}
.fav-notice-scrim{position:fixed;inset:0;z-index:40;background:var(--overlay)}
.fav-notice h2{margin:.2rem 0 .6rem}
.fav-notice p{margin:0 0 1.2rem;color:var(--muted)}
.fav-notice .fav-notice-icon{width:40px;height:40px;color:var(--dark);fill:currentColor}
.fav-notice-actions{display:grid;gap:.6rem}
.fav-notice-login{min-height:44px;display:inline-flex;align-items:center;justify-content:center;text-decoration:underline;text-underline-offset:3px}
.fav-notice-close{position:absolute;top:.4rem;right:.6rem;width:44px;height:44px;display:grid;place-items:center;font-size:1.5rem;line-height:1;color:var(--ink);background:none;border:0;cursor:pointer}
.brand-story{background:var(--brand-band);color:var(--on-brand-band);text-align:center;padding:3.5rem 0;margin-top:3rem}
.brand-story .brand-logo{height:calc(min(220px,50vw) + 1.4em)}
.brand-story::before{content:"";display:block;width:80px;height:2px;margin:0 auto 1.5rem;background:var(--metallic)}
.brand-story-tagline{font-size:clamp(1.6rem,4vw,2.4rem);margin:.5rem 0}
.brand-story p{max-width:60ch;margin-inline:auto}
.brand-segments{list-style:none;padding:0;margin:1.5rem 0 0;display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap}
.store .brand-segments .btn{border-color:var(--on-brand-band);color:var(--on-brand-band)}
.newsletter-band{background:var(--surface);color:var(--ink);text-align:center;padding:2.5rem 0;border-top:1px solid var(--line)}
.newsletter-band h2{margin:0 0 .3rem;font-size:clamp(1.5rem,3vw,2rem)}
.newsletter-band p{margin:0 0 1rem}
.newsletter-band form{display:flex;max-width:460px;margin:0 auto}
.newsletter-band input{flex:1;min-width:0;padding:.75rem .9rem;border:1px solid var(--field-border);border-right:0;border-radius:var(--radius-btn) 0 0 var(--radius-btn);background:var(--card);font:inherit;color:var(--ink)}
.newsletter-band button{border:0;border-radius:0 var(--radius-btn) var(--radius-btn) 0;background:var(--btn-bg);color:var(--btn-fg);padding:0 1.2rem;min-height:44px;cursor:pointer;text-transform:uppercase;letter-spacing:.12em;font:inherit;font-size:.75rem;font-weight:600}
.newsletter-band button:hover{background:var(--btn-hover-bg);color:var(--btn-hover-fg)}
.site-footer{background:var(--footer-bg);color:var(--footer-fg);padding-top:2.5rem}
.site-footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:2rem}
.site-footer-brand .brand-logo{height:calc(120px + 1.4em);padding-left:0}
.site-footer h4{color:var(--footer-accent);font-size:.72rem;text-transform:uppercase;letter-spacing:var(--tracking-label);margin:0 0 .8rem;font-weight:600}
.site-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:.4rem;font-size:.88rem}
.site-footer a{min-height:24px;display:inline-block}
.site-footer .whatsapp-link{display:inline-flex;align-items:center;gap:.45rem}
.site-footer .whatsapp-link .icon{width:16px;height:16px}
.site-footer .social-links{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.2rem}
.site-footer .social-links a{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--footer-fg);color:var(--footer-bg);transition:background .2s}
.site-footer .social-links a:hover{background:var(--footer-accent);text-decoration:none}
.site-footer .social-links .icon{width:22px;height:22px;stroke-width:2}
.site-footer .social-links .icon-filled{fill:currentColor;stroke:none}
.site-footer a:hover{text-decoration:underline;text-underline-offset:3px}
.site-footer-copy{border-top:1px solid color-mix(in srgb,var(--footer-fg) 20%,transparent);margin-top:2rem;padding:1.2rem 0;font-size:.75rem;text-align:center}
.site-footer a:focus-visible,.bottom-bar a:focus-visible{outline-color:var(--footer-fg)}
.bottom-bar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(5,1fr);background:var(--card);border-top:1px solid var(--line);box-shadow:0 -4px 16px var(--shadow)}
.bottom-bar>a,.bottom-bar>.drawer-menu>summary{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;min-height:56px;font-size:.62rem;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;list-style:none;min-width:0;text-align:center}
.bottom-bar>.drawer-menu>summary::-webkit-details-marker{display:none}
.store{padding-bottom:56px}
.drawer-panel{position:fixed;top:0;left:0;bottom:56px;width:min(86vw,360px);background:var(--card);overflow-y:auto;padding:1rem;box-shadow:8px 0 24px var(--shadow);z-index:31}
.drawer-menu[open]::before{content:"";position:fixed;inset:0 0 56px 0;background:var(--overlay);z-index:30}
.drawer-panel .site-search{max-width:none;margin-bottom:1rem}
.drawer-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.drawer-list>li{border-bottom:1px solid var(--line)}
.drawer-list a,.drawer-list summary{display:flex;align-items:center;min-height:48px;font-size:.85rem;text-transform:uppercase;letter-spacing:.1em;cursor:pointer}
.drawer-list details ul{list-style:none;margin:0 0 .5rem;padding:0 0 0 1rem}
.drawer-list details a{text-transform:none;letter-spacing:0;min-height:44px}
.drawer-account{margin-top:1.5rem}
.cart-drawer{position:fixed;inset:0;z-index:40}
.cart-drawer-overlay{position:absolute;inset:0;background:var(--overlay)}
.cart-drawer-panel{position:absolute;top:0;right:0;width:min(92vw,400px);height:100dvh;background:var(--card);box-shadow:-8px 0 24px var(--shadow);display:flex;flex-direction:column;padding:1.2rem;overflow-y:auto}
.cart-drawer-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:.8rem}
.cart-drawer-head h2{margin:0;font-size:1.6rem}
.cart-drawer-close{font-size:1.8rem;line-height:1;min-width:44px;min-height:44px;display:grid;place-items:center}
.cart-drawer-empty{text-align:center;margin:auto 0}
.cart-drawer-empty .brand-logo{height:calc(120px + 1.4em)}
.cart-drawer-lines{list-style:none;margin:0;padding:0;flex:1}
.cart-drawer-lines li{display:grid;grid-template-columns:64px 1fr auto;gap:.8rem;align-items:center;padding:.8rem 0;border-bottom:1px solid var(--line);font-size:.85rem}
.cart-drawer-lines img{width:64px;height:64px;object-fit:cover}
.cart-drawer-lines span{display:block;color:var(--muted);font-size:.78rem}
.cart-drawer-totals{display:grid;grid-template-columns:1fr auto;gap:.4rem;margin:1rem 0}
.cart-drawer-totals dd{margin:0;text-align:right;font-weight:600}
.cart-drawer-actions{display:grid;gap:.6rem}
.cart-drawer-continue{text-align:center;font-size:.8rem;text-decoration:underline;text-underline-offset:3px;min-height:44px;display:grid;place-items:center}
.gallery{display:grid;gap:.6rem;min-width:0}
.gallery-track{display:grid;grid-auto-flow:column;grid-auto-columns:100%;overflow-x:auto;scroll-snap-type:x mandatory;background:var(--surface);scrollbar-width:none}
.gallery-track>*{scroll-snap-align:start;aspect-ratio:1}
.gallery-slide{display:block;overflow:hidden;cursor:zoom-in;position:relative}
.gallery-slide img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .2s ease}
.gallery-slide:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}
/* Lupa (storefront.js, só com mouse): amplia dentro do quadro a partir do ponteiro, sem mexer no layout (FR-006a). */
.gallery-slide.is-magnified img{transform:scale(2.5)}
/* Ícone de lupa no canto: indica que a foto amplia (FR-006); sempre visível no toque. */
.gallery-slide::before,.gallery-slide::after{content:"";position:absolute;right:10px;bottom:10px;width:36px;height:36px;opacity:0;transition:opacity .2s;pointer-events:none}
.gallery-slide::before{border-radius:var(--radius-btn);background:color-mix(in srgb,var(--surface) 85%,transparent)}
.gallery-slide::after{background:var(--ink);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='m20 20-4.8-4.8M10.5 7.5v6M7.5 10.5h6'/%3E%3C/svg%3E") center/20px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='m20 20-4.8-4.8M10.5 7.5v6M7.5 10.5h6'/%3E%3C/svg%3E") center/20px no-repeat}
.gallery-slide:hover::before,.gallery-slide:hover::after,.gallery-slide:focus-visible::before,.gallery-slide:focus-visible::after{opacity:1}
@media(hover:none){.gallery-slide::before,.gallery-slide::after{opacity:1}}
.gallery-slide.is-magnified::before,.gallery-slide.is-magnified::after{opacity:0}
@media(prefers-reduced-motion:reduce){.gallery-slide img,.gallery-slide::before,.gallery-slide::after{transition:none}}
/* Ampliação em tela cheia (<dialog> nativo): foto inteira, sem recorte, faixa com encaixe como a galeria (FR-005, FR-008). */
dialog.zoom{width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;overflow:hidden;background:color-mix(in srgb,var(--ink) 94%,transparent);color:var(--on-dark)}
dialog.zoom::backdrop{background:var(--overlay)}
.zoom-track{display:grid;grid-auto-flow:column;grid-auto-columns:100%;height:100%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior:contain}
.zoom-track::-webkit-scrollbar{display:none}
.zoom-slide{margin:0;display:grid;place-items:center;min-width:0;padding:64px clamp(8px,5vw,72px);scroll-snap-align:start}
.zoom-slide img{max-width:100%;max-height:calc(100dvh - 128px);width:auto;height:auto;object-fit:contain}
.zoom-slide p{margin:0;font-size:.9rem}
.zoom-close,.zoom-prev,.zoom-next{position:absolute;z-index:1;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:var(--radius-btn);background:color-mix(in srgb,var(--brand-grape) 75%,transparent);color:var(--on-dark);font:inherit;font-size:1.6rem;line-height:1;cursor:pointer}
.zoom-close{top:12px;right:12px}
.zoom-prev,.zoom-next{top:50%;transform:translateY(-50%)}
.zoom-prev{left:12px}
.zoom-next{right:12px}
.zoom-close:focus-visible,.zoom-prev:focus-visible,.zoom-next:focus-visible{outline:2px solid var(--on-dark);outline-offset:2px}
.zoom-count{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);margin:0;padding:.3rem .8rem;border-radius:var(--radius-btn);background:color-mix(in srgb,var(--brand-grape) 75%,transparent);font-size:.8rem}
html:has(dialog.zoom[open]){overflow:hidden}
.gallery-fallback{display:grid;place-items:center;color:var(--decor)}
.gallery-fallback .brand-logo{width:30%}
.gallery-thumbs{display:flex;gap:.5rem;overflow-x:auto}
.gallery-thumbs a{flex:none;width:64px;height:64px;border:1px solid var(--line)}
.gallery-thumbs a:hover,.gallery-thumbs a:focus-visible{border-color:var(--ink)}
.gallery-thumbs a[aria-current="true"]{border-color:var(--ink)}
.gallery-thumbs img{width:100%;height:100%;object-fit:cover}
.store .product{grid-template-columns:1fr;gap:1.5rem}

.store .auth{border-radius:2px}
.store .form input,.store .form select{min-height:44px}
.store .pager a{min-width:44px;min-height:44px;display:grid;place-items:center;border-radius:var(--radius-btn)}
.store .cols{grid-template-columns:1fr}
.store table.cart{display:block;overflow-x:auto}
.store .container{overflow-wrap:break-word}
.list-head h1{font-size:clamp(1.6rem,3vw,2.2rem)}
@media(min-width:48em){
.store{padding-bottom:0}
.bottom-bar{display:none}
.site-header{position:sticky;top:0}
/* Cabeçalho expandido (topo da página): logo central, ícones à direita e categorias abaixo. */
.site-header-row{grid-template-columns:1fr auto 1fr;grid-template-areas:". logo actions";gap:2rem}
.site-logo{grid-area:logo}
.site-logo .brand-logo{height:calc(72px + 1.4em)}
.site-actions{display:flex;grid-area:actions;gap:.4rem}
.site-actions a{min-width:44px;justify-content:center}
.site-actions a:has(.icon)>span:not(.badge){position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.site-cart{position:relative}
.site-cart .badge{position:absolute;top:2px;right:0;letter-spacing:0}
.mega{display:block;border-top:0}
/* Cabeçalho compacto (ao rolar, storefront.js): hambúrguer + logo à esquerda, busca no centro, categorias no menu lateral. */
.site-header.is-compact{box-shadow:0 6px 18px var(--shadow)}
.is-compact .site-header-row{grid-template-columns:auto auto minmax(0,1fr) auto;grid-template-areas:"menu logo search actions";gap:1.5rem}
.is-compact .site-menu{display:block;grid-area:menu}
.is-compact .site-logo .brand-logo{height:calc(48px + 1.4em);padding:.4em 0}
.is-compact .site-header-row>.site-search{display:flex;grid-area:search;justify-self:center;width:100%;max-width:480px;border:0;border-radius:4px;background:var(--surface);padding-left:.9rem}
.is-compact .search-pop,.is-compact .mega{display:none}
.mega>ul>li{position:static}
.mega>ul{position:relative}
.hero-banners .slide{aspect-ratio:3/1}
.carousel-prev,.carousel-next{display:grid}
.benefits-row{grid-auto-flow:row;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));overflow:visible}
.category-track{gap:1.75rem}
.grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/* Foto com metade da largura que tinha em 1fr 1fr: (100% − gap) / 4 (specs/018, FR-001). */
.store .product{grid-template-columns:calc((100% - 2.5rem) / 4) minmax(0,1fr);gap:2.5rem;align-items:start}
/* Com miniaturas: a mesma foto (W) + vão + coluna de W/5, onde cabem 5 miniaturas na altura da foto (FR-012). Só no desktop:
   no celular as miniaturas seguem em faixa abaixo da foto (FR-016). */
.store .product.has-thumbs{grid-template-columns:calc((100% - 2.5rem) * .3 + .6rem) minmax(0,1fr)}
.has-thumbs .gallery{grid-template-columns:minmax(0,1fr) minmax(0,5fr);align-items:stretch}
.has-thumbs .gallery-track{grid-column:2;grid-row:1}
/* contain:size: a coluna não empurra a altura da linha; acompanha a foto quadrada ao lado. */
.has-thumbs .gallery-thumbs{grid-column:1;grid-row:1;contain:size;display:grid;grid-template-rows:repeat(5,minmax(0,1fr));gap:.4rem;min-height:0;overflow-x:hidden;overflow-y:auto;scrollbar-width:thin}
.has-thumbs .gallery-thumbs a{width:auto;height:auto;min-height:0}
.store .cols{grid-template-columns:2fr 1fr}
}
.hero-banners [hidden]{display:none!important}
@media(min-width:64em){
.shelf-track{grid-auto-columns:calc(25% - .75rem)}
.grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(min-width:90em){
.shelf-track{grid-auto-columns:calc(20% - .8rem)}
.grid{grid-template-columns:repeat(5,minmax(0,1fr))}
}
@media(min-width:120em){
.shelf-track{grid-auto-columns:calc(16.666% - .84rem)}
.grid{grid-template-columns:repeat(6,minmax(0,1fr))}
}
.not-found{text-align:center;margin-inline:auto}.not-found .brand-logo{height:calc(140px + 1.4em)}
.admin-banner-thumb{width:120px;height:40px;object-fit:cover;border:1px solid var(--line);border-radius:4px}
.admin-banner-preview{display:block;max-width:100%;max-height:160px;object-fit:contain;border:1px solid var(--line);border-radius:6px;margin:.3rem 0}
.admin-category-thumb{width:40px;height:40px;border-radius:50%;object-fit:cover;border:1px solid var(--line);vertical-align:middle}
.admin-category-thumb.is-large{display:block;width:160px;height:160px;margin:.3rem 0}
.admin-banner-preview.is-mobile{max-height:200px}
.drawer-list summary::after{content:"+";margin-left:auto;font-size:1.1rem}
.drawer-list details[open]>summary::after{content:"−"}
/* specs/017-descricao-detalhada-produto: resumo, ficha de características, seções recolhíveis e textos formatados */
.store .product-summary{margin:.25rem 0 0;color:var(--muted)}
.store .product-details{margin:0 0 2.5rem;border-bottom:1px solid var(--line)}
.store .product-details details{border-top:1px solid var(--line)}
.store .product-details summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 0;cursor:pointer;list-style:none}
.store .product-details summary::-webkit-details-marker{display:none}
.store .product-details summary::after{content:"+";font-size:1.4rem;line-height:1;color:var(--muted)}
.store .product-details details[open]>summary::after{content:"−"}
.store .product-details summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.store .product-details summary h2{display:inline;margin:0;font-size:1rem;font-weight:600}
.store .product-details details>:not(summary){margin-bottom:1.25rem}
.store .rich-text{max-width:70ch}
.store .rich-text p{margin:0 0 .9rem}
.store .rich-text h3{margin:1.25rem 0 .5rem;font-size:1.05rem}
.store .rich-text h4{margin:1rem 0 .4rem;font-size:.95rem}
.store .rich-text ul,.store .rich-text ol{margin:0 0 .9rem;padding-left:1.3rem}
.store .rich-text li+li{margin-top:.25rem}
.store .rich-text>:last-child{margin-bottom:0}
.store .institutional-page .rich-text{max-width:none}
.store .institutional-updated{margin-top:1.5rem;font-size:.85rem;color:var(--muted)}
.admin-rich-field{display:grid;gap:.35rem}
.admin-rich-toolbar{display:flex;flex-wrap:wrap;gap:.35rem}
.admin-rich-toolbar button{min-width:2.25rem;padding:.3rem .6rem;border:1px solid var(--line);border-radius:6px;background:#fff;font:inherit;font-weight:700;cursor:pointer}
.admin-rich-preview-button{justify-self:start;margin-top:0}
.admin-rich-preview{padding:1rem;border:1px dashed var(--line);border-radius:8px;background:#fff}
.admin-rich-preview:empty{display:none}
.admin-rich-preview p,.admin-rich-preview ul,.admin-rich-preview ol{margin:0 0 .6rem}
.admin-rich-preview ul,.admin-rich-preview ol{padding-left:1.3rem}
.admin-char-count{display:block;text-align:right;color:var(--muted);font-size:.8rem}
/* Página do produto (specs/020, contracts/product-page.md §3): coluna de compra no modelo de referência. */
.product-title h1{margin:0}
.product-actions{display:flex;gap:.5rem;flex:none}
.share-btn{display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--dark);cursor:pointer}
.share-btn svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.share-btn:hover{border-color:var(--ink)}
.store [data-share-status]:not(.visually-hidden){display:block;margin:.25rem 0 0;color:var(--ok);font-size:.85rem}
.product-ref{margin:.35rem 0 0;color:var(--muted);font-size:.85rem}
.product-ref span{color:var(--ink);font-weight:600}
.product-views{display:flex;align-items:center;gap:.4rem;margin:.6rem 0 0;color:var(--muted);font-size:.85rem}
.product-views svg{flex:none;fill:none;stroke:currentColor;stroke-width:2}
.product-views strong{color:var(--ink)}
.store .product-info .price.big{margin-top:1rem}
.price-unit{margin-left:.35rem;color:var(--muted);font-size:.75rem;font-weight:600;text-transform:uppercase}
.related-mini{margin:1.25rem 0 0}
.related-mini h2{margin:0 0 .5rem;font-size:.85rem;font-weight:500}
.related-mini ul{display:grid;grid-template-columns:repeat(4,minmax(44px,96px));gap:.5rem;margin:0;padding:0;list-style:none}
.related-mini a{position:relative;display:block;aspect-ratio:1;border:1px solid var(--line);background:var(--card);overflow:hidden}
.related-mini a:hover,.related-mini a:focus-visible{border-color:var(--ink)}
.related-mini img{width:100%;height:100%;object-fit:cover;display:block}
.related-fallback{display:grid;place-items:center;width:100%;height:100%}
.related-fallback .brand-logo{width:50%}
.related-caption{position:absolute;inset:auto 0 0 0;display:none;padding:.25rem .3rem;background:color-mix(in srgb,var(--card) 92%,transparent);font-size:.68rem;line-height:1.25;overflow-wrap:anywhere}
.related-caption strong{display:block}
.related-mini a:hover .related-caption,.related-mini a:focus-visible .related-caption{display:block}
@media(hover:none){.related-mini ul{grid-template-columns:repeat(4,minmax(0,1fr))}.related-caption{position:static;display:block;background:none;padding:.25rem 0 0}.related-mini a{aspect-ratio:auto;border:0;background:none}.related-mini img{aspect-ratio:1;border:1px solid var(--line)}}
.store .buy{display:grid;gap:.5rem;align-items:stretch;margin:1.25rem 0 1rem}
.store .buy>label{font-size:.85rem;color:var(--muted)}
.qty{display:inline-flex;align-items:stretch;justify-self:start;border:1px solid var(--field-border);border-radius:6px;overflow:hidden;background:var(--card)}
.store .buy .qty input[type=number]{width:4.5rem;min-height:44px;border:0;border-radius:0;text-align:center}
.qty.is-enhanced input[type=number]{-moz-appearance:textfield;appearance:textfield}
.qty.is-enhanced input::-webkit-inner-spin-button,.qty.is-enhanced input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.qty button{min-width:44px;min-height:44px;border:0;background:transparent;color:var(--ink);font:inherit;font-size:1.1rem;cursor:pointer}
.qty button:hover{background:var(--surface)}
.store .buy .low{margin:0}
.buy-btn{width:100%;min-height:48px;text-transform:uppercase;letter-spacing:.06em}
.product-description{margin:1.25rem 0 0;padding-top:1rem;border-top:1px solid var(--line)}
.product-description h2{margin:0 0 .6rem;font-size:1rem;font-weight:500}
.rich-text.is-clamped{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;line-clamp:4;overflow:hidden}
.read-more{min-height:44px;padding:0;border:0;background:none;color:var(--ink);font:inherit;font-size:.8rem;letter-spacing:var(--tracking-label);text-transform:uppercase;text-decoration:underline;cursor:pointer}
.size-guide{margin:1.25rem 0 0}
.size-guide h3{margin:0 0 .6rem;font-size:.8rem;font-weight:700;letter-spacing:var(--tracking-label);text-transform:uppercase}
.size-guide table{width:100%;max-width:360px;border-collapse:collapse;font-size:.85rem}
.size-guide th,.size-guide td{padding:.5rem .75rem;border:1px solid var(--line);text-align:center;font-weight:400;overflow-wrap:anywhere}
.store .product-specs{margin:0 0 2rem}
.store .product-specs h2{margin:0 0 .8rem;font-size:1rem;font-weight:700}
.spec-table{width:100%;border-collapse:collapse;font-size:.85rem}
.spec-table th,.spec-table td{width:50%;padding:.55rem .6rem;text-align:left;vertical-align:top;overflow-wrap:anywhere}
.spec-table th{font-weight:400;text-transform:uppercase;letter-spacing:.04em}
.spec-table tr:nth-child(odd){background:color-mix(in srgb,var(--accent) 45%,var(--bg))}
.admin-attr-list .admin-attr-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr) auto;gap:.5rem;align-items:center}
.admin-attr-row input[aria-invalid=true]{border-color:var(--danger)}
.admin-attr-tools{display:flex;gap:.25rem}
.admin-attr-tools button{min-width:2rem;padding:.25rem .45rem;border:1px solid var(--line);border-radius:6px;background:#fff;font:inherit;cursor:pointer}
.admin-attr-add{justify-self:start;margin-top:0}
/* Sugeridos no cadastro (specs/020): SKU + nome; com JS, lista de busca acessível sob o campo. */
.admin-related-list .admin-related-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:.5rem;align-items:center;margin-bottom:.4rem}
.admin-related-options{position:absolute;z-index:5;top:100%;left:0;right:0;margin:.2rem 0 0;padding:.25rem;list-style:none;background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 6px 18px var(--shadow);max-height:16rem;overflow:auto}
.admin-related-options li{display:flex;gap:.5rem;align-items:center;padding:.4rem;border-radius:4px;cursor:pointer}
.admin-related-options li[aria-selected=true],.admin-related-options li:hover{background:var(--surface)}
.admin-related-options img{width:32px;height:32px;object-fit:cover;border-radius:4px}
.store .warranty-term{margin:0 0 .75rem;font-weight:600}

/* Lista de separação (specs/019): só a tabela na impressão, sem navegação da administração. */
.admin-print-only{display:none}
@media print{
  .admin-sidebar,.admin-nav,.admin-no-print{display:none !important}
  .admin-print-only{display:block}
  .admin-pick-list .admin-table{font-size:11pt}
  .admin-pick-list .admin-table td,.admin-pick-list .admin-table th{padding:.25rem .4rem;border-bottom:1px solid #999}
  .admin-pick-list .admin-table tr{break-inside:avoid}
}

/* Precificação (specs/022): custos à esquerda, markup e preços à direita; uma coluna no celular. */
.admin-app .pricing-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:1rem;align-items:start;margin-top:1rem}
.admin-app .pricing-costs,.admin-app .pricing-price{display:grid;gap:1rem}
.admin-app .pricing-dl{display:grid;grid-template-columns:max-content 1fr;gap:.4rem 1rem;margin:.5rem 0}
.admin-app .pricing-dl dt{color:var(--muted)}
.admin-app .pricing-dl dd{margin:0}
.admin-app .pricing-markup{border-color:var(--gold)}
.admin-app .pricing-markup-form label{font-weight:600}
.admin-app .pricing-markup-inputs{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;margin-top:.5rem}
.admin-app .pricing-markup-inputs input[type=range]{flex:1 1 180px;accent-color:var(--gold-d)}
.admin-app .pricing-markup-inputs input[type=number]{width:7.5rem;padding:.55rem .65rem;border:1px solid var(--line);border-radius:6px;font:inherit;font-size:1.25rem;font-weight:700}
.admin-app .pricing-markup-inputs input[aria-invalid=true]{border-color:#8c382f}
.admin-app .pricing-warnings{margin:.75rem 0 0;padding-left:1.1rem;color:#75520c}
.admin-app .pricing-warnings:empty{display:none}
.admin-app .pricing-money,.admin-app .pricing-result .pricing-money{color:#246443;font-size:1.35rem}
.admin-app .pricing-total strong{font-size:1.25rem}
.admin-app .pricing-loss{color:#8c382f;font-weight:700}
.admin-app .pricing-inline-form{display:flex;gap:.75rem;align-items:end;flex-wrap:wrap}
.admin-app .pricing-inline-form label{display:grid;gap:.25rem;color:var(--muted);font-size:.85rem}
.admin-app .pricing-inline-form input,.admin-app .pricing-inline-form select{padding:.5rem .6rem;border:1px solid var(--line);border-radius:6px;font:inherit;max-width:12rem}
.admin-app .pricing-supplies .admin-subrow-head th{background:#faf7f2;text-transform:none;font-size:.85rem}
.admin-app .pricing-extras{margin:.5rem 0;padding-left:1.1rem}
.admin-app .pricing-confirm textarea{width:100%}
.admin-app .pricing-group-total td{font-weight:700;background:#faf7f2}
@media(max-width:900px){.admin-app .pricing-grid{grid-template-columns:1fr}}

/* Dois preços na loja (specs/022): rótulo "no Pix" e total da forma não escolhida esmaecido no checkout. */
.store .price-method{margin-left:.35rem;color:var(--muted);font-size:.78rem;font-weight:400}
.store .summary [data-total-for].is-dim{opacity:.5}
/* Opções de entrega (specs/023) */
.shipping-options fieldset{border:1px solid var(--line);border-radius:10px;padding:.6rem .9rem;margin:.6rem 0}
.shipping-options legend{font-weight:600;padding:0 .3rem}
.shipping-option{display:flex;align-items:center;gap:.6rem;min-height:44px;cursor:pointer}
.shipping-option-list{list-style:none;padding:0;margin:.6rem 0;display:grid;gap:.3rem}
.shipping-free-hint{margin:.4rem 0 0;color:var(--muted);font-size:.85rem}
.shipping-calc{display:flex;gap:.6rem;align-items:end;flex-wrap:wrap}
.shipping-calc label{flex:1 1 160px}
.admin-shipping-test{display:flex;gap:.6rem;align-items:end;flex-wrap:wrap}
.admin-shipping-test label{flex:1 1 160px}
/* Estimativa de frete no carrinho e no produto (specs/023, US6) */
.shipping-estimate{margin-top:1rem}
.shipping-estimate h2{font-size:1rem;margin:0 0 .4rem}
.shipping-estimate-form{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.shipping-estimate-form input{flex:1 1 8rem;min-width:0}
/* specs/024-cores-vitrine-admin — tela "Aparência da vitrine" */
.admin-appearance-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.9rem 1.2rem}
.admin-appearance-area{margin:.4rem 0 0;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--admin-muted)}
.admin-appearance-field{display:grid;align-content:start;gap:.3rem;min-width:0}
.admin-appearance-field>label{font-weight:600;font-size:.88rem}
.admin-appearance-mark{font-weight:400;color:var(--admin-muted)}
.admin-appearance-input{display:flex;align-items:center;gap:.45rem;min-width:0}
.admin-appearance-input input:not([type=color]),.admin-appearance-input select{min-width:0;flex:1}
.admin-appearance-input input[type=color]{flex:none;width:2.4rem;height:2.4rem;padding:.15rem;border:1px solid var(--admin-line);border-radius:6px;background:var(--admin-surface);cursor:pointer}
.admin-appearance-swatch{flex:none;width:2.4rem;height:2.4rem;border:1px solid var(--admin-line);border-radius:6px}
.admin-appearance-error{margin:0;color:var(--danger);font-size:.8rem;font-weight:600}
.admin-appearance-field input[aria-invalid=true],.admin-appearance-field select[aria-invalid=true]{border-color:var(--danger);outline:2px solid var(--danger);outline-offset:1px}
.admin-appearance-actions{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}
.admin-appearance-free{display:grid;gap:.2rem;font-size:.78rem;color:var(--admin-muted)}
.admin-appearance-free input{font-size:.85rem}
/* specs/024 — amostra da vitrine dentro da administração: classes reais da loja, tokens redefinidos em .theme-preview */
.admin-appearance-layout{display:grid;gap:1.25rem;align-items:start}
@media (min-width:1100px){.admin-appearance-layout{grid-template-columns:minmax(0,1fr) 380px}.admin-appearance-preview{position:sticky;top:1rem}}
.admin-appearance-preview>h2{margin:0 0 .5rem;font-size:1rem}
.admin-appearance-status{display:flex;flex-wrap:wrap;gap:.4rem 1rem;align-items:center;padding:.7rem 1rem;border:1px solid var(--admin-line);border-radius:6px;background:var(--admin-surface)}
.admin-appearance-contrast{padding:.8rem 1rem;border:1px solid var(--danger);border-radius:6px;background:var(--admin-surface)}
.admin-appearance-contrast h3{margin:0 0 .4rem;font-size:.95rem;color:var(--danger)}
.admin-appearance-contrast ul{margin:0;padding-left:1.1rem;font-size:.85rem}
.theme-preview{isolation:isolate;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:.9rem}
.theme-preview .announce{gap:1rem;font-size:.6rem}
.theme-preview-header{display:flex;justify-content:space-between;align-items:center;padding:.6rem .9rem;border-bottom:1px solid var(--line);background:var(--bg)}
.theme-preview-header .brand-logo{height:44px;padding:0}
.theme-preview-cart{position:relative;padding-right:1.4rem;font-size:.75rem}
.theme-preview-body{display:grid;gap:.6rem;padding:.4rem .9rem .9rem}
.theme-preview .crumbs{margin:.2rem 0}
.theme-preview-cards{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.theme-preview .card h3{margin:.2rem 0 0;font-size:.8rem}
.theme-preview .card-img{display:grid;place-items:center}
.theme-preview .card-img-fallback{color:var(--decor)}
.theme-preview .card-img-fallback .brand-logo{width:3rem;height:3rem}
.theme-preview .price{margin:0;font-weight:600}
.admin-content .theme-preview .btn{width:auto;min-height:36px;margin:0;padding:.5rem .8rem;border:0;border-radius:var(--radius-btn);background:var(--btn-bg);color:var(--btn-fg);box-shadow:none;font-size:.62rem;letter-spacing:var(--tracking-label);text-transform:uppercase;cursor:default}
.admin-content .theme-preview .btn.is-hover,.admin-content .theme-preview .btn:hover{background:var(--btn-hover-bg);color:var(--btn-hover-fg)}
.admin-content .theme-preview .btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--ghost-border)}
.theme-preview-row{display:flex;flex-wrap:wrap;gap:.7rem;align-items:end}
.theme-preview-field{display:grid;gap:.2rem;flex:1;min-width:8rem;font-size:.75rem}
.theme-preview-input{padding:.45rem .6rem;border:1px solid var(--field-border);border-radius:6px;background:var(--card);color:var(--ink)}
.theme-preview .is-focus{outline:2px solid var(--focus);outline-offset:2px}
.theme-preview .flash,.theme-preview .notice{margin:0}
.theme-preview .low{margin:0}
.theme-preview-surface{display:flex;justify-content:space-between;padding:.6rem .8rem;border-radius:6px;background:var(--surface)}
.theme-preview-surface .badge{position:static}
.theme-preview .brand-story{margin:0;padding:1.2rem .9rem}
.theme-preview .brand-story .brand-logo{height:56px;padding:0}
.theme-preview .brand-story p{margin:.4rem 0 0}
.theme-preview .site-footer{padding:.9rem}
.theme-preview .site-footer h4{margin:0 0 .3rem}
.theme-preview .site-footer p{margin:0}
.admin-appearance-reset>summary{cursor:pointer;font-weight:700}
.admin-appearance-reset form{margin:0}
/* Exclusão de produto (specs/025): ação destrutiva separada do formulário. */
.admin-app .btn.danger{background:var(--danger);color:var(--on-danger);border-color:var(--danger)}.admin-app .btn.danger:hover{background:var(--danger);color:var(--on-danger);filter:brightness(.92)}.admin-app .btn.ghost.danger{background:transparent;color:var(--danger);border:1px solid var(--danger)}.admin-app .btn.ghost.danger:hover{background:var(--danger);color:var(--on-danger)}
.admin-danger-zone{margin-top:24px;padding-top:16px;border-top:1px solid var(--admin-line)}
