@font-face{font-family:Outfit;src:url('/assets/outfit-variable.ttf') format('truetype');font-style:normal;font-weight:100 900;font-display:swap}
:root{--bg:#f4f7fb;--surface:#fff;--ink:#10233f;--muted:#5c6d82;--line:#dce5f0;--navy:#0b213c;--navy-2:#163d67;--gold:#dcae28;--gold-dark:#765500;--gold-soft:#fff3cf;--green:#067647;--red:#b42318;--radius:12px;--shadow:0 14px 40px rgba(11,33,60,.12)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:var(--bg);color:var(--ink);font-family:Outfit,system-ui,sans-serif;font-size:16px;line-height:1.5}button,input,select,textarea{font:inherit}button,a{transition:background-color .18s ease,color .18s ease,border-color .18s ease,transform .18s ease}a{color:inherit;text-underline-offset:3px}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}:focus-visible{outline:3px solid #174b7f;outline-offset:3px}.sidebar :focus-visible{outline-color:#e2b842}::selection{background:var(--gold);color:var(--navy)}.skip-link{position:fixed;z-index:100;top:1rem;left:1rem;transform:translateY(-6rem);border-radius:8px;background:var(--navy);padding:.65rem 1rem;color:#fff;font-weight:800;text-decoration:none}.skip-link:focus{transform:none}
.button{display:inline-flex;min-height:42px;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:10px;padding:.68rem 1rem;background:var(--surface);color:var(--ink);font-weight:750;text-decoration:none}.button:hover{background:#edf2f8}.button.primary{border-color:var(--gold-dark);background:var(--gold);color:var(--navy);box-shadow:inset 0 0 0 1px rgba(255,255,255,.28)}.button.primary:hover{background:#e2b842;transform:translateY(-1px)}.button.dark{border-color:var(--navy);background:var(--navy);color:#fff}.button.ghost{background:transparent}.button.full{width:100%}.notice{margin:1rem 0;padding:.8rem 1rem;border:1px solid var(--line);border-radius:10px}.notice.error{border-color:#f0a7a0;background:#fff1f0;color:var(--red)}
.auth-page{display:grid;min-height:100vh;place-items:center;padding:1.25rem;background:var(--navy)}.auth-card{position:relative;z-index:2;width:min(430px,100%);border-radius:18px;background:var(--surface);padding:2rem;box-shadow:var(--shadow)}.auth-card h1{margin:1.25rem 0 .25rem;font-size:2rem;letter-spacing:-.04em}.auth-card>p{margin:0 0 1.5rem;color:var(--muted)}.brand-mark{display:grid;width:44px;height:44px;place-items:center;border-radius:12px;background:var(--gold);color:var(--navy);font-weight:900}.stack{display:grid;gap:1rem}.stack label,.form-grid label{display:grid;gap:.4rem;color:var(--muted);font-size:.875rem;font-weight:700}input,select,textarea{width:100%;border:1px solid #cfdae7;border-radius:9px;background:#fff;padding:.7rem .8rem;color:var(--ink)}textarea{resize:vertical}
.auth-login-page{position:relative;display:grid;grid-template-columns:minmax(220px,.42fr) minmax(0,1.58fr);place-items:stretch;overflow:hidden;padding:0;background:#f7f5ef;isolation:isolate}.auth-login-page:before,.auth-login-page:after{position:absolute;z-index:-2;top:50%;right:clamp(-8rem,4vw,5rem);width:min(72vw,920px);aspect-ratio:1;border-radius:50%;content:"";transform:translateY(-50%)}.auth-login-page:before{border:1px solid rgba(255,255,255,.94);background:rgba(255,255,255,.4);box-shadow:-22px -24px 42px rgba(255,255,255,.98),24px 32px 54px rgba(11,33,60,.13),inset 13px 15px 26px rgba(255,255,255,.9),inset -13px -17px 28px rgba(11,33,60,.06)}.auth-login-page:after{z-index:-3;border:1px solid rgba(212,166,42,.48);background:transparent}.auth-orbit{inset:0}.auth-orbit:before,.auth-orbit:after{position:absolute;width:7px;height:7px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px #f7f5ef;content:""}.auth-orbit:before{top:15%;right:19%}.auth-orbit:after{right:61%;bottom:15%}.auth-brand{position:absolute;z-index:2;align-items:center}.auth-brand>span:last-child{border-left:1px solid rgba(11,33,60,.28);line-height:1}.auth-brand strong,.auth-brand b{display:block}.auth-brand strong{font-weight:400}.auth-manifesto{flex-direction:column;justify-content:space-between;color:#8292a4;font-weight:700;letter-spacing:.22em;text-transform:uppercase}.auth-manifesto p{margin:0}.auth-manifesto span{display:block;margin-top:auto;margin-bottom:.9rem}.auth-eyebrow{margin:0 0 .85rem;color:var(--gold-dark);font-weight:850;letter-spacing:.17em;text-transform:uppercase}.auth-login-panel h1{margin:0;letter-spacing:-.045em}.auth-subtitle{color:#6f8296}.auth-notice{margin:-.75rem 0 1.25rem;text-align:left}.auth-form{display:grid;text-align:left}.auth-form>label{margin-top:.35rem;color:#52657b;font-size:.78rem;font-weight:800}.auth-input-wrap{position:relative}.auth-input-wrap>svg{position:absolute;top:50%;transform:translateY(-50%);stroke:#73869a;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.auth-input-wrap input{border-radius:14px;padding:0 1.15rem 0 3.35rem}.auth-input-wrap input::placeholder{color:#8a99aa}.auth-input-wrap input:focus{border-color:#174b7f;box-shadow:0 0 0 4px rgba(23,75,127,.1),7px 10px 18px rgba(11,33,60,.08)}.auth-password-toggle{position:absolute;top:50%;transform:translateY(-50%);border:0;border-radius:8px;background:transparent;color:#174b7f;font-size:.72rem;font-weight:850}.auth-password-toggle:hover{background:#edf2f8}.auth-submit{display:flex;width:100%;align-items:center;justify-content:center;gap:.85rem;border:1px solid #071f37;border-radius:14px;background:#0b2a49;color:#fff;box-shadow:0 13px 24px rgba(11,42,73,.2),inset 0 1px 0 rgba(255,255,255,.18);font-weight:850}.auth-submit:hover{background:#174b7f;transform:translateY(-1px)}.auth-submit svg{width:21px;height:21px;stroke:var(--gold);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.auth-security{display:flex;align-items:center;justify-content:center;gap:.65rem;margin:1.6rem 0 0;color:#6f8296;font-weight:650}.auth-security svg{stroke:var(--gold);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.auth-login-page:before,.auth-login-page:after{top:calc(50% + 3rem);right:clamp(5rem,12vw,12rem);width:min(62vw,820px)}.auth-login-page:after{width:min(67vw,880px)}.auth-brand>span:last-child{display:flex;flex-direction:column;justify-content:center}.auth-brand b{margin-top:.22rem}.auth-manifesto{position:relative}.auth-manifesto p:first-child{position:absolute;top:clamp(13rem,28.5vh,14.2rem);left:clamp(1.25rem,5vw,5rem)}.auth-manifesto span{position:absolute;bottom:145px;left:clamp(1.25rem,5vw,5rem)}.auth-manifesto p:last-child{position:absolute;bottom:66px;left:clamp(1.25rem,5vw,5rem)}.auth-login-main{padding-top:clamp(8rem,15vh,10rem);padding-bottom:clamp(5rem,9vh,7rem)}.auth-subtitle{margin-top:1.35rem;margin-bottom:2.65rem}.auth-input-wrap:has(.auth-password-toggle) input{padding-right:4.3rem}.auth-password-toggle{display:grid;right:.75rem;width:40px;min-width:40px;height:40px;place-items:center;padding:0}.auth-password-toggle svg{stroke:#73869a;stroke-width:1.8}.auth-options{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:.3rem 0 .45rem;color:#52657b;font-size:1rem}.auth-remember{position:relative;display:inline-flex;align-items:center;cursor:pointer}.auth-remember input{position:absolute;width:1px;height:1px;opacity:0}.auth-remember>span{display:grid;place-items:center;border:1px solid #aebdcc;background:rgba(255,255,255,.7);box-shadow:inset 0 1px 2px rgba(11,33,60,.08)}.auth-remember input:checked+span{border-color:var(--navy);background:var(--navy)}.auth-remember input:checked+span:after{width:9px;height:5px;border-bottom:2px solid var(--gold);border-top:1px solid rgba(212,166,42,.65);content:"";transform:rotate(-45deg) translateY(-1px)}.auth-remember input:focus-visible+span{outline:3px solid #174b7f;outline-offset:3px}.auth-forgot{border:0;background:transparent;padding:.4rem 0;color:#174b7f;font-size:1rem;font-weight:700;text-decoration:underline;text-underline-offset:4px}.auth-forgot:hover{color:var(--navy)}.auth-submit{margin-top:.15rem}
.shell{display:grid;min-height:100vh;grid-template-columns:244px minmax(0,1fr)}.sidebar{position:sticky;top:0;display:flex;height:100vh;flex-direction:column;background:var(--navy);color:#edf4fb}.brand{display:flex;align-items:center;gap:.75rem;border-bottom:1px solid #24496f;padding:1rem;text-decoration:none}.brand strong,.brand small{display:block}.brand small{margin-top:.1rem;color:#a9bdd2;font-size:.7rem;text-transform:uppercase;letter-spacing:.12em}.sidebar nav{display:grid;gap:.25rem;padding:1rem}.sidebar nav p{margin:1rem .65rem .35rem;color:#a9bdd2;font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.sidebar nav a,.sidebar-exit{border:0;border-radius:9px;padding:.67rem .75rem;background:transparent;color:#dbe8f5;font-size:.9rem;font-weight:650;text-align:left;text-decoration:none}.sidebar nav a:hover,.sidebar nav a.active{background:var(--navy-2);color:#fff}.sidebar nav a.active{color:#f1ca57}.sidebar form,.sidebar>.sidebar-exit{margin:auto 1rem 1rem}.topbar{display:flex;height:68px;align-items:center;gap:1rem;border-bottom:1px solid var(--line);background:rgba(255,255,255,.96);padding:0 clamp(1rem,3vw,2rem)}.topbar div strong,.topbar div small{display:block}.topbar div small{color:var(--muted);font-size:.75rem}.menu-button{display:none;border:1px solid var(--line);border-radius:8px;background:#fff;padding:.45rem .7rem;font-weight:800}
.module{display:none;margin:0 auto;max-width:1460px;padding:clamp(1.25rem,3vw,2.5rem)}.module.active{display:block}.page-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--line);padding-bottom:1.5rem}.page-heading h1{margin:0;font-size:clamp(2rem,4vw,3.35rem);line-height:1;letter-spacing:-.04em}.page-heading p,.section-heading p{margin:.65rem 0 0;color:var(--muted);max-width:70ch}.status{display:inline-flex;width:max-content;align-items:center;border-radius:999px;background:#edf2f8;padding:.3rem .65rem;color:#52657b;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.status.live{background:#e8f7ef;color:var(--green)}.status.gold{background:var(--gold-soft);color:var(--gold-dark)}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:1.5rem;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--line);gap:1px}.metric-grid article{display:grid;min-height:150px;align-content:space-between;background:var(--surface);padding:1.2rem}.metric-grid span,.metric-grid small{color:var(--muted);font-size:.82rem}.metric-grid strong{font-size:clamp(1.7rem,3vw,2.4rem);letter-spacing:-.04em}.split{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.65fr);gap:2rem;margin-top:2rem}.split h2,.lower-section h2{margin:0 0 1rem;font-size:1.25rem;letter-spacing:-.025em}.empty-state{display:grid;min-height:180px;place-content:center;padding:2rem;text-align:center}.empty-state p{margin:.35rem 0 0;color:var(--muted)}
.table-wrap{margin-top:1.5rem;overflow:auto;border:1px solid var(--line);border-radius:14px}table{width:100%;border-collapse:collapse}th,td{padding:.9rem 1rem;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}th{background:#f8fafc;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}td{font-size:.88rem}td strong,td small{display:block}td small{margin-top:.2rem;color:var(--muted)}tbody tr:last-child td{border-bottom:0}.row-actions{display:flex;gap:.7rem}.flow{display:grid;gap:0;margin:0;padding:0;list-style:none}.flow li{position:relative;display:grid;gap:.2rem;border-left:1px solid var(--line);padding:0 0 1.8rem 2rem}.flow li:before{position:absolute;left:-.62rem;top:0;display:grid;width:1.2rem;height:1.2rem;place-items:center;border:2px solid var(--gold);border-radius:50%;background:var(--surface);content:''}.flow span{color:var(--muted)}.lower-section{margin-top:2rem}
.link-button{display:block;margin-top:.35rem;border:0;background:transparent;padding:0;color:var(--gold-dark);font-size:.75rem;font-weight:800;text-decoration:underline;text-underline-offset:3px}.compact{margin-top:1rem}.compact label{color:#c6d7e8;font-size:.8rem}
.table-title{margin:2rem 0 0}
.table-input{min-width:150px;margin:.18rem 0;padding:.45rem .55rem;font-size:.8rem}.capability{display:grid!important;grid-template-columns:auto 1fr minmax(110px,.55fr);align-items:center;border:1px solid var(--line);border-radius:10px;padding:.7rem;background:var(--surface)}.capability input{width:18px;height:18px}.capability select{padding:.45rem;font-size:.8rem}
.check-label{display:flex!important;align-items:center;gap:.65rem!important}.check-label input{width:18px;height:18px}
dialog{width:min(680px,calc(100% - 2rem));max-height:90vh;border:0;border-radius:16px;padding:0;box-shadow:var(--shadow)}dialog::backdrop{background:rgba(4,18,34,.6)}.dialog-head{display:flex;align-items:start;justify-content:space-between;border-bottom:1px solid var(--line);padding:1.25rem 1.4rem}.dialog-head h2{margin:0}.dialog-head p{margin:.2rem 0 0;color:var(--muted)}.dialog-head button{border:0;background:transparent;font-size:1.5rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding:1.4rem}.form-grid .wide{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:.7rem}.form-result{min-height:1.5rem;color:var(--muted)}.form-result.error{color:var(--red)}
.store-header{position:sticky;z-index:10;top:0;display:flex;align-items:center;gap:2rem;border-bottom:1px solid var(--line);background:rgba(255,255,255,.96);padding:.8rem max(1rem,calc((100% - 1320px)/2));backdrop-filter:blur(12px)}.store-brand{text-decoration:none}.store-brand strong,.store-brand small{display:block}.store-brand small{color:var(--gold-dark);font-size:.65rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.store-header nav{display:flex;gap:1.4rem}.store-header nav a{text-decoration:none;font-size:.9rem;font-weight:700}.store-header>.button{margin-left:auto}.store-hero{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.6fr);gap:2rem;min-height:520px;align-items:center;background:var(--navy);padding:clamp(2rem,7vw,6rem) max(1rem,calc((100% - 1320px)/2));color:#fff}.store-hero h1{max-width:760px;margin:1.2rem 0;font-size:clamp(3rem,7vw,6rem);line-height:.92;letter-spacing:-.04em}.store-hero p{max-width:65ch;color:#c6d7e8;font-size:1.08rem}.store-hero aside{display:grid;align-content:center;min-height:280px;border:1px solid #385a7b;border-radius:18px;padding:2rem;background:#102e4e}.store-hero aside strong{font-size:5rem;line-height:1;color:#f1ca57}.store-hero aside span{font-weight:800}.store-hero aside p{font-size:.92rem}.store-section{max-width:1320px;margin:auto;padding:clamp(3rem,6vw,5rem) 1rem}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.section-heading h2{margin:0;font-size:clamp(2rem,4vw,3.2rem);letter-spacing:-.04em}.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.product-grid.featured{grid-template-columns:repeat(3,minmax(0,1fr))}.product{display:flex;min-width:0;flex-direction:column;overflow:hidden;border:1px solid var(--line);border-radius:16px;background:#fff}.product-media{display:grid;aspect-ratio:16/10;place-items:center;overflow:hidden;background:#e8eef6;color:var(--navy);font-size:3rem;font-weight:900}.product-media img{width:100%;height:100%;object-fit:cover}.product-body{display:grid;flex:1;align-content:start;padding:1rem}.product-body>small{color:var(--gold-dark);font-weight:800;text-transform:uppercase;letter-spacing:.08em}.product-body h3{margin:.45rem 0;font-size:1.25rem}.product-body>p{margin:0;color:var(--muted)}.product-footer{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-top:1.5rem}.product-footer del,.product-footer strong{display:block}.product-footer del{color:var(--muted);font-size:.78rem}.store-empty{display:grid;min-height:80vh;place-content:center;text-align:center}.cart-lines{overflow:auto;padding:0 1.4rem}.cart-line{display:grid;grid-template-columns:1fr auto;gap:1rem;border-bottom:1px solid var(--line);padding:1rem 0}.cart-line div:last-child{display:flex;align-items:center;gap:.65rem}.cart-line button{width:32px;height:32px;border:1px solid var(--line);border-radius:8px;background:#fff}.checkout-form{border-top:1px solid var(--line)}.checkout-form .form-grid{padding-bottom:.5rem}.align-end{align-self:end}.cart-total{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.4rem;font-size:1.1rem}.checkout-form>.form-result,.checkout-form>.button{margin:.2rem 1.4rem;width:calc(100% - 2.8rem)}
@media(max-width:980px){.auth-login-page{grid-template-columns:1fr}.auth-login-page:before{top:50%;right:50%;width:min(104vw,780px);transform:translate(50%,-47%)}.auth-login-page:after{top:50%;right:50%;width:min(112vw,850px);transform:translate(50%,-47%)}.auth-brand{top:1.5rem}.auth-manifesto{display:none}.auth-login-main{padding-top:7.5rem;transform:none}.shell{grid-template-columns:1fr}.sidebar{position:fixed;z-index:30;transform:translateX(-100%);width:244px;transition:transform .2s ease}.sidebar.open{transform:translateX(0);box-shadow:var(--shadow)}.menu-button{display:block}.metric-grid{grid-template-columns:repeat(2,1fr)}.split,.store-hero{grid-template-columns:1fr}.store-hero{min-height:auto}.product-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.auth-login-page:before{width:168vw}.auth-login-page:after{width:178vw}.auth-login-main{padding:8.5rem 1.1rem 3rem}.auth-subtitle{margin-top:.9rem;margin-bottom:1.75rem}.module{padding:1rem}.page-heading,.section-heading{align-items:start;flex-direction:column}.metric-grid,.product-grid,.product-grid.featured{grid-template-columns:1fr}.metric-grid article{min-height:125px}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.store-header nav{display:none}.store-hero h1{font-size:3.25rem}.store-hero aside{min-height:220px}}
@media(max-width:400px){.auth-brand{gap:.7rem}.auth-submit{font-size:1rem}}

/* Login composition: anchor the orbit and its ornaments to the form at every size. */
.auth-login-page{display:grid;min-height:100dvh;place-items:stretch;overflow:hidden;padding:0 max(env(safe-area-inset-right),0px) 0 max(env(safe-area-inset-left),0px);background:radial-gradient(circle at 7% 8%,rgba(255,255,255,.98),transparent 29%),radial-gradient(circle at 87% 90%,rgba(220,228,237,.58),transparent 27%),#f7f5ef;isolation:isolate}.auth-login-page:before,.auth-login-page:after{display:none}.auth-brand b{font-size:1.35em}.auth-manifesto{display:grid;min-width:0;grid-template-rows:auto 1fr auto;padding:clamp(11rem,28vh,14rem) 2rem clamp(3rem,8vh,5rem) clamp(1.25rem,5vw,5rem)}.auth-manifesto p:first-child,.auth-manifesto p:last-child,.auth-manifesto span{position:static}.auth-manifesto span{align-self:end;margin:0 0 .9rem}.auth-login-main{position:relative;z-index:0;display:grid;min-width:0;overflow:hidden}.auth-orbit{position:absolute;z-index:0;left:50%;aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}.auth-orbit:before{position:absolute;width:auto;height:auto;border-radius:50%;content:""}.auth-orbit:after{position:absolute;width:auto;height:auto;border-radius:50%;box-shadow:none;content:""}.auth-orbit-dot{position:absolute;z-index:2;border-radius:50%;background:var(--gold)}.auth-login-panel{position:relative;z-index:1}.auth-login-panel h1{text-wrap:balance}.auth-password-toggle{min-height:44px}.auth-submit:active{transform:translateY(1px) scale(.99)}

@media(max-width:1100px){.auth-manifesto{display:none}.auth-login-main{padding-inline:clamp(1.25rem,7vw,5rem)}.auth-brand{top:1.5rem}}
@media(max-width:640px){.auth-login-page{--auth-focus-y:0rem}.auth-brand{top:max(1.15rem,env(safe-area-inset-top));left:max(1.1rem,env(safe-area-inset-left));gap:.8rem}.auth-brand b{font-size:1.35em}.auth-login-main{min-height:100dvh;align-items:start;padding:8.5rem 1.1rem max(3rem,env(safe-area-inset-bottom))}.auth-login-panel{text-align:left}.auth-eyebrow{margin-bottom:.85rem;font-size:.7rem}.auth-options{margin:.05rem 0 .15rem}.auth-security{justify-content:flex-start}}
@media(max-width:400px){.auth-options{gap:.5rem;font-size:.84rem}.auth-remember{gap:.55rem}.auth-forgot{font-size:.84rem}.auth-security{font-size:.82rem}}
@media(min-width:641px) and (max-height:720px){.auth-brand{top:1.25rem}.auth-manifesto{padding-bottom:2rem}.auth-login-main{padding-block:5rem 2rem}.auth-eyebrow{margin-bottom:.6rem;font-size:.72rem}.auth-options{margin:0;font-size:.86rem}.auth-forgot{font-size:.86rem}}

/* Reference-accurate scale and ornaments. */
.auth-manifesto span{border-bottom:0}.auth-login-main:after{position:absolute;z-index:1;top:8%;right:7%;width:23px;height:11px;border:1.5px solid var(--gold);border-bottom:0;border-radius:23px 23px 0 0;content:"";transform:rotate(18deg);opacity:.9}.auth-orbit{width:min(50rem,64vw);border-color:rgba(212,166,42,.72)}.auth-orbit:before{border-color:rgba(255,255,255,.98)}.auth-orbit:after{inset:clamp(2.5rem,3.4vw,3.4rem);background:radial-gradient(circle at 34% 27%,rgba(255,255,255,.4),transparent 52%)}.auth-orbit-dot{width:7px;height:7px;box-shadow:none;transform:translate(-50%,-50%)}.auth-orbit-dot-top{top:15.5%;right:auto;left:86.2%}.auth-orbit-dot-bottom{top:79.3%;bottom:auto;left:10.8%}.auth-login-panel h1{line-height:1}
@media(max-width:640px){.auth-brand>span:last-child{min-height:48px;padding-left:.7rem;font-size:.95rem}.auth-login-main:after{top:3.5rem;right:1.5rem;width:19px;height:9px}.auth-login-panel h1{white-space:nowrap}.auth-options{font-size:.86rem}.auth-forgot{font-size:.86rem}}
@media(max-width:360px){.auth-login-panel h1{font-size:clamp(1.75rem,8.3vw,2rem)}.auth-options{align-items:flex-start;flex-direction:column}.auth-forgot{align-self:flex-end}}
@media(min-width:641px) and (max-height:720px){.auth-login-page{--auth-focus-y:.5rem}.auth-brand>span:last-child{min-height:52px;font-size:1.25rem}.auth-manifesto{padding-top:7.5rem;font-size:.72rem}}

/* Match the approved full-page reference: compact center and clipped background orbs. */
.auth-login-page{--auth-focus-y:0rem;grid-template-columns:13fr 87fr}.auth-backdrop{position:absolute;z-index:-1;inset:0;overflow:hidden;pointer-events:none}.auth-backdrop-orb{position:absolute;border:1.5px solid rgba(255,255,255,.96);border-radius:50%;background:rgba(255,255,255,.08);box-shadow:inset -14px -16px 28px rgba(11,33,60,.025),18px 22px 44px rgba(11,33,60,.025)}.auth-backdrop-orb-left{bottom:-31rem;left:-22rem;width:49rem;aspect-ratio:1}.auth-backdrop-orb-right-top{top:-28rem;right:-19rem;width:44rem;aspect-ratio:1}.auth-backdrop-orb-right-bottom{right:-24rem;bottom:-30rem;width:48rem;aspect-ratio:1}.auth-dot-field{position:absolute;top:26%;right:2.5%;width:108px;height:156px;opacity:.2;background-image:radial-gradient(circle,rgba(130,146,164,.8) 1px,transparent 1.2px);background-size:11px 11px}.auth-brand{top:clamp(1.4rem,5vh,3rem);left:clamp(1.25rem,5vw,5rem);gap:.8rem}.auth-brand>span:last-child{min-height:49px;padding-left:.8rem;color:#0b2a49;font-size:1.08rem}.auth-brand b{color:#0b2a49}.auth-manifesto{width:auto;padding-top:clamp(6.4rem,15vh,7.25rem);padding-right:0;padding-bottom:clamp(2.5rem,7vh,4rem);font-size:.64rem}.auth-manifesto p:first-child:after{display:block;width:28px;height:2px;margin-top:.75rem;background:var(--gold);content:""}.auth-manifesto span{width:28px;height:2px;border:0;border-radius:0;background:var(--gold)}.auth-login-main:after{display:none}.auth-orbit:before{border-width:1.5px}.auth-orbit:after{border:1.5px solid rgba(255,255,255,.72)}.auth-eyebrow{font-size:.66rem}.auth-login-panel h1{color:#0b2a49}.auth-subtitle{font-family:Outfit,system-ui,sans-serif;font-weight:400;letter-spacing:-.01em}.auth-input-wrap>svg{left:1rem;width:18px;height:18px}.auth-input-wrap input{padding-left:3rem;font-size:.88rem}.auth-password-toggle svg{width:18px;height:18px}.auth-options,.auth-forgot{font-size:.74rem}.auth-remember{gap:.55rem}.auth-remember>span{width:18px;height:18px;border-radius:5px}.auth-submit{font-size:.88rem}.auth-security{font-size:.7rem}.auth-security svg{width:18px;height:18px}
@media(max-width:1100px){.auth-login-page{grid-template-columns:1fr}.auth-backdrop-orb-left{left:-28rem}.auth-backdrop-orb-right-top{right:-24rem}.auth-backdrop-orb-right-bottom{right:-28rem}.auth-dot-field{right:1%}.auth-orbit{width:min(44rem,94vw)}.auth-login-panel{width:min(480px,100%)}}
@media(max-width:640px){.auth-backdrop-orb-left{bottom:-27rem;left:-25rem;width:42rem}.auth-backdrop-orb-right-top{top:-26rem;right:-24rem;width:39rem}.auth-backdrop-orb-right-bottom{right:-25rem;bottom:-28rem;width:42rem}.auth-dot-field{display:none}.auth-login-main{padding-top:7rem}.auth-orbit{width:min(42rem,146vw)}.auth-login-panel{width:min(460px,100%)}.auth-subtitle{margin:.75rem 0 1.35rem;font-size:clamp(.96rem,4vw,1.08rem)}.auth-form{gap:.9rem}.auth-input-wrap input{height:52px;min-height:52px}.auth-submit{height:54px;min-height:54px}.auth-security{margin-top:1.2rem;font-size:.8rem}}
@media(min-width:641px) and (max-height:720px){.auth-orbit{width:min(38rem,54vw)}.auth-login-panel{width:min(440px,100%)}.auth-login-panel h1{font-size:clamp(2.25rem,3.15vw,2.65rem)}.auth-subtitle{margin:.55rem 0 1rem;font-size:.92rem}.auth-form{gap:.65rem}.auth-input-wrap input{height:48px;min-height:48px}.auth-submit{height:50px;min-height:50px}.auth-security{margin-top:.65rem;font-size:.76rem}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}

/* Admin shell — mirrors the approved orchestration interface. */
.admin-page{min-height:100dvh;overflow-x:hidden;background:#f2f6fa;color:#0b213c}.admin-page svg{width:1.15rem;height:1.15rem}.admin-shell{display:grid;min-height:100dvh;grid-template-columns:255px minmax(0,1fr);transition:grid-template-columns .22s ease}.admin-sidebar{position:sticky;z-index:30;top:0;display:flex;width:auto;height:100dvh;min-width:0;overflow:hidden;background:#0b2745;color:#edf4fb;transition:width .22s ease}.admin-brand{min-height:78px;gap:.8rem;border-bottom:0;padding:1rem}.admin-brand .brand-mark{display:grid;width:38px;height:38px;flex:0 0 38px;place-items:center;border-radius:0;background:#dcae28;color:#0b2745}.admin-brand .brand-mark svg{width:19px;height:19px;stroke-width:2}.brand-copy,.nav-label{min-width:0;white-space:nowrap}.brand-copy strong{font-size:.96rem;letter-spacing:-.025em}.brand-copy small{margin-top:.05rem;color:#e1b631;font-size:.62rem;font-weight:800;letter-spacing:.13em}.admin-sidebar nav{display:block;min-height:0;flex:1;overflow-y:auto;padding:.25rem 1rem 1rem}.sidebar-group{margin:0;padding:0}.admin-sidebar nav p{margin:1.25rem .45rem .45rem;color:#9cb7d1;font-size:.65rem;letter-spacing:.13em}.admin-sidebar nav a{display:flex;align-items:center;gap:.75rem;margin:.15rem 0;border-radius:10px;color:#eff6fc}.admin-sidebar nav a:hover{background:#173e67}.admin-sidebar nav a.active{background:#1b4b79;color:#efc23f}.nav-icon{position:relative;display:grid;width:1.1rem;flex:0 0 1.1rem;place-items:center}.nav-icon svg{width:1.05rem;height:1.05rem}.workspace{position:relative;min-width:0}.admin-topbar{position:sticky;z-index:20;top:0;height:64px;border-bottom:1px solid #d9e3ed;background:rgba(248,250,252,.94);padding:0 2rem;backdrop-filter:blur(12px)}.icon-button{display:grid;width:38px;height:38px;place-items:center;border:0;border-radius:9px;background:transparent;color:#0b2745}.icon-button:hover{background:#e7eef5}.icon-button:active{transform:translateY(1px)}.admin-content{min-width:0}.admin-content .module{max-width:1480px;padding:2rem 2rem 4.5rem}.admin-content .page-heading{border:0;padding:0}.eyebrow{display:block;margin-bottom:.55rem;color:#9b7300;font-size:.66rem;font-weight:850;letter-spacing:.15em;text-transform:uppercase}.admin-content .page-heading h1{text-wrap:balance}.admin-content .page-heading p{margin-top:.65rem;text-wrap:pretty}.dashboard-metrics{margin-top:2.1rem;border-radius:0}.dashboard-metrics article{min-height:132px}.dashboard-metrics strong{font-variant-numeric:tabular-nums}.overview-grid{display:grid;margin-top:2rem}.compact-heading{margin:0;border-bottom:1px solid #d5e0eb;padding:0 0 1rem}.compact-heading h2{margin:0;color:#0b213c;font-size:1.25rem;letter-spacing:-.025em}.text-button{border:0;background:transparent;padding:.4rem;color:#9b7300;font-size:.78rem;font-weight:850}.text-button:hover{text-decoration:underline;text-underline-offset:4px}.settings-drawer{position:fixed;inset:0 0 0 auto;width:min(1120px,calc(100% - 1rem));max-width:none;height:100dvh;max-height:none;margin:0;border:0;border-radius:0;padding:0;background:#f8fafc;color:#0b213c;box-shadow:-30px 0 70px rgba(7,27,48,.25)}.settings-drawer::backdrop{background:rgba(7,27,48,.62);backdrop-filter:blur(3px)}.settings-layout{display:grid;height:100dvh;grid-template-rows:auto minmax(0,1fr)}.settings-header{display:flex;min-height:104px;align-items:flex-start;justify-content:space-between;gap:2rem;border-bottom:1px solid #d5e0eb;background:#fff;padding:1.25rem 1.5rem}.settings-header p{max-width:62ch;margin:.35rem 0 0;color:#63788e;font-size:.85rem}.settings-body{display:grid;min-height:0;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr)}.settings-main{min-width:0;overflow-y:auto;padding:1.5rem}.settings-preview{border-left:1px solid #d5e0eb;background:#f1f6fa;padding:1.5rem}.settings-preview h3{margin:.25rem 0}.settings-preview>p{color:#63788e}.settings-preview .flow{margin-top:2rem}.preview-note{margin-top:1rem;border:1px solid #e7c55d;background:#fff6d7;padding:.75rem;color:#785a00;font-size:.78rem}.settings-form{margin:0 0 1.5rem;padding-left:2.5rem}.settings-form>label{font-size:.78rem}.settings-drawer .capability{border-radius:0}.settings-drawer .button{justify-self:start}.admin-page.sidebar-collapsed .admin-shell{grid-template-columns:72px minmax(0,1fr)}.admin-page.sidebar-collapsed .brand-copy,.admin-page.sidebar-collapsed .nav-label,.admin-page.sidebar-collapsed .admin-sidebar nav p{display:none}.admin-page.sidebar-collapsed .admin-brand{justify-content:center;padding-inline:.5rem}.admin-page.sidebar-collapsed .admin-sidebar nav{padding-inline:.55rem}
@media(max-width:980px){.admin-shell,.admin-page.sidebar-collapsed .admin-shell{grid-template-columns:1fr}.admin-sidebar{position:fixed;transition:transform .22s ease}.admin-page.sidebar-collapsed .brand-copy,.admin-page.sidebar-collapsed .nav-label,.admin-page.sidebar-collapsed .admin-sidebar nav p{display:block}.admin-page.sidebar-collapsed .admin-brand{justify-content:flex-start;padding-inline:1rem}.admin-page.sidebar-collapsed .admin-sidebar nav{padding-inline:1rem}.overview-grid{grid-template-columns:1fr}.settings-body{grid-template-columns:1fr}}
@media(max-width:640px){.admin-topbar{padding:0 1rem}.admin-content .module{padding:1.5rem 1rem 3rem}.dashboard-metrics{grid-template-columns:1fr}.comm-status{grid-template-columns:1fr}.settings-drawer{width:100%}.settings-header{min-height:auto;padding:1rem}.settings-body{display:block}.settings-main{height:calc(100dvh - 112px);padding:1rem}.settings-form{padding-left:0}.capability{grid-template-columns:auto minmax(0,1fr);}.capability select{grid-column:2}.form-grid{padding:1rem}}

/* Established design language: square geometry and continuous surfaces. */
.admin-page :where(button,input,select,textarea,.button,.status,.table-wrap,.metric-grid,.capability,dialog,.preview-note){border-radius:0}.admin-page :where(.table-wrap,.metric-grid,.settings-drawer){box-shadow:none}.admin-sidebar nav a,.icon-button,.admin-topbar .button{border-radius:0}.admin-sidebar nav a.active{box-shadow:inset 3px 0 0 #dcae28}.admin-topbar{border-color:#c8d5e1}.dashboard-metrics{border-color:#c8d5e1;background:#c8d5e1}.dashboard-metrics article{background:#f8fafc}.overview-grid{grid-template-columns:minmax(0,1.7fr) minmax(17rem,.7fr);gap:0;border-top:1px solid #c8d5e1;border-bottom:1px solid #c8d5e1}.compact-heading{border-color:#c8d5e1}.table-wrap{border-color:#bdcbd8;background:transparent}.table-wrap table{background:#f8fafc}.table-wrap th{background:#eaf1f7}.table-wrap :where(th,td){border-color:#c8d5e1}.table-wrap :where(th,td)+:where(th,td){border-left:1px solid #d8e1ea}.settings-header,.settings-preview{border-color:#c8d5e1}.settings-drawer{border-left:1px solid #0b2745}.settings-drawer .capability{border-color:#c8d5e1;background:transparent}.dialog-head{border-color:#c8d5e1}.form-grid{background:#f8fafc}.admin-page :where(input,select,textarea){border-color:#bdcbd8;background:#fff}.admin-page :where(input,select,textarea):focus{border-color:#0b4b7d;box-shadow:inset 3px 0 0 #dcae28}.admin-page .button:active{transform:translateY(1px)}
@media(max-width:980px){.overview-grid{display:block}}

/* Canonical title system inherited from the approved Smart Fit interface. */
.admin-page{--title-page-size:1.5rem;--title-section-size:1.125rem;--title-panel-size:.95rem;--title-page-leading:1;--title-section-leading:1.15;--title-page-tracking:-.035em;--title-section-tracking:-.025em;--title-weight:800}.admin-page :where(h1,h2,h3){font-family:Outfit,system-ui,sans-serif;color:#0b213c;text-wrap:balance}.admin-content .page-heading h1{max-width:100%;margin:0;font-size:var(--title-page-size);font-weight:var(--title-weight);line-height:var(--title-page-leading);letter-spacing:var(--title-page-tracking)}.admin-content :where(.compact-heading)>h2,.admin-content .compact-heading h2,.admin-content .table-title{margin:0;font-size:var(--title-section-size);font-weight:var(--title-weight);line-height:var(--title-section-leading);letter-spacing:var(--title-section-tracking)}.settings-header h2{margin:0;font-size:1.25rem;font-weight:var(--title-weight);line-height:1;letter-spacing:-.035em}.settings-preview h3{font-size:var(--title-panel-size);font-weight:var(--title-weight);line-height:1.2;letter-spacing:-.018em}.dialog-head h2{font-size:1.25rem;font-weight:var(--title-weight);line-height:1.05;letter-spacing:-.03em}.admin-page .eyebrow{margin-bottom:.55rem;font-size:.66rem;font-weight:800;line-height:1.2;letter-spacing:.15em}.admin-content .page-heading p{max-width:65ch;line-height:1.55}
@media(max-width:640px){.admin-page{--title-page-size:clamp(1.65rem,8vw,2.1rem);--title-section-size:1.05rem}.admin-content .page-heading h1{max-width:18ch}}

/* Shared product language: left scrollbar, square geometry and integrated panels. */
.admin-sidebar nav,.affiliate-shell .sidebar nav{direction:rtl;scrollbar-width:thin;scrollbar-color:#607b96 transparent}
.admin-sidebar nav>*,.affiliate-shell .sidebar nav>*{direction:ltr}
.admin-sidebar nav::-webkit-scrollbar,.affiliate-shell .sidebar nav::-webkit-scrollbar{width:4px}
.admin-sidebar nav::-webkit-scrollbar-track,.affiliate-shell .sidebar nav::-webkit-scrollbar-track{background:transparent}
.admin-sidebar nav::-webkit-scrollbar-thumb,.affiliate-shell .sidebar nav::-webkit-scrollbar-thumb{border:0;border-radius:0;background:#607b96}
.admin-sidebar :where(a,button,.brand-mark),.affiliate-shell .sidebar :where(a,button,.brand-mark){border-radius:0}

.storefront-page,.affiliate-page{--title-page-size:clamp(1.85rem,3.2vw,2.75rem);--title-section-size:clamp(1.35rem,2.2vw,1.85rem);--title-panel-size:1.05rem;--title-weight:800;min-height:100dvh;background:#f2f6fa;color:#0b213c}
.storefront-page :where(h1,h2,h3),.affiliate-page :where(h1,h2,h3){font-family:Outfit,system-ui,sans-serif;text-wrap:balance}
.storefront-page :where(button,input,select,textarea,.button,.status,.brand-mark,dialog,.product,.store-hero aside,.cart-line button),.affiliate-page :where(button,input,select,textarea,.button,.status,.brand-mark,.metric-grid,.table-wrap){border-radius:0}
.storefront-page :where(dialog,.product),.affiliate-page :where(.metric-grid,.table-wrap,.sidebar.open){box-shadow:none}

.storefront-page .store-header{color:#f5f8fb;backdrop-filter:none}
.storefront-page .store-brand strong{font-weight:800;letter-spacing:-.025em}
.storefront-page .store-brand small{color:#e4b936}
.storefront-page .store-header>.button{border-color:#dcae28;background:#dcae28;color:#0b2745}
.storefront-page .store-hero{gap:0;border-bottom:1px solid #31516f;background:#0b2745}
.storefront-page .store-hero h1{max-width:16ch;margin:1rem 0;font-weight:var(--title-weight);line-height:.92;letter-spacing:-.05em}
.storefront-page .store-hero aside{border:0;border-left:1px solid #496683;padding-left:clamp(2rem,4vw,4rem)}
.storefront-page .store-hero aside strong{font-size:clamp(3.6rem,6vw,5rem);font-variant-numeric:tabular-nums}
.storefront-page .store-section{border-bottom:1px solid #c8d5e1}
.storefront-page .section-heading{padding-bottom:1rem}
.storefront-page .section-heading h2{font-weight:var(--title-weight);line-height:1.05;letter-spacing:-.035em}
.storefront-page .product-grid{gap:1px;border:1px solid #c8d5e1;background:#c8d5e1}
.storefront-page .product{border:0;background:#fff}
.storefront-page .product-media{background:#e8eef4}
.storefront-page .product-body h3{font-size:var(--title-panel-size);font-weight:var(--title-weight);line-height:1.15;letter-spacing:-.02em}

.storefront-page .cart-lines,.storefront-page .checkout-form,.storefront-page .dialog-head{border-color:#c8d5e1}
.storefront-page .button.primary{box-shadow:none}

.affiliate-page .affiliate-shell{grid-template-columns:255px minmax(0,1fr)}
.affiliate-page .sidebar{background:#0b2745}
.affiliate-page .brand{min-height:78px;border-color:#31516f;padding:1rem}
.affiliate-page .brand .brand-mark{width:38px;height:38px;flex:0 0 38px;background:#dcae28;color:#0b2745}
.affiliate-page .sidebar nav{min-height:0;overflow-y:auto;padding:1rem}
.affiliate-page .sidebar nav a,.affiliate-page .sidebar-exit{border-radius:0}
.affiliate-page .sidebar nav a.active{background:#1b4b79;box-shadow:inset 3px 0 0 #dcae28;color:#efc23f}
.affiliate-page .sidebar-exit{border-top:1px solid #31516f;margin:auto 0 0;padding:1rem;color:#dbe8f5}
.affiliate-page .topbar{height:64px;border-color:#c8d5e1;background:#f8fafc}
.affiliate-page .module{max-width:1480px;padding:2rem 2rem 4.5rem}
.affiliate-page .page-heading{border:0;padding:0}
.affiliate-page .page-heading h1{max-width:22ch;font-size:var(--title-page-size);font-weight:var(--title-weight);line-height:1;letter-spacing:-.04em}
.affiliate-page .page-heading p{max-width:65ch;line-height:1.55}
.affiliate-page .metric-grid{border-color:#c8d5e1;background:#c8d5e1}
.affiliate-page .metric-grid article{min-height:132px;background:#f8fafc}
.affiliate-page .split{gap:0;border-top:1px solid #c8d5e1;border-bottom:1px solid #c8d5e1}
.affiliate-page .split h2,.affiliate-page .lower-section h2{font-size:var(--title-panel-size);font-weight:var(--title-weight);line-height:1.15;letter-spacing:-.025em}

.affiliate-share-link{display:grid;grid-template-columns:minmax(180px,.42fr) minmax(0,1fr);align-items:center;gap:1.25rem;margin-top:1.25rem;border-top:1px solid #c8d5e1;border-bottom:1px solid #c8d5e1;background:#f8fafc;padding:.8rem 1rem}.affiliate-share-link h2{margin:0;font-size:var(--title-panel-size);font-weight:var(--title-weight);line-height:1.15;letter-spacing:-.025em}.affiliate-share-link p{margin:.25rem 0 0;color:#63788e;font-size:.75rem}.affiliate-share-link .affiliate-share-pending{margin:0;border-left:3px solid #dcae28;background:#eaf1f7;padding:.7rem .85rem;color:#405d76;font-size:.8rem}.affiliate-share-link code{display:block;min-width:0;overflow-wrap:anywhere;border-left:3px solid #dcae28;background:#eaf1f7;padding:.7rem .85rem;color:#0b213c;font-size:.75rem}
.affiliate-page .table-wrap{border-color:#bdcbd8;background:#f8fafc}
.affiliate-page .table-wrap th{background:#eaf1f7}
.affiliate-page .table-wrap :where(th,td){border-color:#c8d5e1}
.affiliate-page .table-wrap :where(th,td)+:where(th,td){border-left:1px solid #d8e1ea}
.affiliate-page .menu-button{border-radius:0}
.affiliate-page #resumo>.page-heading,.affiliate-page #resumo>.metric-grid,.affiliate-page #resumo>.affiliate-share-link,.affiliate-page #resumo>.split,.affiliate-page #resumo>.lower-section{display:none}.affiliate-page[data-affiliate-section="resumo"] #resumo>.page-heading{display:flex}.affiliate-page[data-affiliate-section="resumo"] #resumo>.metric-grid,.affiliate-page[data-affiliate-section="resumo"] #resumo>.affiliate-share-link{display:grid}.affiliate-page[data-affiliate-section="resumo"] #resumo>.split{display:block}.affiliate-page[data-affiliate-section="resumo"] #resumo>.split>#pedidos{display:none}.affiliate-page[data-affiliate-section="pedidos"] #resumo>.split{display:block;border:0}.affiliate-page[data-affiliate-section="pedidos"] #resumo>.split>#pedidos{display:block;padding:0}.affiliate-page[data-affiliate-section="comissoes"] #resumo>#comissoes,.affiliate-page[data-affiliate-section="repasses"] #resumo>#repasses,.affiliate-page[data-affiliate-section="chamados"] #resumo>#chamados,.affiliate-page[data-affiliate-section="minha-loja"] #resumo>#minha-loja{display:block;margin-top:0}.affiliate-page[data-affiliate-section]:not([data-affiliate-section="resumo"]) #resumo{padding-top:1.4rem}.affiliate-page[data-affiliate-section]:not([data-affiliate-section="resumo"]) #resumo :where(#pedidos,#comissoes,#repasses,#chamados,#minha-loja)>h2{margin:0 0 1rem;border-top:1px solid #c8d5e1;border-bottom:1px solid #c8d5e1;padding:.55rem 0 .6rem;font-size:1.5rem;line-height:1;letter-spacing:-.035em}
@media(max-width:980px){.affiliate-page .affiliate-shell{grid-template-columns:1fr}.affiliate-page .split{display:block}.affiliate-page .split>section{padding-right:0}.storefront-page .store-hero>div{padding-right:0}.storefront-page .store-hero aside{margin-top:2rem;border-top:1px solid #496683;border-left:0;padding-top:2rem;padding-left:0}}
@media(max-width:640px){.storefront-page,.affiliate-page{--title-page-size:clamp(1.7rem,8vw,2.15rem);--title-section-size:1.25rem}.affiliate-page .module{padding:1.5rem 1rem 3rem}}
@media(max-width:640px){.affiliate-share-link{grid-template-columns:1fr;gap:.65rem;padding:.75rem}.affiliate-share-link code{border-top:3px solid #dcae28;border-left:0}}

/* Smart Fit title system: every heading spans its panel between two quiet rules. */
.admin-content .page-heading>div:first-child,.affiliate-page .page-heading>div:first-child{min-width:0;flex:1;border-left:0;padding:0}
.admin-content .page-heading h1,.affiliate-page .page-heading h1{display:block;width:100%;max-width:none;border-top:1px solid #c8d5e1;border-bottom:1px solid #c8d5e1;padding:.55rem 0 .6rem;font-size:1.5rem;font-weight:800;line-height:1;letter-spacing:-.035em}
.admin-content .page-heading .eyebrow,.affiliate-page .page-heading .eyebrow{display:none}
.admin-content .page-heading p,.affiliate-page .page-heading p{max-width:65ch;color:#586f86}
.admin-content :where(.compact-heading h2,.table-title),.affiliate-page :where(.split h2,.lower-section h2),.storefront-page :where(.section-heading h2),.settings-header h2,.settings-section-heading h3{display:block;width:100%;margin:0;border-top:1px solid #d8e1ea;border-bottom:1px solid #d8e1ea;padding:.55rem 0 .6rem;font-size:1rem;font-weight:800;line-height:1.15;letter-spacing:-.02em}
.admin-content :where(.compact-heading) .eyebrow,.settings-header .eyebrow{display:none}
.admin-content :where(.compact-heading)>h2:after,.admin-content .compact-heading h2:after,.admin-content .table-title:after,.affiliate-page :where(.split,.lower-section) h2:after,.storefront-page .section-heading h2:after,.storefront-page .dialog-head h2:after{display:none}
.storefront-page .section-heading{border:0;padding:0}.settings-header>div{min-width:0;flex:1;border-left:0;padding-left:0}
@media(max-width:640px){.storefront-page .section-heading{padding-left:.85rem}}

/* Compact visual density for operational screens and storefront. */
.admin-page,.affiliate-page,.storefront-page{font-size:14px}
.admin-topbar,.affiliate-page .topbar{height:54px;padding-inline:1.5rem}
.admin-content .module,.affiliate-page .module{padding:1.4rem 1.75rem 3rem}
.admin-content .page-heading p,.affiliate-page .page-heading p{margin-top:.55rem;font-size:.875rem;line-height:1.4}
.dashboard-metrics,.affiliate-page .metric-grid{margin-top:1.25rem}
.dashboard-metrics article,.affiliate-page .metric-grid article{min-height:102px;padding:.85rem 1rem}
.dashboard-metrics strong,.affiliate-page .metric-grid strong{font-size:clamp(1.55rem,2.3vw,2rem)}
.overview-grid,.affiliate-page .split{margin-top:1.25rem}
.compact-heading{padding-bottom:0}.compact-heading>div:first-child{min-width:0;flex:1}
.admin-content :where(.compact-heading)>h2,.admin-content .compact-heading h2,.admin-content .table-title,.affiliate-page :where(.split,.lower-section) h2{padding:.55rem 0 .6rem;font-size:1rem}
.admin-content :where(.compact-heading)>h2:after,.admin-content .compact-heading h2:after,.admin-content .table-title:after,.affiliate-page :where(.split,.lower-section) h2:after{width:1.5rem;margin-top:.4rem}

.admin-sidebar nav a{min-height:36px;padding:.45rem .55rem;font-size:.82rem}
.storefront-page .store-header{padding-block:.55rem}
.storefront-page .store-hero{min-height:390px;padding-block:clamp(2rem,5vw,4rem)}
.storefront-page .store-hero h1{font-size:clamp(2.4rem,5vw,4.25rem)}
.storefront-page .store-hero p{font-size:.98rem}.storefront-page .store-hero aside{min-height:210px}
.storefront-page .store-section{padding-block:clamp(2rem,4vw,3.25rem)}
.storefront-page .section-heading{margin-bottom:1rem;border:0}
.storefront-page .section-heading h2{font-size:1rem}
.storefront-page .product-body{padding:.8rem}
.affiliate-page .split>section{padding-right:1.25rem}
.affiliate-page .lower-section{margin-top:1.4rem}.affiliate-page .table-wrap{margin-top:1rem}
.admin-page :where(.button,input,select,textarea),.affiliate-page :where(.button,input,select,textarea),.storefront-page :where(.button,input,select,textarea){min-height:36px;padding-block:.5rem}
@media(max-width:640px){.admin-content .module,.affiliate-page .module{padding:1.1rem .85rem 2.25rem}.admin-content .page-heading h1,.affiliate-page .page-heading h1{font-size:clamp(1.75rem,8vw,2.2rem)}.dashboard-metrics article,.affiliate-page .metric-grid article{min-height:88px}.storefront-page .store-hero{min-height:330px}.storefront-page .store-hero h1{font-size:clamp(2.15rem,11vw,3rem)}}

/* Catalog block: dense controls, integrated data grid and side editor. */
.catalog-module .page-heading{padding-bottom:1.1rem}
.catalog-toolbar{display:grid;grid-template-columns:auto minmax(160px,1fr) auto auto;align-items:stretch;border:1px solid #bdcbd8;background:#f8fafc}
.catalog-toolbar dl{display:flex;margin:0}.catalog-toolbar dl>div{display:grid;min-width:110px;align-content:center;border-right:1px solid #c8d5e1;padding:.65rem 1rem}
.catalog-toolbar dt{color:#63788e;font-size:.62rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.catalog-toolbar dd{margin:.05rem 0 0;color:#0b2745;font-size:1.25rem;font-weight:850;line-height:1;font-variant-numeric:tabular-nums}
.catalog-search{display:grid;align-content:center;gap:.25rem;border-left:1px solid #c8d5e1;padding:.55rem .75rem;color:#63788e;font-size:.65rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.catalog-search input{height:32px;min-height:32px;border:0;border-bottom:1px solid #9fb1c2;background:transparent;padding:.25rem 0;color:#0b2745;font-size:.8rem;text-transform:none}.catalog-search input:focus{box-shadow:inset 0 -2px 0 #dcae28;outline:0}
.catalog-table-wrap{margin-top:0;border-top:0}.catalog-table-wrap thead{position:sticky;z-index:1;top:54px}.catalog-table-wrap tbody tr{transition:background-color .16s ease}.catalog-table-wrap tbody tr:hover{background:#f1f6fa}.catalog-table-wrap tbody tr[hidden]{display:none}.catalog-table-wrap td:first-child strong{font-weight:800;letter-spacing:-.012em}.catalog-table-wrap :where(th,td){padding:.7rem .8rem}.catalog-filter-empty{margin:0;border-top:1px solid #c8d5e1;padding:1.25rem;color:#63788e;text-align:center}
.operational-dialog{inset:0 0 0 auto;width:min(760px,calc(100% - 1rem));height:100dvh;max-height:none;margin:0;border-left:1px solid #0b2745;background:#f8fafc}.operational-dialog[open]{display:grid;grid-template-rows:auto minmax(0,1fr)}.operational-dialog .dialog-head{min-height:84px;background:#fff;padding:1rem 1.25rem}.operational-dialog .dialog-head>div{border-left:3px solid #dcae28;padding-left:.8rem}.operational-dialog .dialog-head .eyebrow{margin-bottom:.35rem;font-size:.58rem}.operational-dialog .dialog-head h2{font-size:1.35rem}.operational-dialog .dialog-head p{font-size:.76rem}.operational-dialog .form-grid{align-content:start;overflow-y:auto;padding:1rem 1.25rem 1.5rem}.operational-dialog .form-actions{position:sticky;bottom:-1.5rem;margin:0 -1.25rem -1.5rem;border-top:1px solid #c8d5e1;background:#fff;padding:.75rem 1.25rem}
@media(max-width:760px){.catalog-toolbar{grid-template-columns:1fr}.catalog-toolbar dl{display:grid;grid-template-columns:repeat(3,1fr)}.catalog-toolbar dl>div{min-width:0}.catalog-search{border-top:1px solid #c8d5e1;border-left:0}.operational-dialog{width:100%}}

/* Affiliates block: network summary, direct access and side onboarding. */
.affiliates-module .page-heading{padding-bottom:1.1rem}.affiliate-toolbar dl>div{min-width:96px}.affiliate-directory{display:grid;grid-template-columns:minmax(0,1fr) 46px;align-items:start}.affiliate-table-wrap{min-width:0;margin-top:0;border-top:0}.affiliate-table-wrap thead{position:sticky;z-index:1;top:54px}.affiliate-table-wrap tbody tr{transition:background-color .16s ease}.affiliate-table-wrap tbody tr:hover{background:#f1f6fa}.affiliate-table-wrap tbody tr[hidden]{display:none}.affiliate-table-wrap :where(th,td){padding:.7rem .8rem}.affiliate-table-wrap td:first-child strong{font-weight:800;letter-spacing:-.012em}
.access-links{gap:0;border:1px solid #bdcbd8}.access-links a{min-width:48px;border-right:1px solid #bdcbd8;padding:.3rem .5rem;color:#0b4b7d;font-size:.68rem;font-weight:800;text-align:center;text-decoration:none}.access-links a:last-child{border-right:0}.access-links a:hover{background:#0b2745;color:#fff}
@media(max-width:760px){.affiliate-toolbar dl{grid-template-columns:repeat(2,1fr)}.affiliate-toolbar dl>div:nth-child(2n){border-right:0}.affiliate-toolbar dl>div:nth-child(-n+2){border-bottom:1px solid #c8d5e1}.affiliate-directory{grid-template-columns:minmax(0,1fr)}.affiliate-table-wrap{grid-row:2}}

/* Orders block: queue summary, fast filtering and compact stage control. */
.orders-module .page-heading{padding-bottom:1.1rem}.orders-toolbar dl>div{min-width:112px}.orders-table-wrap{margin-top:0;border-top:0}.orders-table-wrap thead{position:sticky;z-index:1;top:54px}.orders-table-wrap tbody tr{transition:background-color .16s ease}.orders-table-wrap tbody tr:hover{background:#f1f6fa}.orders-table-wrap tbody tr[hidden]{display:none}.orders-table-wrap :where(th,td){padding:.62rem .75rem}.orders-table-wrap td:first-child strong{font-weight:850;font-variant-numeric:tabular-nums;letter-spacing:-.012em}.orders-table-wrap td:nth-child(3){font-weight:750;font-variant-numeric:tabular-nums}
.order-stage{display:grid;min-width:190px;grid-template-columns:minmax(125px,1fr) auto;align-items:center;gap:.55rem}.order-stage select{height:32px;min-height:32px;padding:.25rem .45rem;font-size:.7rem}.order-stage>div{display:grid;justify-items:start;gap:.15rem}.order-stage .status{padding:.18rem .4rem;font-size:.6rem}.order-stage .link-button{margin:0;font-size:.64rem}.order-stage .link-button:disabled{color:#91a0af;text-decoration:none}
@media(max-width:760px){.orders-toolbar dl{grid-template-columns:repeat(2,1fr)}.orders-toolbar dl>div:nth-child(2n){border-right:0}.orders-toolbar dl>div:nth-child(-n+2){border-bottom:1px solid #c8d5e1}}

/* Payments block: financial summary and traceable compact ledger. */
.payments-module .page-heading{padding-bottom:1.1rem}.payments-toolbar dl>div{min-width:104px}.payments-table-wrap{margin-top:0;border-top:0}.payments-table-wrap thead{position:sticky;z-index:1;top:54px}.payments-table-wrap tbody tr{transition:background-color .16s ease}.payments-table-wrap tbody tr:hover{background:#f1f6fa}.payments-table-wrap tbody tr[hidden]{display:none}.payments-table-wrap :where(th,td){padding:.62rem .75rem}.payments-table-wrap td:first-child strong,.payments-table-wrap td:nth-child(4){font-weight:800;font-variant-numeric:tabular-nums}.payment-reference{max-width:210px;overflow:hidden;color:#4e657c;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.68rem;text-overflow:ellipsis}.payments-module .status{padding:.18rem .42rem;font-size:.6rem}
@media(max-width:760px){.payments-toolbar dl{grid-template-columns:repeat(2,1fr)}.payments-toolbar dl>div:nth-child(2n){border-right:0}.payments-toolbar dl>div:nth-child(-n+2){border-bottom:1px solid #c8d5e1}}

/* Commissions block: balance summary, compact closing and payout ledger. */
.commissions-module .page-heading{padding-bottom:1.1rem}.commissions-toolbar .money-value{font-size:1.05rem}.commission-workspace{grid-template-columns:minmax(0,1.45fr) minmax(310px,.55fr);margin-top:1rem}.commission-workspace .table-wrap{margin-top:.7rem}.balances-table-wrap :where(th,td){padding:.55rem .7rem}.balances-table-wrap td:last-child{font-weight:800;font-variant-numeric:tabular-nums}.commission-close-panel{min-width:0;padding:1rem 1.15rem}.commission-close-panel .compact{min-width:0;gap:.7rem}.period-fields{display:grid;min-width:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.commission-close-panel :where(label,input,select,.button){min-width:0;max-width:100%}.commission-close-panel :where(input,select){height:34px;min-height:34px;font-size:.72rem}.commission-close-panel .button{width:100%;justify-self:stretch}.commissions-module .table-title{margin-top:1.25rem}.payouts-table-wrap{margin-top:.6rem}.payouts-table-wrap tbody tr{transition:background-color .16s ease}.payouts-table-wrap tbody tr:hover{background:#f1f6fa}.payouts-table-wrap tbody tr[hidden]{display:none}.payouts-table-wrap :where(th,td){padding:.62rem .75rem}.payouts-table-wrap td:nth-child(3){font-weight:800;font-variant-numeric:tabular-nums}.payout-actions{gap:.75rem}.payout-actions .link-button{margin:0;font-size:.65rem}.payout-actions .link-button:last-child{color:#9f2d24}
@media(max-width:980px){.commission-workspace{display:block}.commission-workspace>section{padding-right:0}.commission-close-panel{border-top:1px solid #c8d5e1}}
@media(max-width:760px){.commissions-toolbar dl{grid-template-columns:repeat(2,1fr)}.commissions-toolbar dl>div:nth-child(2n){border-right:0}.commissions-toolbar dl>div:nth-child(-n+2){border-bottom:1px solid #c8d5e1}.period-fields{grid-template-columns:1fr}}

/* Logistics block: shipment summary and inline tracking desk. */
.logistics-module .page-heading{padding-bottom:1.1rem}.logistics-toolbar dl>div{min-width:108px}.logistics-table-wrap{margin-top:0;border-top:0}.logistics-table-wrap thead{position:sticky;z-index:1;top:54px}.logistics-table-wrap tbody tr{transition:background-color .16s ease}.logistics-table-wrap tbody tr:hover{background:#f1f6fa}.logistics-table-wrap tbody tr[hidden]{display:none}.logistics-table-wrap :where(th,td){padding:.58rem .65rem}.logistics-table-wrap td:first-child strong{font-weight:850;font-variant-numeric:tabular-nums}.logistics-table-wrap td:first-child small{margin-top:.3rem}.logistics-table-wrap .status{padding:.14rem .36rem;font-size:.56rem}.logistics-table-wrap .table-input{height:32px;min-height:32px;margin:0;padding:.3rem .45rem;font-size:.68rem}.tracking-code{min-width:120px}.tracking-url{min-width:210px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.tracking-save{margin:0;border:1px solid #bdcbd8;padding:.35rem .55rem;color:#0b4b7d;font-size:.65rem;text-decoration:none}.tracking-save:hover{border-color:#0b2745;background:#0b2745;color:#fff}
@media(max-width:760px){.logistics-toolbar dl{grid-template-columns:repeat(2,1fr)}.logistics-toolbar dl>div:nth-child(2n){border-right:0}.logistics-toolbar dl>div:nth-child(-n+2){border-bottom:1px solid #c8d5e1}}

/* Experience blocks: storefront registry, appearance hierarchy and orchestration map. */

.settings-drawer .settings-header{min-height:84px;padding:1rem 1.25rem}.settings-drawer .settings-main,.settings-drawer .settings-preview{padding:1.1rem}.settings-drawer .settings-form{gap:.7rem;margin-bottom:1rem}.settings-drawer .capability{min-height:44px;padding:.5rem .6rem}.settings-drawer :where(input,select,textarea){font-size:.72rem}

/* Sidebar-owned navigation: no duplicate module bar in the workspace. */
.admin-sidebar-header{position:relative;min-height:64px;border-bottom:1px solid #31506f}.admin-sidebar-header .admin-brand{min-width:0;min-height:63px;border:0;padding:.7rem 3rem .7rem .75rem}.sidebar-collapse{position:absolute;z-index:2;top:16px;right:7px;display:grid;width:32px;height:32px;color:#dbe8f5}.sidebar-collapse:hover{background:#173e67}.sidebar-collapse svg{width:15px;height:15px;transition:transform .18s ease}.admin-page.sidebar-collapsed .admin-brand{display:none}
.admin-page-actions{display:flex;flex:0 0 auto;align-items:center;justify-content:flex-end;gap:.55rem;margin-left:.55rem;padding:0}.admin-page-actions form{margin:0}.admin-page-actions .button{height:34px;min-height:34px;gap:.4rem;padding:.4rem .7rem;font-size:.72rem}.admin-page-actions .button svg{width:14px;height:14px}.admin-content .module{padding-top:1.1rem}.admin-content .page-heading{align-items:flex-start}.admin-content .page-heading>.button{margin-left:auto}.catalog-table-wrap thead,.affiliate-table-wrap thead,.orders-table-wrap thead,.payments-table-wrap thead,.logistics-table-wrap thead{top:0}

@media(max-width:980px){.admin-sidebar{width:255px;transform:translateX(calc(-100% + 42px));box-shadow:inset -1px 0 #31506f}.admin-sidebar.open{transform:translateX(0)}.admin-page .workspace{padding-right:0;padding-left:42px}.sidebar-collapse{display:grid}.admin-page.sidebar-collapsed .admin-sidebar.open .admin-brand{display:flex}.admin-page.sidebar-collapsed .admin-sidebar.open .sidebar-collapse{right:7px}.admin-sidebar:not(.open) .sidebar-collapse{right:7px}.admin-sidebar:not(.open) .sidebar-collapse svg{transform:none}.admin-sidebar.open .sidebar-collapse svg{transform:rotate(180deg)}}
@media(max-width:640px){.admin-page-actions{gap:.35rem}.admin-page-actions .button{height:32px;min-height:32px;padding-inline:.55rem}.admin-page-actions .button span{display:none}.admin-content .module{padding-top:.85rem}.admin-content .page-heading{flex-wrap:wrap}.admin-content .page-heading>div:first-child{flex-basis:calc(100% - 76px)}.admin-content .page-heading>.button{order:3;margin-top:.65rem;margin-left:0}.admin-page-actions{margin-left:auto}}

/* Centralize governance inside the settings drawer. */
.settings-section-heading{margin-bottom:1rem;border-bottom:0;padding-bottom:0}
.settings-section-heading h3{margin:0;color:#0b213c;font-size:1rem;font-weight:850;line-height:1.15;letter-spacing:-.025em}
.settings-section-heading p{margin:.25rem 0 0;color:#63788e;font-size:.75rem}

/* Keep page actions focused while network rules live in the settings rail. */
.module-actions{display:flex;flex:0 0 auto;align-items:center;gap:.5rem}
@media(max-width:1180px){.admin-content .page-heading{flex-wrap:wrap}.admin-content .page-heading>div:first-child{flex-basis:100%}.module-actions{order:2}.admin-page-actions{order:3;margin-left:auto}}
@media(max-width:640px){.module-actions{width:100%;flex-wrap:wrap}.module-actions .button{flex:1}}

/* Live storefront preview inside the affiliate configuration drawer. */
.settings-preview>[hidden]{display:none}.preview-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.8rem}.preview-heading div:not(.affiliate-storefront-actions,.form-result){display:grid;gap:.15rem}.preview-heading span{color:#63788e;font-size:.6875rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.preview-heading strong{font-size:.875rem}.preview-heading a:not(.button){border-bottom:1px solid #9b7300;color:#795900;font-size:.6875rem;font-weight:800;text-decoration:none}.storefront-preview-canvas{border:1px solid #9fb1c2;background:#fff}.storefront-preview-canvas>header{display:flex;min-height:38px;align-items:center;justify-content:space-between;border-bottom:1px solid #d8e1ea;padding:.55rem .7rem}.storefront-preview-canvas>header strong{font-size:.75rem}.storefront-preview-canvas>header span{font-size:.625rem;font-weight:800;text-transform:uppercase}.storefront-preview-hero{display:grid;min-height:250px;grid-template-columns:minmax(0,1.45fr) minmax(92px,.55fr);align-items:stretch;background:#0b2745;color:#fff}.storefront-preview-hero>div{display:flex;min-width:0;flex-direction:column;align-items:flex-start;justify-content:center;padding:1.2rem}.storefront-preview-hero>div>span{font-size:.5625rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.storefront-preview-hero h4{max-width:13ch;margin:.65rem 0;font-family:Outfit,system-ui,sans-serif;font-size:clamp(1.35rem,2.4vw,2rem);font-weight:850;line-height:.94;letter-spacing:-.045em;overflow-wrap:anywhere}.storefront-preview-hero p{display:-webkit-box;max-width:34ch;margin:0;font-size:.6875rem;line-height:1.4;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:4}.storefront-preview-hero b{margin-top:1rem;border:1px solid #efc23f;padding:.4rem .6rem;font-size:.625rem}.storefront-preview-hero aside{align-content:center;border-left:1px solid #496683;padding:.85rem}.storefront-preview-hero aside strong{font-size:2rem;line-height:1}.storefront-preview-hero aside span{margin-top:.25rem;font-size:.625rem;font-weight:750}.storefront-preview-products{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;border-top:1px solid #d8e1ea;padding:0}.storefront-preview-products div{position:relative;min-height:92px}.storefront-preview-products div:after{position:absolute;right:.55rem;bottom:.55rem;left:.55rem;height:4px;content:""}.storefront-preview-video{display:flex;align-items:center;justify-content:space-between;gap:1rem;border-top:1px solid #d8e1ea;padding:.65rem .75rem}.storefront-preview-video span{font-size:.625rem}.storefront-preview-video strong{font-size:.625rem}.preview-caption{margin:.7rem 0 0;color:#63788e;font-size:.6875rem;line-height:1.4}
@media(max-width:980px){.settings-body{display:block;overflow-y:auto}.settings-main{height:auto;overflow:visible}.settings-preview{display:block;border-top:1px solid #c8d5e1;border-left:0}.storefront-preview-canvas{max-width:560px}}
@media(max-width:480px){.storefront-preview-hero{grid-template-columns:1fr}.storefront-preview-hero aside{display:none}.storefront-preview-products div{min-height:76px}.preview-heading{align-items:flex-start;flex-direction:column}}

/* Keep the public hero focused on store identity; product totals belong in the catalog. */
.storefront-page .store-hero{display:block}.storefront-page .store-hero>div{max-width:920px;padding-right:0}.storefront-preview-hero{grid-template-columns:1fr}.storefront-preview-hero aside{display:none}

/* Keep an explicit close control visible in every settings drawer. */
.settings-header{position:sticky;z-index:2;top:0}.settings-close{display:inline-flex;height:36px;flex:0 0 auto;align-items:center;gap:.45rem;border:1px solid #9eafbf;background:#fff;padding:.45rem .65rem;color:#0b2745;font-size:.75rem;font-weight:800}.settings-close:hover{border-color:#0b2745;background:#eaf1f7}.settings-close:focus-visible{outline:2px solid #dcae28;outline-offset:2px}.settings-close svg{width:15px;height:15px}
@media(max-width:480px){.settings-close{width:36px;padding:0;justify-content:center}.settings-close span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}}

/* Affiliate selection and delegated storefront identity controls. */
.affiliate-table-wrap tr[data-affiliate-select="true"]{cursor:pointer}.affiliate-table-wrap tr[data-affiliate-select="true"]:focus-visible{outline:2px solid #dcae28;outline-offset:-2px}.affiliate-table-wrap tr.is-selected td{background:#e6eef5}.affiliate-table-wrap tr.is-selected td:first-child{box-shadow:inset 3px 0 0 #dcae28}.affiliate-storefront-workspace{display:grid;grid-template-columns:minmax(280px,.7fr) minmax(360px,1.3fr);margin-top:1rem;border-top:1px solid #c8d5e1;border-bottom:1px solid #c8d5e1}.affiliate-storefront-form{margin:0;border-right:1px solid #c8d5e1;padding:1rem 1.25rem 1rem 0}.affiliate-storefront-form label{font-size:.8125rem}.affiliate-storefront-form textarea{resize:vertical}.affiliate-storefront-actions{display:flex;flex-wrap:wrap;gap:.5rem}.affiliate-live-preview{min-width:0;background:#f1f6fa;padding:1rem 0 1rem 1.25rem}.affiliate-page .storefront-preview-video[hidden]{display:none}
@media(max-width:980px){.affiliate-storefront-workspace{display:block}.affiliate-storefront-form{border-right:0;border-bottom:1px solid #c8d5e1;padding-right:0}.affiliate-live-preview{padding-left:0}}

/* Accessibility hardening for keyboard navigation and contained overlays. */
dialog{overscroll-behavior:contain}
.affiliate-page .skip-link,.storefront-page .skip-link{border-radius:0}

/* Storefront section orchestration: compact controls and order-aware preview. */
.storefront-section-editor{min-width:0;margin:0;border:1px solid #bdcbd8;padding:.75rem}.storefront-section-editor legend{padding:0 .35rem;color:#0b2745;font-size:.8125rem;font-weight:800}.storefront-section-editor>p{margin:0 0 .65rem;color:#586f86;font-size:.75rem;line-height:1.4}.storefront-section-editor ol,.storefront-preview-sections{display:grid;margin:0;padding:0;list-style:none}.storefront-section-editor li{display:grid;min-height:48px;grid-template-columns:minmax(0,1fr) auto;align-items:center;border-top:1px solid #d8e1ea}.storefront-section-editor li:first-child{border-top:0}.storefront-section-editor li>label{display:flex;min-width:0;align-items:center;gap:.55rem;font-size:.75rem;font-weight:750}.storefront-section-editor input{width:18px;height:18px;min-height:18px;margin:0;accent-color:#0b4b7d}.storefront-section-editor li>div{display:grid;grid-template-columns:44px 44px}.storefront-section-editor button{display:grid;width:44px;height:44px;min-height:44px;place-items:center;border:1px solid #9fb1c2;border-right:0;border-radius:0;background:#fff;padding:0;color:#0b2745;transition:background-color .18s ease,color .18s ease,transform .18s ease}.storefront-section-editor button:last-child{border-right:1px solid #9fb1c2}.storefront-section-editor button span{width:9px;height:9px;border-top:2px solid currentColor;border-left:2px solid currentColor;transform:translateY(2px) rotate(45deg)}.storefront-section-editor button[data-section-down] span{transform:translateY(-2px) rotate(225deg)}.storefront-section-editor button:hover:not(:disabled){background:#0b2745;color:#fff}.storefront-section-editor button:active:not(:disabled){transform:translateY(1px)}.storefront-section-editor button:focus-visible{position:relative;z-index:1;outline:2px solid #dcae28;outline-offset:1px}.storefront-section-editor button:disabled{cursor:not-allowed;opacity:.32}.storefront-section-editor .section-store-position{flex:none;margin:0 .6rem 0 auto;border:1px solid #9fb1c2;background:#eef3f7;padding:.12rem .45rem;color:#0b2745;font-size:.6875rem;font-weight:800;white-space:nowrap}.storefront-section-editor li[data-store-shown="true"] .section-store-position{border-color:#0b4b7d;background:#0b4b7d;color:#fff}.storefront-section-editor li.is-off-store>label>span:not(.context-help){color:#6b7f93}.storefront-section-editor li.is-off-store .section-store-position{border-style:dashed;background:transparent;color:#586f86}.storefront-section-editor li.is-just-moved{animation:section-moved 1.2s ease-out}@keyframes section-moved{from{background:#eaf1f7}to{background:transparent}}.section-order-status{display:block;min-height:1.1em;margin:.5rem 0 0;color:#0b2745;font-size:.75rem;font-weight:650;line-height:1.4}.section-order-status:empty{display:none}@media(max-width:560px){.storefront-section-editor li>label{flex-wrap:wrap;row-gap:.25rem;padding:.3rem 0}.storefront-section-editor .section-store-position{margin-right:.4rem}}.storefront-preview-sections{border-top:1px solid #d8e1ea}.storefront-preview-sections li{display:grid;min-height:34px;grid-template-columns:minmax(0,1fr) 46%;align-items:center;gap:.75rem;border-bottom:1px solid #e2e9ef;padding:.45rem .7rem}.storefront-preview-sections li[hidden]{display:none}.storefront-preview-sections span{font-size:.625rem;font-weight:800}.storefront-preview-sections i{height:4px}.storefront-preview-hero b[hidden]{display:none}

/* Contextual settings navigation and readable compact typography. */
.settings-panel[hidden]{display:none}
.settings-panel{scroll-margin-top:1rem}
.admin-page :where(.eyebrow,.status,.payment-reference,.link-button),.affiliate-page :where(.eyebrow,.status),.storefront-page :where(.status,.store-brand small,.product-body>small){font-size:.75rem}
.admin-page :where(.catalog-search,.settings-form>label),.affiliate-page .sidebar nav a{font-size:.8125rem}
.admin-page :where(.settings-section-heading p),.affiliate-page :where(td small,.topbar small,.sidebar small),.storefront-page :where(.product-footer del){font-size:.75rem}
.admin-page .settings-drawer :where(input,select,textarea){font-size:.8125rem}
.admin-page th,.affiliate-page th{font-size:.75rem}
.admin-page :where(.flow li:before),.affiliate-page .flow li:before{border-radius:0}

/* Storefront cart feedback: persistent count and an add-triggered lateral summary. */
.storefront-page .store-cart-button>svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.storefront-page .store-cart-button output{place-items:center;font-weight:850;font-variant-numeric:tabular-nums}.storefront-page .store-cart-button.is-bumping>svg{animation:store-cart-swing .46s cubic-bezier(.2,.8,.2,1)}.storefront-page .store-cart-button.is-bumping output{animation:store-cart-count .46s cubic-bezier(.2,.8,.2,1)}
.cart-peek{position:fixed;z-index:20;top:0;right:0;bottom:0;display:grid;width:min(360px,calc(100% - 1rem));grid-template-rows:auto auto minmax(0,1fr);border-left:1px solid #9fb1c2;background:#fff;color:#0b213c;box-shadow:-16px 18px 34px rgba(11,39,69,.16);opacity:0;transform:translateX(100%);transition:opacity .22s ease,transform .22s cubic-bezier(.2,.8,.2,1)}.cart-peek[hidden]{display:none}.cart-peek.is-visible{opacity:1;transform:translateX(0)}.cart-peek>header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #c8d5e1;background:#0b2745;padding:.8rem 1rem;color:#fff}.cart-peek>header>div{display:grid}.cart-peek>header span{color:#d6e3ef;font-size:.7rem;font-weight:750;text-transform:uppercase;letter-spacing:.08em}.cart-peek>header strong{font-size:1rem}.cart-peek>header button{display:grid;width:36px;height:36px;min-height:36px;place-items:center;border:1px solid #496683;background:transparent;padding:0;color:#fff}.cart-peek>header button:hover{border-color:#dcae28;color:#f7cf58}.cart-peek>header svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}.cart-peek-lines{min-height:0;overflow-y:auto;overscroll-behavior:contain}.cart-peek-line{display:grid;border-bottom:1px solid #d8e1ea}.cart-peek-media{display:grid;aspect-ratio:1;place-items:center;overflow:hidden;background:#e8eef4;color:#0b2745;font-size:1.5rem;font-weight:850}.cart-peek-media img{width:100%;height:100%;object-fit:cover}.cart-peek-copy{display:grid;min-width:0;align-content:start;gap:.3rem}.cart-peek-copy>strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cart-peek-copy>small{color:#586f86;font-size:.7rem}.cart-peek-quantity{display:grid;width:max-content;margin-top:.35rem;border:1px solid #9fb1c2}.cart-peek-quantity button{display:grid;place-items:center;border:0;background:#f8fafc;padding:0;color:#0b2745;font-size:1rem}.cart-peek-quantity button:hover{background:#eaf1f7}.cart-peek-quantity output{display:grid;place-items:center;border-right:1px solid #c8d5e1;border-left:1px solid #c8d5e1;font-weight:850;font-variant-numeric:tabular-nums}.cart-peek>footer{display:grid;gap:.75rem;border-bottom:1px solid #9fb1c2;background:#f8fafc}.cart-peek>footer>div{display:flex;align-items:center;justify-content:space-between}.cart-peek>footer span{color:#586f86;font-size:.75rem;font-weight:750}.cart-peek>footer strong{font-size:1.15rem;font-variant-numeric:tabular-nums}.cart-peek .button:active{transform:translateY(1px)}
@keyframes store-cart-swing{0%,100%{transform:rotate(0)}35%{transform:rotate(-12deg) scale(1.08)}70%{transform:rotate(8deg)}}@keyframes store-cart-count{0%,100%{transform:scale(1)}45%{transform:scale(1.32)}}
@media(max-width:640px){.storefront-page .store-header{gap:.75rem}.storefront-page .store-cart-button{min-width:46px;grid-template-columns:20px 20px;margin-left:auto;padding-inline:.6rem}.storefront-page .store-cart-button>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.storefront-page .store-cart-button output{min-width:20px;height:20px;font-size:.68rem}}
@media(prefers-reduced-motion:reduce){.storefront-page .store-cart-button.is-bumping>svg,.storefront-page .store-cart-button.is-bumping output{animation:none}.cart-peek{transition:none}}

/* The compact cart rail displaces the storefront instead of covering it. */
.storefront-page{--cart-peek-width:220px;--store-header-height:62px;overflow-x:hidden}.storefront-surface{width:100%;min-width:0}.storefront-page.cart-peek-open .storefront-surface{width:calc(100% - var(--cart-peek-width))}.storefront-page .store-header,.storefront-page .cart-peek>header{height:var(--store-header-height);min-height:var(--store-header-height)}.storefront-page .cart-peek>header{padding-block:.55rem}.storefront-page .cart-peek>header span,.storefront-page .cart-peek>header strong{line-height:1.1}.cart-peek{width:min(var(--cart-peek-width),calc(100% - .5rem));box-shadow:-8px 0 18px rgba(11,39,69,.08)}.cart-peek-line{grid-template-columns:56px minmax(0,1fr);gap:.6rem;padding:.75rem}.cart-peek-media{width:56px}.cart-peek-copy>strong{font-size:.8rem}.cart-peek-quantity{grid-template-columns:28px 32px 28px}.cart-peek-quantity button{min-height:28px}.cart-peek>footer{padding:.75rem}
.cart-peek{grid-template-rows:auto minmax(0,1fr) auto}.cart-peek-remove{width:max-content;border:0;border-bottom:1px solid currentColor;background:transparent;padding:0;color:#9f2d24;font-size:.65rem;font-weight:800}.cart-peek-empty{display:grid;gap:.25rem;padding:1rem;color:#586f86}.cart-peek-empty strong{color:#0b2745}.cart-peek-empty p{margin:0;font-size:.75rem}
@media(max-width:360px){.storefront-page{--cart-peek-width:min(220px,calc(100% - 96px))}}

/* Storefront commerce completion: filters, product detail, checkout and institutional content. */
.storefront-page :where(.product,.store-hero aside,.cart-line button,.product-dialog,.catalog-filters,.order-status-form,.checkout-confirmation){border-radius:0}.storefront-page .store-header{gap:1.25rem;border-color:#bdcbd8;box-shadow:0 8px 24px rgba(11,39,69,.08)}.storefront-page .store-header nav a{flex:0 0 auto;border-bottom:2px solid transparent;padding:.45rem 0;color:#294760}.storefront-page .store-hero{min-height:480px}.storefront-page .store-hero aside{border-radius:0}.storefront-page .section-heading{border-top:1px solid #9fb1c2;border-bottom:1px solid #c8d5e1;padding:1rem 0}.storefront-page .section-heading>div{display:grid;gap:.25rem}.storefront-page .section-heading p{max-width:68ch;margin:0;color:#586f86}.storefront-page .section-heading output{color:#586f86;font-size:.8125rem;font-weight:800;font-variant-numeric:tabular-nums}.storefront-page .product{border-radius:0}.storefront-page .product-media{width:100%;border:0;border-bottom:1px solid #d8e1ea;padding:0;cursor:pointer}.storefront-page .product-media:hover img{transform:scale(1.025)}.storefront-page .product-media img{transition:transform .28s cubic-bezier(.2,.8,.2,1)}.storefront-page .product-body>p{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3}.product-availability{display:inline-flex;width:max-content;margin-top:.75rem;border:1px solid currentColor;padding:.2rem .45rem;font-size:.7rem;font-weight:800}.product-availability.is-available{color:#067647}.product-availability.is-unavailable{color:#9f2d24}.product-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.4rem}.product-actions .button{min-height:36px;padding:.45rem .65rem}.catalog-filters{display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(4,minmax(130px,.75fr)) auto;gap:1px;margin-bottom:1rem;border:1px solid #9fb1c2;background:#bdcbd8}.catalog-filters label{display:grid;gap:.35rem;background:#fff;padding:.65rem .75rem;color:#294760;font-size:.7rem;font-weight:800}.catalog-filters :where(input,select){min-width:0;border-color:#bdcbd8;background:#f8fafc}.catalog-filters .button{align-self:stretch;border:0;background:#eaf1f7}.catalog-empty{border:1px solid #bdcbd8}.product-dialog{width:min(920px,calc(100% - 1rem));padding:0}.cart-lines{max-height:none}.cart-line{align-items:center}.cart-line>div:first-child{display:grid;gap:.2rem}.cart-line .cart-remove{width:max-content;height:auto;border:0;border-bottom:1px solid currentColor;background:transparent;padding:.15rem 0;color:#9f2d24;font-size:.72rem;font-weight:800}.cart-quantity output{min-width:2ch;text-align:center;font-weight:850;font-variant-numeric:tabular-nums}.cart-summary{display:grid;margin:0 1.4rem;border-top:1px solid #c8d5e1}.cart-summary>div{display:flex;align-items:center;justify-content:space-between;padding:.55rem 0}.cart-summary :where(dt,dd){margin:0}.cart-summary dd{font-variant-numeric:tabular-nums}.cart-summary .cart-total{border-top:1px solid #c8d5e1;font-size:1.1rem;font-weight:850}.checkout-confirmation{margin:1rem 1.4rem;border:1px solid #78aa91;background:#effaf4;padding:1rem}.checkout-confirmation[hidden]{display:none}.checkout-confirmation p{margin:.35rem 0}.checkout-confirmation code{display:block;overflow-wrap:anywhere;border:1px solid #b8d8c6;background:#fff;padding:.55rem;font-size:.72rem}.checkout-confirmation .button{margin-top:.75rem}.order-status-section{background:#eaf1f7}.order-status-form{display:grid;grid-template-columns:1fr 1fr auto;gap:1px;border:1px solid #9fb1c2;background:#bdcbd8}.order-status-form label{display:grid;gap:.35rem;background:#fff;padding:.75rem;color:#294760;font-size:.75rem;font-weight:800}.order-status-form .button{align-self:stretch;border:0}.order-status-form .form-result{grid-column:1/-1;margin:0;background:#fff;padding:1rem}.order-status-form .form-result:empty{display:none}.order-status-form .form-result p{margin:.35rem 0}.order-status-form .form-result a{color:#0b4b7d;font-weight:800}.about-section .section-heading p{white-space:normal}.store-footer{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(180px,.7fr) minmax(280px,1.6fr);gap:2rem;border-top:1px solid #31516f;background:#0b2745;padding:2.5rem max(1rem,calc((100% - 1320px)/2));color:#fff}.store-footer>div:first-child,.store-footer address{display:grid;align-content:start;gap:.35rem;font-style:normal}.store-footer span,.store-footer address a{color:#c6d7e8;text-decoration:none}.store-policies{display:grid;gap:.35rem}.store-policies details{border-top:1px solid #385a7b;padding:.55rem 0}.store-policies summary{cursor:pointer;font-weight:750}.store-policies p{max-width:68ch;margin:.6rem 0;color:#c6d7e8;white-space:normal}.storefront-navigation-editor{display:grid;grid-template-columns:1fr 1fr;gap:.45rem;min-width:0;margin:0;border:1px solid #bdcbd8;padding:.75rem}.storefront-navigation-editor legend{padding:0 .35rem;color:#0b2745;font-size:.8125rem;font-weight:800}.storefront-navigation-editor>p{grid-column:1/-1;margin:0 0 .3rem;color:#586f86;font-size:.75rem}.storefront-navigation-editor label{display:flex;min-height:36px;align-items:center;gap:.5rem}.storefront-navigation-editor input{width:18px;height:18px;min-height:18px;margin:0;accent-color:#0b4b7d}.affiliate-storefront-form>fieldset:not(.storefront-section-editor):not(.storefront-navigation-editor){display:grid;gap:.7rem;min-width:0;margin:0;border:1px solid #bdcbd8;padding:.75rem}.affiliate-storefront-form>fieldset legend{padding:0 .35rem;color:#0b2745;font-size:.8125rem;font-weight:800}
.storefront-page .catalog-section{display:grid;grid-template-columns:230px minmax(0,1fr);align-items:start;gap:1rem}.storefront-page .catalog-section>.section-heading{grid-column:1/-1;width:100%}.storefront-page .catalog-section>.catalog-filters{position:sticky;top:82px;display:grid;grid-template-columns:1fr;gap:1px;margin:0;align-self:start}.storefront-page .catalog-filter-title{background:#0b2745;padding:.75rem;color:#fff;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase}.storefront-page .catalog-section>.catalog-filters label{min-width:0}.storefront-page .catalog-section>.catalog-filters .button{min-height:40px}.storefront-page .catalog-section>.storefront-catalog-directory{min-width:0;margin-top:0}
.storefront-page .catalog-price-filter>span{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.storefront-page .catalog-price-filter output{font-size:.75rem;font-weight:850;font-variant-numeric:tabular-nums}.storefront-page .catalog-price-filter input[type="range"]{--range-progress:100%;height:24px;min-height:24px;margin:.35rem 0 0;appearance:none;border:0;background:transparent;padding:0;cursor:pointer}.storefront-page .catalog-price-filter input[type="range"]::-webkit-slider-runnable-track{height:4px}.storefront-page .catalog-price-filter input[type="range"]::-webkit-slider-thumb{width:18px;height:18px;margin-top:-7px;appearance:none;border:2px solid #0b2745;border-radius:50%}.storefront-page .catalog-price-filter input[type="range"]::-moz-range-track{height:4px}.storefront-page .catalog-price-filter input[type="range"]::-moz-range-progress{height:4px}.storefront-page .catalog-price-filter input[type="range"]::-moz-range-thumb{width:16px;height:16px;border:2px solid #0b2745;border-radius:50%}.storefront-page .catalog-price-filter>small{display:flex;justify-content:space-between;color:#63788e;font-size:.625rem;font-weight:700;font-variant-numeric:tabular-nums}
@media(max-width:820px){.storefront-page .catalog-section{grid-template-columns:1fr}.storefront-page .catalog-section>.section-heading{grid-column:1}.storefront-page .catalog-section>.catalog-filters{position:static}}
@media(max-width:1100px){.catalog-filters{grid-template-columns:repeat(3,1fr)}.catalog-filters .wide{grid-column:span 2}.store-footer{grid-template-columns:1fr 1fr}.store-policies{grid-column:1/-1}}
@media(max-width:760px){.storefront-page .store-header{display:grid;height:auto;grid-template-columns:minmax(0,1fr) auto;padding:.55rem 1rem}.storefront-page .store-hero{min-height:380px}.catalog-filters{grid-template-columns:1fr 1fr}.catalog-filters .wide{grid-column:1/-1}.order-status-form{grid-template-columns:1fr}.order-status-form .form-result{grid-column:1}.store-footer{grid-template-columns:1fr}.store-policies{grid-column:1}.product-footer{align-items:start;flex-direction:column}.product-actions{width:100%;justify-content:stretch}.product-actions .button{flex:1}}
@media(max-width:480px){.catalog-filters{grid-template-columns:1fr}.catalog-filters .wide{grid-column:1}.storefront-page .product-grid{grid-template-columns:1fr}.storefront-navigation-editor{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.storefront-page .product-media img{transition:none}}
@media(max-width:640px){.storefront-page .store-header nav{display:flex}}

/* Dedicated checkout page: customer data stays out of overlays and dialogs. */
.cart-checkout-link{width:100%;max-width:100%;margin:0;text-align:center}.cart-checkout-link[aria-disabled="true"]{pointer-events:none;opacity:.45}
.checkout-page{min-height:100dvh}.checkout-header{display:flex;min-height:64px;align-items:center;justify-content:space-between;gap:1rem;border-bottom:1px solid #31516f;background:#0b2745;padding:.75rem max(1rem,calc((100% - 1180px)/2));color:#fff}.checkout-brand{color:#fff;text-decoration:none}.checkout-brand strong,.checkout-brand small{display:block}.checkout-brand strong{font-size:1rem;font-weight:850}.checkout-brand small{margin-top:.1rem;color:#e4b936;font-size:.625rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.checkout-back{border-bottom:1px solid #e4b936;color:#d6e3ef;font-size:.75rem;font-weight:800;text-decoration:none}.checkout-back:hover{color:#fff}.checkout-main{display:grid;max-width:1180px;grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);gap:1.5rem;margin:0 auto;padding:2rem 1rem 4rem}.checkout-details,.checkout-summary{min-width:0;border:1px solid #bdcbd8;background:#fff}.checkout-heading{border-bottom:1px solid #c8d5e1;padding:1.25rem}.checkout-heading span,.checkout-summary-heading span{color:#795900;font-size:.6875rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.checkout-heading h1{margin:.35rem 0 0;font-family:Outfit,system-ui,sans-serif;font-size:clamp(1.8rem,3vw,2.5rem);line-height:1;letter-spacing:-.04em}.checkout-heading p{max-width:65ch;margin:.55rem 0 0;color:#586f86}.checkout-page-form{display:grid;border:0;padding:1.25rem}.checkout-page-form fieldset{min-width:0;margin:0 0 1rem;border:1px solid #bdcbd8;padding:1rem}.checkout-page-form legend{padding:0 .4rem;color:#0b2745;font-size:.8125rem;font-weight:850}.checkout-fields{display:grid;grid-template-columns:1fr 1fr;gap:.85rem}.checkout-fields.single{grid-template-columns:1fr}.checkout-fields label{display:grid;gap:.35rem;color:#405d76;font-size:.75rem;font-weight:800}.checkout-fields .wide{grid-column:1/-1}.checkout-fields :where(input,select){min-width:0;border:1px solid #9fb1c2;border-radius:0;background:#fff;padding:.65rem .75rem}.checkout-fields :where(input,select):focus{border-color:#0b4b7d;outline:2px solid #dcae28;outline-offset:1px}.checkout-page-form>.form-result{margin:0 0 1rem}.checkout-submit{min-height:46px}.checkout-summary{position:sticky;top:1rem;align-self:start}.checkout-summary-heading{border-bottom:1px solid #c8d5e1;padding:1rem}.checkout-summary-heading h2{margin:.25rem 0 0;font-family:Outfit,system-ui,sans-serif;font-size:1.15rem}.checkout-summary .cart-lines{max-height:420px;padding:0 1rem}.checkout-summary .cart-summary{margin:0 1rem}.checkout-edit-cart{display:block;margin:0 1rem 1rem;border-bottom:1px solid currentColor;padding:.6rem 0;color:#0b4b7d;font-size:.75rem;font-weight:800;text-align:center;text-decoration:none}.checkout-product-data{display:none}
.checkout-page-form>.form-result,.checkout-page-form>.button{width:auto;margin:0 0 1rem}.checkout-page-form .checkout-confirmation{margin:0 0 1rem}
@media(max-width:820px){.checkout-main{grid-template-columns:1fr}.checkout-summary{position:static;grid-row:1}.checkout-fields{grid-template-columns:1fr}.checkout-fields .wide{grid-column:1}}
@media(max-width:480px){.checkout-header{padding-inline:.85rem}.checkout-main{padding:1rem .65rem 2.5rem}.checkout-page-form,.checkout-heading{padding:1rem}.checkout-page-form fieldset{padding:.8rem}}

/* Keep public header navigation legible over the navy surface. */
.storefront-page .store-header nav a,.storefront-page .store-header nav a:visited{color:#d6e3ef}
.storefront-page .store-header nav a:hover,.storefront-page .store-header nav a:focus-visible{border-color:#e4b936;color:#fff}
.storefront-page .store-header-search{display:flex;width:clamp(320px,30vw,520px);flex:0 0 auto;align-items:stretch;border:1px solid #496683;background:#fff}.storefront-page .store-header-search label{display:block;min-width:0;flex:1}.storefront-page .store-header-search label>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.storefront-page .store-header-search input{height:40px;min-height:40px;border:0;background:#fff;padding:.55rem .8rem;color:#0b213c;font-size:.8125rem}.storefront-page .store-header-search input::placeholder{color:#63788e}.storefront-page .store-header-search input:focus{outline:2px solid #e4b936;outline-offset:-2px}.storefront-page .store-header-search button{display:grid;width:44px;min-height:40px;flex:0 0 44px;place-items:center;border:0;border-left:1px solid #c8d5e1;padding:0}.storefront-page .store-header-search svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:980px){.storefront-page .store-header-search{width:min(380px,38vw)}}
@media(max-width:760px){.storefront-page .store-header-search{width:min(260px,70vw)}}

/* Render storefront identity and public content as it is edited. */
.storefront-preview-navigation{display:flex;min-height:32px;align-items:center;gap:.65rem;overflow:hidden;border-bottom:1px solid #d8e1ea;padding:.4rem .7rem}
.storefront-preview-navigation span{flex:0 0 auto;font-size:.5625rem;font-weight:750}
.storefront-preview-navigation span[hidden]{display:none}
.storefront-preview-about,.storefront-preview-contact,.storefront-preview-policies{border-top:1px solid #d8e1ea;padding:.7rem}
.storefront-preview-about h5{margin:0;font-size:.6875rem}
.storefront-preview-about p,.storefront-preview-policies p{display:-webkit-box;margin:.25rem 0 0;color:#63788e;font-size:.625rem;line-height:1.35;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3}
.storefront-preview-contact{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .7rem}
.storefront-preview-contact strong{width:100%;color:#0b2745;font-size:.6875rem}
.storefront-preview-contact span{color:#526a82;font-size:.625rem;overflow-wrap:anywhere}
.storefront-preview-policies{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}
.storefront-preview-policies article{min-width:0}
.storefront-preview-policies strong{color:#0b2745;font-size:.625rem}
.storefront-preview-video[hidden],.storefront-preview-sections[hidden],.storefront-preview-about[hidden],.storefront-preview-contact[hidden],.storefront-preview-policies[hidden],.storefront-preview-policies article[hidden]{display:none}
@media(max-width:480px){.storefront-preview-policies{grid-template-columns:1fr}}

/* Keep operational overview separate from contextual network rules. */
.overview-attention,.overview-activity{min-width:0}
.attention-row,.activity-row{display:grid;width:100%;min-height:62px;align-items:center;border:0;border-bottom:1px solid #c8d5e1;background:transparent;padding:.7rem .8rem;color:#0b213c;text-align:left}
.attention-row{grid-template-columns:minmax(0,1fr) auto 18px;gap:.75rem}
.attention-row:hover,.activity-row:hover{background:#eaf1f7}
.attention-row>span{font-size:.8125rem;font-weight:750}
.attention-row>strong{min-width:28px;color:#526a82;font-size:.875rem;text-align:right}
.attention-row>strong.needs-attention{color:#8a6500}
.attention-row svg{width:.9rem;height:.9rem;color:#63788e}
.attention-item{position:relative}.attention-item>.attention-row{padding-right:4.6rem}.attention-item>.context-help{position:absolute;z-index:3;top:0;right:2.45rem;bottom:0;display:flex;align-items:center}
.metric-label,.catalog-toolbar dt,.field-label-copy{display:flex!important;align-items:center;gap:.35rem}.context-help{position:relative;display:inline-flex;flex:0 0 auto;line-height:1}.context-help-trigger{display:grid;width:18px;height:18px;min-width:18px;place-items:center;border:1px solid #8da1b5;border-radius:50%!important;background:#fff;color:#35536f;padding:0}.context-help-trigger:hover,.context-help-trigger:focus-visible{border-color:#0b4b7d;background:#eaf1f7;color:#0b2745}.context-help-trigger svg{width:12px!important;height:12px!important}.context-help-tooltip{position:absolute;z-index:80;bottom:calc(100% + 9px);left:50%;width:min(300px,calc(100vw - 2rem));visibility:hidden;border:1px solid #31516f;background:#0b2745;padding:.7rem .8rem;color:#fff;font-size:.75rem;font-weight:600;letter-spacing:0;line-height:1.45;text-align:left;text-transform:none;opacity:0;pointer-events:none;transform:translate(-50%,4px);transition:opacity .16s ease,transform .16s ease,visibility .16s}.context-help-tooltip:after{position:absolute;top:100%;left:50%;width:8px;height:8px;border-right:1px solid #31516f;border-bottom:1px solid #31516f;background:#0b2745;content:"";transform:translate(-50%,-4px) rotate(45deg)}.context-help:hover .context-help-tooltip,.context-help:focus-within .context-help-tooltip{visibility:visible;opacity:1;transform:translate(-50%,0)}
.catalog-toolbar dl>div:first-child .context-help-tooltip{left:0;transform:translate(0,4px)}.catalog-toolbar dl>div:first-child .context-help-tooltip:after{left:9px}.catalog-toolbar dl>div:first-child .context-help:hover .context-help-tooltip,.catalog-toolbar dl>div:first-child .context-help:focus-within .context-help-tooltip{transform:translate(0,0)}
@media(max-width:640px){.context-help-tooltip{position:fixed;right:1rem;bottom:1rem;left:1rem;width:auto;transform:translateY(6px)}.context-help-tooltip:after{display:none}.context-help:hover .context-help-tooltip,.context-help:focus-within .context-help-tooltip,.catalog-toolbar dl>div:first-child .context-help:hover .context-help-tooltip,.catalog-toolbar dl>div:first-child .context-help:focus-within .context-help-tooltip{transform:none}}
.activity-row{grid-template-columns:minmax(0,1fr) auto;gap:1rem}
.activity-row>span{display:grid;gap:.12rem}
.activity-row>span:last-child{text-align:right}
.activity-row strong{font-size:.8rem}
.activity-row small{color:#63788e;font-size:.6875rem}

/* Expose the setting area that belongs to each operational module. */
.network-rule-form{max-width:680px}
.settings-panel>.settings-form{padding-left:0}
.rule-toggle{display:flex!important;min-height:58px;align-items:flex-start;gap:.7rem;border-bottom:1px solid #d8e1ea;padding:.7rem 0}
.rule-toggle input{width:18px;min-width:18px;height:18px;min-height:18px;margin:.1rem 0 0;accent-color:#0b4b7d}
.rule-toggle span{display:grid;gap:.15rem}
.rule-toggle strong{color:#0b213c;font-size:.78rem}
.rule-toggle small{color:#63788e;font-size:.7rem;line-height:1.35}
.rule-fieldset{margin:0;border:1px solid #bdcbd8;padding:.5rem .8rem}
.rule-fieldset legend{padding:0 .35rem;color:#0b213c;font-size:.75rem;font-weight:800}
.product-commission-rules>label{display:grid;min-height:52px;grid-template-columns:minmax(0,1fr) 112px;align-items:center;gap:1rem;border-top:1px solid #d8e1ea;padding:.55rem 0}
.product-commission-rules>label:first-of-type{border-top:0}
.product-commission-rules>label>span:first-child{display:grid;gap:.1rem}
.product-commission-rules>label strong{font-size:.75rem}
.product-commission-rules>label small{color:#63788e;font-size:.65rem}
.product-commission-rules>label>span:last-child{display:grid;grid-template-columns:minmax(0,1fr) 18px;align-items:center;gap:.35rem}
.product-commission-rules input{min-width:0}
.product-commission-rules b{font-size:.7rem}
.rule-columns{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.rule-columns label{font-size:.78rem}
@media(max-width:620px){.rule-columns{grid-template-columns:1fr}}

/* Shared list controls: search, alphabetical index and client-side pagination. */
.filterable-directory{display:grid;min-width:0;grid-template-columns:minmax(0,1fr) 46px;align-items:start}.filterable-directory>:first-child{min-width:0}.filterable-directory [data-list-row][hidden]{display:none}.list-alphabet{position:sticky;top:12px;display:grid;max-height:calc(100dvh - 24px);overflow-y:auto;border:1px solid #bdcbd8;border-left:0;background:#f8fafc;scrollbar-width:thin}.list-alphabet button{display:grid;min-width:44px;place-items:center;border:0;border-bottom:1px solid #d8e1ea;background:transparent;color:#526a82;font-size:.66rem;font-weight:850;line-height:1}.compact-directory .list-alphabet button{min-width:38px}.list-alphabet button:last-child{border-bottom:0}.list-alphabet button:first-child{font-size:.56rem}.list-alphabet button:hover:not(:disabled),.list-alphabet button:focus-visible{background:#e6eef5;color:#0b2745}.list-alphabet button[aria-pressed="true"]{background:#0b2745;color:#efc23f}.list-alphabet button:disabled{color:#aab8c5;cursor:not-allowed}.list-alphabet button:focus-visible{position:relative;z-index:1;outline:2px solid #dcae28;outline-offset:-2px}.list-pagination{display:grid;min-width:0;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;border-top:1px solid #c8d5e1;padding:.6rem .75rem;background:#f8fafc;color:#526a82;font-size:.68rem;font-weight:750}.list-pagination[hidden]{display:none}.list-pagination>label{display:flex;align-items:center;gap:.45rem}.list-pagination select{width:auto;min-width:60px;height:30px;min-height:30px;padding:.25rem 1.7rem .25rem .45rem;font-size:.68rem}.list-pagination>[data-list-range]{justify-self:center;font-variant-numeric:tabular-nums}.list-pagination>div{display:flex;align-items:center;gap:.45rem}.list-pagination button{min-height:30px;border:1px solid #bdcbd8;background:#fff;padding:.3rem .55rem;color:#0b4b7d;font-size:.66rem;font-weight:800}.list-pagination button:hover:not(:disabled){border-color:#0b2745;background:#0b2745;color:#fff}.list-pagination button:disabled{color:#9aabba}.list-pagination [data-list-page]{min-width:42px;text-align:center;font-variant-numeric:tabular-nums}.inline-list-search{display:grid;max-width:320px;gap:.3rem;margin:.7rem 0 0;color:#63788e;font-size:.72rem;font-weight:800}.inline-list-search input{height:32px;min-height:32px;font-size:.8rem}.affiliate-page .inline-list-search{max-width:none}.affiliate-page .filterable-directory>.table-wrap{margin-top:0}.affiliate-page .lower-section>.inline-list-search{max-width:320px}
@media(max-width:760px){.list-alphabet{position:static;grid-row:1;grid-template-columns:repeat(27,minmax(36px,1fr));max-height:none;overflow-x:auto;overflow-y:hidden;border-left:1px solid #bdcbd8;border-bottom:0}.list-alphabet button,.compact-directory .list-alphabet button{min-width:36px;min-height:40px;border-right:1px solid #d8e1ea;border-bottom:0}.list-pagination{grid-template-columns:auto 1fr}.list-pagination>[data-list-range]{justify-self:end}.list-pagination>div{grid-column:1/-1;justify-content:space-between;border-top:1px solid #d8e1ea;padding-top:.55rem}}
.storefront-catalog-directory{margin-top:1rem}.storefront-catalog-surface{min-width:0}.storefront-catalog-surface>.product-grid{border-bottom:0}.storefront-catalog-surface>.catalog-empty+.list-pagination{border-top:0}
.list-pagination>[data-catalog-range]{justify-self:center;font-variant-numeric:tabular-nums}.list-pagination [data-catalog-page]{min-width:42px;text-align:center;font-variant-numeric:tabular-nums}
@media(max-width:760px){.list-pagination>[data-catalog-range]{justify-self:end}}

/* Keep module gutters symmetrical and let the page, not the alphabet, scroll. */
.admin-page .workspace{padding-right:0}
@media(min-width:761px){.list-alphabet{position:static;max-height:none;overflow:visible}.list-alphabet button,.compact-directory .list-alphabet button{min-height:18px}}

.catalog-logistics strong,.catalog-logistics small{display:block}.catalog-logistics small{margin-top:.2rem;color:#63788e;font-size:.6875rem;white-space:nowrap}

/* Keep visible close affordances consistent across sidebars and dialogs. */
.surface-close,.affiliate-sidebar-close{display:inline-flex;min-width:58px;height:36px;align-items:center;justify-content:center;gap:.45rem;border:1px solid #9eafbf;border-radius:0;background:#fff;padding:.35rem .5rem;color:#0b2745;font-weight:800}.surface-close>span,.affiliate-sidebar-close>span{font-size:1.2rem;line-height:1}.surface-close kbd,.affiliate-sidebar-close kbd,.settings-close kbd,.sidebar-collapse kbd{border:1px solid #bdcbd8;background:#f1f6fa;padding:.12rem .28rem;color:#526a82;font-family:Outfit,system-ui,sans-serif;font-size:.5625rem;font-weight:800;line-height:1}.surface-close:hover,.affiliate-sidebar-close:hover{border-color:#0b2745;background:#eaf1f7}.surface-close:focus-visible,.affiliate-sidebar-close:focus-visible{outline:2px solid #dcae28;outline-offset:2px}
.settings-close kbd{margin-left:.1rem}.admin-page.sidebar-collapsed .sidebar-collapse kbd{display:none}
.affiliate-sidebar-header{position:relative;display:flex;align-items:stretch;border-bottom:1px solid #31516f}.affiliate-sidebar-header .brand{min-width:0;flex:1;border-bottom:0}.affiliate-sidebar-close{position:absolute;right:7px;border-color:#607b96;background:#0b2745;color:#fff}.affiliate-sidebar-close kbd{border-color:#607b96;background:#173e67;color:#dbe8f5}.affiliate-sidebar-close:hover{border-color:#dcae28;background:#173e67}

/* Keep modality fields in the main dialog scroll area instead of nesting scroll containers. */
.product-mode-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;min-width:0;margin:0;border:1px solid #bdcbd8;padding:1rem}.product-mode-fields[hidden]{display:none}.product-mode-fields legend{padding:0 .35rem;color:#0b213c;font-size:.875rem;font-weight:850}.product-mode-fields .wide{grid-column:1/-1}.product-mode-help{margin:0;color:#63788e;font-size:.75rem;line-height:1.4}@media(max-width:620px){.product-mode-fields{grid-template-columns:1fr}.product-mode-fields .wide{grid-column:1}}

/* Keep sidebar chrome compact; Esc remains a keyboard-only shortcut here. */
.admin-shell,.affiliate-page .affiliate-shell{grid-template-columns:220px minmax(0,1fr)}
.admin-sidebar-header .admin-brand{padding-right:3rem}.sidebar-collapse{width:32px;gap:0}.admin-page.sidebar-collapsed .sidebar-collapse{right:20px;width:32px}
.affiliate-sidebar-header .brand{padding-right:3rem}.affiliate-sidebar-close{top:16px;width:32px;min-width:32px;height:32px;gap:0;padding:0}
@media(max-width:980px){.admin-shell,.admin-page.sidebar-collapsed .admin-shell,.affiliate-page .affiliate-shell{grid-template-columns:1fr}.admin-sidebar,.affiliate-page .affiliate-shell>.sidebar{width:220px}}

/* Use directional controls for sidebar collapse; do not display close or Esc glyphs. */
.sidebar-collapse svg{transform:rotate(180deg)!important}.admin-page.sidebar-collapsed .sidebar-collapse svg{transform:none!important}
.affiliate-sidebar-close svg{width:15px;height:15px}

/* Match every directory surface to the full height of its A-Z filter. */
@media(min-width:761px){.filterable-directory{position:relative;align-items:stretch}.filterable-directory>.list-alphabet{position:static;max-height:none;overflow:visible}.filterable-directory>:first-child{display:flex;flex-direction:column;background:#f8fafc}.filterable-directory .list-pagination{margin-top:auto}}

/* Preserve a visible reopen rail when the affiliate sidebar is collapsed. */
@media(min-width:981px){.affiliate-page.affiliate-sidebar-closed .affiliate-shell>.sidebar{min-width:0}.affiliate-page.affiliate-sidebar-closed .affiliate-sidebar-header{border-bottom:0}.affiliate-page.affiliate-sidebar-closed .affiliate-sidebar-header .brand,.affiliate-page.affiliate-sidebar-closed .affiliate-shell>.sidebar nav,.affiliate-page.affiliate-sidebar-closed .affiliate-shell>.sidebar .sidebar-exit{display:none}.affiliate-page.affiliate-sidebar-closed .affiliate-sidebar-close{right:8px;transform:rotate(180deg)}.affiliate-page.affiliate-sidebar-closed .menu-button{display:none}}

/* Mirror the admin icon-and-label navigation in the affiliate sidebar. */
.affiliate-page .sidebar nav a,.affiliate-page .sidebar-exit{display:flex;align-items:center;gap:.75rem}.affiliate-page .sidebar nav a{min-height:40px}.affiliate-page .sidebar .nav-icon{color:inherit}
@media(min-width:981px){.affiliate-page.affiliate-sidebar-closed .affiliate-shell{grid-template-columns:72px minmax(0,1fr)}.affiliate-page.affiliate-sidebar-closed .affiliate-shell>.sidebar{display:flex;width:72px}.affiliate-page.affiliate-sidebar-closed .affiliate-sidebar-header{width:72px}.affiliate-page.affiliate-sidebar-closed .affiliate-sidebar-header .brand,.affiliate-page.affiliate-sidebar-closed .affiliate-shell>.sidebar nav p,.affiliate-page.affiliate-sidebar-closed .affiliate-shell>.sidebar .nav-label{display:none}.affiliate-page.affiliate-sidebar-closed .affiliate-shell>.sidebar nav{display:grid;padding-inline:.55rem}.affiliate-page.affiliate-sidebar-closed .affiliate-shell>.sidebar nav a{justify-content:center;padding-inline:.5rem}.affiliate-page.affiliate-sidebar-closed .affiliate-shell>.sidebar .sidebar-exit{display:flex;justify-content:center;margin-inline:0;padding-inline:.5rem}.affiliate-page.affiliate-sidebar-closed .affiliate-sidebar-close{right:20px}}

/* Close the final data row before the flexible directory space begins. */
.filterable-directory tbody tr:last-child td{border-bottom:1px solid #c8d5e1}

/* Keep every order status control independent from the current status label width. */
.orders-table-wrap .order-stage{width:max-content;min-width:0;grid-template-columns:224px 140px}.orders-table-wrap .order-stage select{width:224px;min-width:224px;max-width:224px}

/* Product image uploader: compact, bounded and consistent with the operational form. */
.product-images-fieldset{display:grid;min-width:0;grid-template-columns:minmax(0,1fr) auto;gap:.75rem;margin:0;border:1px solid #bdcbd8;padding:1rem}.product-images-fieldset legend{padding:0 .35rem;color:#0b213c;font-size:.875rem;font-weight:850}.product-images-fieldset>p{grid-column:1/-1;margin:0;color:#63788e;font-size:.75rem;line-height:1.4}.product-image-picker{display:flex;min-height:40px;align-items:center;justify-content:center;border:1px solid #0b2745;background:#0b2745;padding:.5rem .75rem;color:#fff;cursor:pointer}.product-image-picker input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.product-image-count{align-self:center;color:#526a82;font-size:.75rem;font-weight:800}.product-image-grid{display:grid;grid-column:1/-1;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;background:#c8d5e1}.product-image-item{position:relative;display:grid;min-width:0;margin:0;background:#fff}.product-image-item img{width:100%;aspect-ratio:4/3;object-fit:cover}.product-image-item figcaption{padding:.4rem .5rem;color:#526a82;font-size:.6875rem;font-weight:800}.product-image-item button{position:absolute;right:0;bottom:0;border:0;border-top:1px solid #c8d5e1;border-left:1px solid #c8d5e1;background:#fff;padding:.3rem .45rem;color:#9f2d24;font-size:.625rem;font-weight:800}.product-image-item button:hover{background:#9f2d24;color:#fff}@media(max-width:760px){.product-image-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.product-images-fieldset{grid-template-columns:1fr}.product-image-count{justify-self:start}}

/* Keep the public store welcoming with restrained rounding; operational panels stay square. */
.storefront-page{--store-radius-sm:5px;--store-radius-md:8px;--store-radius-lg:10px}
.storefront-page :where(button,input,select,textarea,.button,.status,.product-availability){border-radius:var(--store-radius-sm)}
.storefront-page :where(.product,.catalog-filters,.order-status-form,.catalog-empty,.checkout-confirmation){border-radius:var(--store-radius-md)}
.storefront-page :where(.product,.catalog-filters,.order-status-form,.catalog-empty,.product-dialog,.cart-peek){overflow:hidden}
.storefront-page .product-media{border-radius:var(--store-radius-md) var(--store-radius-md) 0 0}
.storefront-page .product-dialog{border-radius:var(--store-radius-lg)}
.storefront-page .cart-peek{border-radius:0}
.storefront-page :where(.cart-peek-media,.cart-peek-quantity){border-radius:var(--store-radius-sm)}
.storefront-page .store-header-search{overflow:hidden;border-radius:var(--store-radius-sm)}
.storefront-page .store-header-search input{border-radius:var(--store-radius-sm) 0 0 var(--store-radius-sm)}
.storefront-page .store-header-search button{border-radius:0 var(--store-radius-sm) var(--store-radius-sm) 0}

/* Present affiliate-selected highlights and best sellers as compact horizontal storefront rails. */
.storefront-page .product-rail-section{max-width:none;overflow:hidden;padding-inline:max(1rem,calc((100% - 1320px)/2))}
.storefront-page .product-rail-section .section-heading{margin-bottom:1rem}
.storefront-page .product-rail{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:clamp(250px,25vw,320px);align-items:stretch;gap:.75rem;overflow-x:auto;overscroll-behavior-inline:contain;padding:.15rem .1rem .85rem;scroll-behavior:smooth;scroll-snap-type:inline mandatory;scrollbar-color:#9fb1c2 transparent;scrollbar-width:thin}
.storefront-page .product-rail>.product{scroll-snap-align:start;scroll-snap-stop:normal}
.storefront-page .product-rail-controls{display:flex!important;grid-auto-flow:column;align-items:center;gap:.4rem}
.storefront-page .product-rail-controls[hidden]{display:none!important}
.storefront-page .product-rail-controls button{display:grid;width:38px;height:38px;min-height:38px;place-items:center;border:1px solid #9fb1c2;background:#fff;padding:0;color:#0b2745}
.storefront-page .product-rail-controls button:active:not(:disabled){transform:translateY(1px)}
.storefront-page .product-rail-controls button:disabled{cursor:default;opacity:.35}
.storefront-page .product-rail-controls svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:640px){.storefront-page .product-rail{grid-auto-columns:min(82vw,300px)}.storefront-page .product-rail-section{padding-inline:1rem}}

/* Split the public store header into a spacious commerce row and a dedicated navigation row. */
.storefront-page .store-header{display:block;height:auto;min-height:0;padding:0;background:#0b2745}
.storefront-page .store-header-main{display:grid;min-height:var(--store-header-height);grid-template-columns:minmax(220px,32%) minmax(280px,1fr) auto;align-items:center;gap:1rem;padding:.6rem max(1rem,calc((100% - 1320px)/2))}
.storefront-page .store-brand{min-width:0;color:#fff}
.storefront-page .store-brand strong{overflow:hidden;color:#fff;font-size:1rem;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}
.storefront-page .store-header-search{width:100%;min-width:0;max-width:none}
.storefront-page .store-cart-button{display:grid;min-width:0;grid-template-columns:20px auto auto;align-items:center;gap:.4rem;border:0;background:transparent;padding:.45rem .2rem;color:#e4b936;font-family:inherit;font-size:.9rem;font-weight:850;cursor:pointer}
.storefront-page .store-cart-button:hover,.storefront-page .store-cart-button:focus-visible{background:transparent;color:#fff}
.storefront-page .store-cart-button:focus-visible{outline:2px solid #e4b936;outline-offset:3px}
.storefront-page .store-cart-button output{display:block;min-width:auto;height:auto;font-size:.75rem}
.storefront-page .store-header nav{display:flex;min-width:0;min-height:40px;align-items:center;gap:1.4rem;overflow-x:auto;border-top:1px solid #31516f;padding:.35rem max(1rem,calc((100% - 1320px)/2));scrollbar-width:thin}
.storefront-page .store-header nav a,.storefront-page .store-header nav a:visited{flex:0 0 auto;color:#d6e3ef}
.storefront-page .store-section{scroll-margin-top:118px}
@media(max-width:760px){.storefront-page .store-header-main{grid-template-columns:minmax(0,1fr) auto;padding:.55rem 1rem}.storefront-page .store-header-search{grid-column:1/-1;grid-row:2}.storefront-page .store-cart-button{grid-column:2;grid-row:1}.storefront-page .store-header nav{grid-column:auto;grid-row:auto;padding:.3rem 1rem}.storefront-page .store-section{scroll-margin-top:158px}}
@media(max-width:480px){.storefront-page .store-header-main{gap:.65rem}.storefront-page .store-brand strong{font-size:.9rem}.storefront-page .store-cart-button{grid-template-columns:20px auto}.storefront-page .store-cart-button>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.storefront-page .store-header-search{width:100%}}

/* Use transparent logos as integrated identity, never as boxed artwork. */
.admin-brand{min-width:0;background-image:url('/assets/brand/central-afiliados-logo-sidebar.png');background-repeat:no-repeat;background-position:left center;background-size:min(190px,calc(100% - 10px)) auto}
.admin-brand .brand-copy{opacity:0}
.storefront-page.has-store-logo .store-brand{height:48px}.storefront-page.has-store-logo .store-brand img{display:block;width:auto;object-fit:contain}
.storefront-page.has-store-logo .store-brand strong{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Offer curated, contrast-safe storefront palettes instead of unrestricted color inputs. */
:is(.storefront-page,.checkout-page).theme-classic{--store-brand:#18324A;--store-brand-soft:#294963;--store-accent:#C99332;--store-accent-hover:#D9A94A;--store-on-brand:#FFFFFF;--store-on-accent:#201709;--store-page:#F7F4ED;--store-surface:#FFFDF9;--store-media:#E8EDF0;--store-ink:#172533;--store-muted:#5A6672;--store-line:#D4CEC3}
:is(.storefront-page,.checkout-page).theme-rose{--store-brand:#643F4A;--store-brand-soft:#7B5661;--store-accent:#C7846F;--store-accent-hover:#D49A87;--store-on-brand:#FFFFFF;--store-on-accent:#2D1812;--store-page:#FBF5F3;--store-surface:#FFFCFB;--store-media:#EFE3E1;--store-ink:#302326;--store-muted:#705D63;--store-line:#DDCFCC}
:is(.storefront-page,.checkout-page).theme-lavender{--store-brand:#542A32;--store-brand-soft:#6B3C45;--store-accent:#D1A867;--store-accent-hover:#DDBB82;--store-on-brand:#FFFFFF;--store-on-accent:#241804;--store-page:#FAF6EF;--store-surface:#FFFDF9;--store-media:#EFE5DF;--store-ink:#2D2021;--store-muted:#6D6260;--store-line:#D8D0C4}
:is(.storefront-page,.checkout-page).theme-natural{--store-brand:#3F5A4C;--store-brand-soft:#567064;--store-accent:#C4774B;--store-accent-hover:#D18D64;--store-on-brand:#FFFFFF;--store-on-accent:#2A140A;--store-page:#F5F4EE;--store-surface:#FFFEFA;--store-media:#E4E8E1;--store-ink:#27332D;--store-muted:#5F6963;--store-line:#D0D2C9}
:is(.storefront-page,.checkout-page).theme-ocean{--store-brand:#1F5057;--store-brand-soft:#35666C;--store-accent:#D2A85B;--store-accent-hover:#DEBB77;--store-on-brand:#FFFFFF;--store-on-accent:#211804;--store-page:#F3F7F6;--store-surface:#FCFEFD;--store-media:#E0EAE8;--store-ink:#213638;--store-muted:#566B6B;--store-line:#CAD6D4}
:is(.storefront-page,.checkout-page).theme-graphite{--store-brand:#343A40;--store-brand-soft:#4A5158;--store-accent:#B97145;--store-accent-hover:#C98961;--store-on-brand:#FFFFFF;--store-on-accent:#261309;--store-page:#F5F4F2;--store-surface:#FEFDFC;--store-media:#E7E6E4;--store-ink:#252A2E;--store-muted:#62676C;--store-line:#D1D0CD}
:is(.storefront-page,.checkout-page).theme-marketplace{--store-accent-text:#C7511F;--store-brand:#131921;--store-brand-soft:#232F3E;--store-accent:#FEBD69;--store-accent-hover:#F3A847;--store-on-brand:#FFFFFF;--store-on-accent:#0F1111;--store-page:#FFFFFF;--store-surface:#FFFFFF;--store-media:#F7F7F7;--store-ink:#0F1111;--store-muted:#565959;--store-line:#D5D9D9}
:is(.storefront-page,.checkout-page).theme-cinema{--store-accent-text:#FF3939;--store-brand:#000000;--store-brand-soft:#23211E;--store-accent:#DD0000;--store-accent-hover:#FF3939;--store-on-brand:#FFFFFF;--store-on-accent:#FFFFFF;--store-page:#12100D;--store-surface:#23211E;--store-media:#171512;--store-ink:#F7F6F5;--store-muted:#AAA9A8;--store-line:#363333}
.storefront-palette-editor{display:grid;gap:.75rem;min-width:0;margin:0;border:1px solid #bdcbd8;padding:.85rem}.storefront-palette-editor legend{padding:0 .35rem;color:#0b2745;font-size:.8125rem;font-weight:850}.storefront-palette-editor>p{margin:0;color:#63788e;font-size:.75rem;line-height:1.45}.storefront-palette-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.storefront-palette-option{position:relative;display:grid!important;min-width:0;gap:.6rem;border:1px solid #c8d5e1;padding:.65rem;background:#fff;color:#0b213c;cursor:pointer}.storefront-palette-option:has(input:checked){border-color:#0b2745;box-shadow:inset 3px 0 0 #dcae28}.storefront-palette-option input{width:16px;height:16px;min-height:16px;margin:0;accent-color:#0b4b7d}.storefront-palette-copy{display:grid;min-width:0}.storefront-palette-copy strong{font-size:.75rem}.storefront-palette-copy small{color:#63788e;text-overflow:ellipsis}.storefront-palette-swatches{display:flex}.storefront-palette-swatches i{display:block;border:1px solid rgba(11,33,60,.12)}.storefront-palette-swatches i+i{border-left:0}@media(max-width:640px){.storefront-palette-options{grid-template-columns:1fr}}
.storefront-palette-swatches i{width:auto}.storefront-palette-swatches i:nth-child(1){width:60%}.storefront-palette-swatches i:nth-child(2){width:30%}.storefront-palette-swatches i:nth-child(3){width:10%}
.storefront-page{background:var(--store-page);color:var(--store-ink)}.storefront-page :is(.store-header,.store-hero,.store-footer,.cart-peek>header,.catalog-filter-title){background:var(--store-brand);color:var(--store-on-brand)}.storefront-page .store-hero aside{border-color:var(--store-line);background:var(--store-brand-soft)}.storefront-page :is(.store-header nav,.store-footer,.store-policies details){border-color:var(--store-line)}.storefront-page :is(.store-header nav a,.store-header nav a:visited,.store-footer span,.store-footer address a,.store-hero p){color:var(--store-on-brand)}.storefront-page :is(.product,.catalog-filters label,.order-status-form label,.cart-peek>footer){background:var(--store-surface)}.storefront-page :is(.section-heading p,.product-body>p,.cart-peek-copy>small,.cart-peek>footer span){color:var(--store-muted)}.storefront-page :is(.product,.catalog-filters,.order-status-form,.section-heading,.cart-peek-line,.cart-peek>footer){border-color:var(--store-line)}.storefront-page .button.primary{border-color:var(--store-accent);background:var(--store-accent);color:var(--store-on-accent)}.storefront-page .button.primary:hover{border-color:var(--store-accent-hover);background:var(--store-accent-hover);color:var(--store-on-accent)}.storefront-page :is(.store-cart-button,.store-brand small){color:var(--store-accent)}.storefront-page .store-cart-button output{border:0;background:transparent;color:inherit}.storefront-page .store-header nav a:hover{border-color:var(--store-accent);color:var(--store-on-brand)}
.storefront-page .store-hero h1,.storefront-page .store-header .store-brand strong,.storefront-page .cart-peek>header strong,.storefront-page .store-footer strong{color:var(--store-on-brand)}
.storefront-page :is(.store-section,.section-heading,.section-heading h2,.product-grid,.product,.product-media,.catalog-filters,.catalog-empty,.order-status-form,.product-dialog,.cart-dialog,.cart-line,.cart-summary,.store-policies details,.storefront-catalog-surface>.list-pagination){border-color:var(--store-line)}
.storefront-page .product-grid{background:var(--store-line)}.storefront-page .product-rail{background:transparent}.storefront-page :is(.product-media,.product-dialog-media){border-color:var(--store-line);background:var(--store-media);color:var(--store-brand)}
.storefront-page :is(.catalog-filters,.order-status-form){background:var(--store-line)}.storefront-page :is(.catalog-filters label,.order-status-form label,.order-status-form .form-result,.product-dialog,.cart-dialog,.cart-line button){background:var(--store-surface);color:var(--store-ink)}
.storefront-page :is(.catalog-filters input,.catalog-filters select,.order-status-form input,.order-status-form select,.store-header-search,.store-header-search input,.store-header-search button){border-color:var(--store-line)}.storefront-page :is(.catalog-filters input,.catalog-filters select,.order-status-form input){background:var(--store-page);color:var(--store-ink)}
.storefront-page :is(.catalog-filters .button,.order-status-section,.product-rail-controls button){border-color:var(--store-line);background:var(--store-media);color:var(--store-brand)}.storefront-page .product-rail-controls button:hover:not(:disabled){border-color:var(--store-brand);background:var(--store-surface);color:var(--store-brand)}
.storefront-page .catalog-price-filter output{color:var(--store-brand)}.storefront-page .catalog-price-filter input[type="range"]::-webkit-slider-runnable-track{background:linear-gradient(to right,var(--store-accent) 0 var(--range-progress),var(--store-line) var(--range-progress) 100%)}.storefront-page .catalog-price-filter input[type="range"]::-webkit-slider-thumb{border-color:var(--store-brand);background:var(--store-surface)}.storefront-page .catalog-price-filter input[type="range"]::-moz-range-track{background:var(--store-line)}.storefront-page .catalog-price-filter input[type="range"]::-moz-range-progress{background:var(--store-accent)}.storefront-page .catalog-price-filter input[type="range"]::-moz-range-thumb{border-color:var(--store-brand);background:var(--store-surface)}
.storefront-page .store-hero{border-color:var(--store-line)}.storefront-page :is(.status.gold,.button.primary){background:var(--store-accent);color:var(--store-on-accent)}.storefront-page .button.dark{border-color:var(--store-brand);background:var(--store-brand);color:var(--store-on-brand)}.storefront-page .product-body>small{color:var(--store-accent)}
.storefront-page .store-header-search{border-color:var(--store-line);background:var(--store-surface)}.storefront-page .store-header-search input{background:var(--store-surface);color:var(--store-ink)}.storefront-page .store-header-search input:focus{outline-color:var(--store-accent)}.storefront-page .store-header-search button{border-color:var(--store-line);background:var(--store-page);color:var(--store-brand)}.storefront-page .store-header-search button:hover{background:var(--store-accent);color:var(--store-on-accent)}
.storefront-page .order-status-form .form-result a{color:var(--store-brand)}.storefront-page .store-policies p{color:var(--store-on-brand)}.storefront-page .product-rail{scrollbar-color:var(--store-line) transparent}
.storefront-page .cart-peek{border-color:var(--store-line);background:var(--store-surface);color:var(--store-ink)}.storefront-page .cart-peek>header{border-color:var(--store-line)}.storefront-page .cart-peek>header span{color:var(--store-on-brand)}.storefront-page .cart-peek>header button{border-color:var(--store-line);color:var(--store-on-brand)}.storefront-page .cart-peek>header button:hover{border-color:var(--store-accent);color:var(--store-accent)}.storefront-page .cart-peek-media{background:var(--store-media);color:var(--store-brand)}.storefront-page .cart-peek-quantity{border-color:var(--store-line)}.storefront-page .cart-peek-quantity button{background:var(--store-page);color:var(--store-brand)}.storefront-page .cart-peek-quantity button:hover{background:var(--store-media)}.storefront-page .cart-peek-quantity output{border-color:var(--store-line)}
.storefront-preview-canvas{color:var(--store-ink,#0b213c)}.storefront-preview-canvas>header,.storefront-preview-hero{background:var(--store-brand,#0b2745);color:var(--store-on-brand,#fff)}.storefront-preview-canvas>header span,.storefront-preview-hero p{color:var(--store-on-brand,#fff)}.storefront-preview-sections li{border-color:var(--store-line,#d8e1ea)}
.store-logo-field{display:grid;gap:.65rem;min-width:0;margin:0;border:1px solid #bdcbd8;padding:.75rem}
.store-logo-field legend{padding:0 .35rem;color:#0b2745;font-size:.8125rem;font-weight:800}
.store-logo-field>p{margin:0;color:#586f86;font-size:.72rem;line-height:1.4}
.store-logo-control{display:grid;grid-template-columns:minmax(120px,1fr) auto;align-items:center;gap:.65rem}
.store-logo-preview{display:grid;min-height:76px;place-items:center;overflow:hidden;border:1px dashed #9fb1c2;background:#eaf1f7;padding:.6rem;color:#526a82;font-size:.7rem;font-weight:750;text-align:center}
.store-logo-preview img{display:block;width:auto;max-width:100%;height:54px;object-fit:contain}
.store-logo-actions{display:grid;gap:.4rem}.store-logo-picker{display:inline-flex;min-height:36px;align-items:center;justify-content:center;border:1px solid #0b2745;background:#0b2745;padding:.45rem .65rem;color:#fff;font-size:.72rem;font-weight:800;cursor:pointer}.store-logo-picker input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.store-logo-remove{border:1px solid #9fb1c2;background:#fff;padding:.45rem .65rem;color:#9f2d24;font-size:.7rem;font-weight:800}.store-logo-remove[hidden],.store-logo-field[hidden]{display:none}
@media(max-width:480px){.store-logo-control{grid-template-columns:1fr}.store-logo-actions{grid-template-columns:1fr 1fr}}
.auth-demo-note{border:1px solid #d8c27a;background:#fff9e5;color:#664d00;text-align:left}
.context-help[data-open] .context-help-tooltip{visibility:visible;opacity:1;transform:translate(-50%,0)}

/* Preserve the selected storefront identity throughout checkout. */
.checkout-page{background:var(--store-page);color:var(--store-ink)}.checkout-page .checkout-header{border-color:var(--store-line);background:var(--store-brand);color:var(--store-on-brand)}.checkout-page .checkout-brand{display:flex;align-items:center;gap:.75rem;color:var(--store-on-brand)}.checkout-page .checkout-brand img{display:block;width:auto;object-fit:contain}.checkout-page .checkout-brand strong{color:var(--store-on-brand)}.checkout-page .checkout-brand small{color:var(--store-accent)}.checkout-page .checkout-back{border-color:var(--store-accent);color:var(--store-on-brand)}.checkout-page .checkout-back:hover{color:var(--store-accent)}
.checkout-page :is(.checkout-details,.checkout-summary){border-color:var(--store-line);background:var(--store-surface)}.checkout-page :is(.checkout-heading,.checkout-summary-heading,.cart-line,.cart-summary,.cart-total){border-color:var(--store-line)}.checkout-page :is(.checkout-heading span,.checkout-summary-heading span){color:var(--store-accent)}.checkout-page :is(.checkout-heading p,.cart-line small){color:var(--store-muted)}.checkout-page .checkout-page-form fieldset{border-color:var(--store-line)}.checkout-page .checkout-page-form legend{color:var(--store-brand)}.checkout-page .checkout-fields label{color:var(--store-muted)}.checkout-page .checkout-fields :where(input,select){border-color:var(--store-line);background:var(--store-surface);color:var(--store-ink)}.checkout-page .checkout-fields :where(input,select):focus{border-color:var(--store-brand);outline-color:var(--store-accent)}
.checkout-page .button.primary{border-color:var(--store-accent);background:var(--store-accent);color:var(--store-on-accent)}.checkout-page .button.primary:hover:not(:disabled){border-color:var(--store-accent-hover);background:var(--store-accent-hover);color:var(--store-on-accent)}.checkout-page .button.ghost{border-color:var(--store-line);background:var(--store-media);color:var(--store-brand)}.checkout-page .button.ghost:hover:not(:disabled){border-color:var(--store-brand);background:var(--store-surface)}.checkout-page .cart-line button{border-color:var(--store-line);background:var(--store-surface);color:var(--store-brand)}.checkout-page .cart-remove{color:#9f2d24}.checkout-page .checkout-edit-cart{color:var(--store-brand)}.checkout-page .checkout-confirmation{border-color:var(--store-brand);background:var(--store-media)}

/* Give every catalog item a complete, dedicated purchase page. */
.product-page .store-header-main{grid-template-columns:minmax(220px,1fr) auto auto}.product-back-link{color:var(--store-on-brand);font-size:.85rem;font-weight:750}.product-back-link:hover{color:var(--store-accent)}
.product-page-main{width:min(1320px,calc(100% - 2rem));margin:0 auto;padding:1.25rem 0 4rem}.product-breadcrumb{display:flex;min-width:0;align-items:center;gap:.45rem;overflow:hidden;margin-bottom:1rem;color:var(--store-muted);font-size:.75rem;white-space:nowrap}.product-breadcrumb a{color:var(--store-brand)}.product-breadcrumb span:last-child{overflow:hidden;text-overflow:ellipsis}
.product-detail-page{display:grid;grid-template-columns:minmax(340px,1.08fr) minmax(300px,.86fr) minmax(260px,.56fr);align-items:start;gap:clamp(1.25rem,2.5vw,2.5rem);border-top:1px solid var(--store-line);padding-top:1.5rem}.product-page-gallery{display:grid;min-width:0;grid-template-columns:auto minmax(0,1fr);gap:.75rem}.product-page-thumbnails{display:grid;align-content:start;gap:.55rem}.product-page-thumbnails button{display:grid;width:64px;height:64px;place-items:center;border:1px solid var(--store-line);background:var(--store-surface);padding:3px}.product-page-thumbnails button[aria-pressed="true"]{border:2px solid var(--store-accent)}.product-page-thumbnails button:focus-visible{outline:2px solid var(--store-brand);outline-offset:2px}.product-page-thumbnails img{display:block;width:100%;height:100%;object-fit:contain}.product-page-main-media{display:grid;min-height:440px;place-items:center;overflow:hidden;background:var(--store-media);color:var(--store-brand);font-size:5rem;font-weight:900}.product-page-main-media img{display:block;width:100%;height:100%;max-height:600px;object-fit:contain}
.product-body h3 a{color:inherit;text-decoration:none}.product-page-information{min-width:0}.product-page-category{display:block;margin-bottom:.5rem;color:var(--store-accent);font-size:.75rem;font-weight:850;letter-spacing:.07em;text-transform:uppercase}.product-page-information h1{margin:0;color:var(--store-ink);font-size:clamp(1.65rem,2.4vw,2.4rem);line-height:1.12;letter-spacing:-.025em}.product-page-sku{margin:.65rem 0 0;color:var(--store-muted);font-size:.72rem}.product-page-description{margin:1.5rem 0;color:var(--store-muted);font-size:1rem;line-height:1.65}.product-page-divider{height:1px;background:var(--store-line)}.product-page-information h2{margin:1.4rem 0 .8rem;font-size:1rem}.product-page-facts{display:grid;gap:.6rem;margin:0}.product-page-facts div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:.8rem;font-size:.82rem}.product-page-facts dt{font-weight:850}.product-page-facts dd{margin:0;color:var(--store-muted)}
.product-purchase-panel{position:sticky;top:1rem;display:grid;gap:.85rem;border:1px solid var(--store-line);background:var(--store-surface);padding:1.25rem}.product-purchase-panel>small{color:var(--store-muted)}.product-page-promotion{display:flex;align-items:center;gap:.65rem}.product-page-promotion span{color:#a32828;font-size:1.05rem}.product-page-promotion del{color:var(--store-muted);font-size:.78rem}.product-page-price{color:var(--store-ink);font-size:2rem;line-height:1}.product-page-delivery{margin:.25rem 0;color:var(--store-muted);font-size:.82rem;line-height:1.5}.product-quantity-label{display:grid;gap:.35rem;color:var(--store-ink);font-size:.75rem;font-weight:800}.product-quantity-label select{min-height:38px;border:1px solid var(--store-line);background:var(--store-page);padding:.45rem .6rem;color:var(--store-ink)}.product-buy-button{border:1px solid var(--store-brand);background:var(--store-brand);color:var(--store-on-brand)}.product-buy-button:hover{background:var(--store-brand-soft)}.product-purchase-assurances{display:grid;gap:.55rem;margin:.35rem 0 0;padding:1rem 0 0;border-top:1px solid var(--store-line);list-style:none}.product-purchase-assurances li{position:relative;padding-left:1.15rem;color:var(--store-muted);font-size:.72rem;line-height:1.4}.product-purchase-assurances li:before{position:absolute;left:0;color:var(--store-brand);content:'✓';font-weight:900}.product-page-footer{margin-top:0}
@media(max-width:1020px){.product-detail-page{grid-template-columns:minmax(300px,1fr) minmax(300px,1fr)}.product-purchase-panel{position:static;grid-column:2}.product-page-main-media{min-height:360px}}
@media(max-width:720px){.product-page .store-header-main{grid-template-columns:minmax(0,1fr) auto}.product-back-link{display:none}.product-page-main{width:min(100% - 1.5rem,1320px);padding-top:.8rem}.product-detail-page{grid-template-columns:1fr;gap:1.5rem}.product-page-gallery{grid-template-columns:1fr}.product-page-thumbnails{grid-row:2;grid-auto-flow:column;grid-auto-columns:56px;overflow-x:auto}.product-page-thumbnails button{width:56px;height:56px}.product-page-main-media{min-height:300px}.product-purchase-panel{grid-column:auto}.product-page-information h1{font-size:1.75rem}}
.dashboard-metrics{overflow:visible}.dashboard-metrics article{position:relative}.dashboard-metrics article:has(.context-help:hover),.dashboard-metrics article:has(.context-help:focus-within),.dashboard-metrics article:has(.context-help[data-open]){z-index:5}.dashboard-metrics .context-help-tooltip{top:calc(100% + 9px);bottom:auto;color:#fff}.dashboard-metrics .context-help-tooltip:after{top:auto;bottom:100%;border:0;border-top:1px solid #31516f;border-left:1px solid #31516f;transform:translate(-50%,4px) rotate(45deg)}

/* One institutional logo across login, admin and affiliate sidebars. */
.affiliate-sidebar-header{min-height:64px;border-color:#31506f}.affiliate-sidebar-header .affiliate-brand{min-height:63px;padding:.7rem .75rem;background-image:url('/assets/brand/central-afiliados-logo-sidebar.png');background-repeat:no-repeat;background-position:left center;background-size:min(172px,calc(100% - 10px)) auto}.affiliate-brand .brand-copy{opacity:0}
.auth-brand{display:block}.auth-brand-logo{display:block;width:clamp(230px,18vw,280px);height:auto;margin:-9% 0 -9% -5%}
/* Login: the whole form lives inside the orbit; orbit and panel share one center. */
.auth-login-page{--auth-orbit-d:min(44rem,52vw,calc(100dvh - 1.5rem))}
.auth-login-main{min-height:100dvh;padding:1rem clamp(1rem,3vw,2rem);place-items:center;transform:none}
.auth-orbit{top:50%;width:var(--auth-orbit-d)}
.auth-login-panel{width:min(var(--auth-panel-w),100%);text-align:center}
.auth-eyebrow{margin-bottom:.55rem}.auth-login-panel h1{font-size:clamp(1.7rem,2vw,2.1rem);white-space:nowrap}.auth-subtitle{margin:.45rem 0 .9rem;font-size:.86rem}
.auth-demo-note{margin:0 0 .8rem;padding:.5rem .7rem;font-size:.74rem;line-height:1.4}
.auth-form{gap:.6rem}.auth-input-wrap input{height:44px;min-height:44px}.auth-submit{height:46px;min-height:46px}.auth-security{margin-top:.7rem}
/* Login disc: raised neumorphic plate with a soft rim, as in the approved reference. */
.auth-orbit{border:0;background:#f2f1ed;box-shadow:22px 24px 48px rgba(11,33,60,.16),-20px -22px 44px rgba(255,255,255,.96)}
.auth-orbit:before{inset:3.2%;border:0;background:linear-gradient(145deg,#f7f6f2,#ecebe6);box-shadow:inset 7px 8px 16px rgba(255,255,255,.95),inset -8px -9px 18px rgba(11,33,60,.07)}
.auth-orbit:after,.auth-orbit-dot{display:none}
.auth-login-panel{transform:translateY(-.5rem)}.auth-input-wrap input{border:1px solid rgba(255,255,255,.7);background:#efeee9;box-shadow:inset 3px 3px 7px rgba(11,33,60,.09),inset -3px -3px 7px rgba(255,255,255,.9)}.auth-input-wrap input:focus{background:#f4f3ef}
/* Institutional gold is #dcae28; on light surfaces small text uses its same-hue AA shade #846715. */
.auth-login-page .auth-eyebrow{color:#846715}
.auth-login-page .auth-manifesto{position:relative;z-index:1;font-size:clamp(.9rem,1.1vw,1.1rem);line-height:1.75;letter-spacing:.2em}.auth-login-page .auth-manifesto p{white-space:nowrap}.auth-login-page .auth-manifesto p:first-child:after,.auth-login-page .auth-manifesto span{width:36px}
/* Panels are square-edged; only the storefront keeps rounded corners. The login disc stays circular. */
.auth-page :where(input,button,.auth-input-wrap,.auth-submit,.auth-demo-note,.auth-notice,.auth-remember>span,.auth-card,.brand-mark,.button,.notice){border-radius:0}.auth-page .auth-input-wrap input,.auth-page .auth-submit,.auth-page .auth-password-toggle,.auth-page .auth-remember>span,.auth-page.auth-page .auth-card{border-radius:0}
/* Background orbs: visible raised arcs that echo the login disc. */
.auth-login-page .auth-backdrop-orb{border:2px solid rgba(255,255,255,1);background:linear-gradient(145deg,rgba(255,255,255,.55),rgba(233,231,225,.35));box-shadow:14px 16px 34px rgba(11,33,60,.11),-12px -14px 30px rgba(255,255,255,.95),inset 10px 12px 22px rgba(255,255,255,.8),inset -12px -14px 26px rgba(11,33,60,.07)}
/* Larger, more legible login copy; the disc grows with it so everything stays inside. */
.auth-login-page{--auth-panel-w:390px;--auth-orbit-d:min(48rem,58vw,calc(100dvh - 1rem))}.auth-login-page .auth-eyebrow{margin-bottom:.6rem;font-size:.8rem}.auth-login-page .auth-login-panel h1{font-size:clamp(2.1rem,2.6vw,2.6rem)}.auth-login-page .auth-subtitle{margin:.5rem 0 1rem;font-size:1.02rem}.auth-login-page .auth-demo-note{font-size:.88rem;padding:.6rem .8rem}.auth-login-page .auth-input-wrap input{height:50px;min-height:50px;font-size:1rem}.auth-login-page .auth-options,.auth-login-page .auth-forgot{font-size:.9rem}.auth-login-page .auth-submit{height:52px;min-height:52px;font-size:1.02rem}.auth-login-page .auth-security{font-size:.86rem}
@media(max-height:640px) and (min-width:641px){.auth-login-page .auth-input-wrap input{height:44px;min-height:44px}.auth-login-page .auth-submit{height:46px;min-height:46px}.auth-login-page .auth-subtitle{margin-bottom:.75rem}}
@media(max-width:1100px){.auth-login-page{--auth-panel-w:360px;--auth-orbit-d:min(46rem,86vw,calc(100dvh - 1.5rem))}.auth-login-main{padding-top:5rem}}
@media(max-width:640px){.auth-login-page{--auth-panel-w:300px;--auth-orbit-d:min(40rem,calc(100vw + 17rem))}.auth-brand-logo{width:210px}.auth-login-main{align-items:center;padding:5rem .75rem 2rem}.auth-orbit{top:calc(50% + 1.5rem)}.auth-login-panel{transform:translateY(1.5rem)}.auth-login-panel h1{font-size:1.65rem}.auth-options{flex-direction:row;align-items:center}.auth-forgot{align-self:auto}}
@media(max-width:640px){.auth-login-page .auth-login-panel h1{font-size:1.8rem}.auth-login-page .auth-subtitle{font-size:.95rem}.auth-login-page .auth-demo-note{font-size:.8rem}.auth-login-page .auth-input-wrap input{height:46px;min-height:46px;font-size:.95rem}.auth-login-page .auth-options,.auth-login-page .auth-forgot{font-size:.82rem}.auth-login-page .auth-submit{height:48px;min-height:48px}.auth-login-page .auth-security{font-size:.8rem}}

/* Storefront hero media: fixed banner beside the copy, translucent looping video behind it. */
.storefront-page .store-hero{position:relative;overflow:hidden;isolation:isolate}
.storefront-page .store-hero>.store-hero-copy{position:relative;z-index:1}
.storefront-page .store-hero.has-hero-banner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(2rem,4vw,4.5rem);align-items:center}
.store-hero-banner{position:relative;z-index:1;margin:0;justify-self:center;width:100%;max-width:560px;overflow:hidden;border:0;background:transparent}
.store-hero-banner img{display:block;width:100%;height:auto;max-height:min(68vh,560px);object-fit:contain}
.store-hero-video{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;opacity:.26;pointer-events:none}
.storefront-page .store-hero.has-hero-video:after{position:absolute;inset:0;z-index:0;background:linear-gradient(90deg,var(--store-brand,#0b2745) 0%,color-mix(in srgb,var(--store-brand,#0b2745) 55%,transparent) 52%,transparent 100%),linear-gradient(180deg,color-mix(in srgb,var(--store-brand,#0b2745) 45%,transparent) 0%,transparent 35%,color-mix(in srgb,var(--store-brand,#0b2745) 75%,transparent) 100%);content:"";pointer-events:none}
@media(max-width:860px){.storefront-page .store-hero.has-hero-banner{grid-template-columns:1fr}.store-hero-banner{max-width:none}.store-hero-banner-arrow.is-previous{left:.4rem}.store-hero-banner-arrow.is-next{right:.4rem}.store-hero-banner-arrow{opacity:.6}.storefront-page .store-hero.has-hero-video:after{background:color-mix(in srgb,var(--store-brand,#0b2745) 58%,transparent)}}
@media(prefers-reduced-motion:reduce){.store-hero-video,.storefront-preview-hero-video{animation:none;transition:none}}

/* Product gallery videos. */
.product-page-main-media video{display:block;width:100%;height:100%;max-height:640px;background:#000;object-fit:contain}
.product-page-main-media [hidden]{display:none}
.product-page-thumbnails button{position:relative;overflow:hidden}
.product-page-thumbnails video{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}
.product-page-thumbnails button.is-video:after{position:absolute;inset:50% auto auto 50%;width:0;height:0;border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:11px solid #fff;filter:drop-shadow(0 1px 2px rgba(0,0,0,.6));content:"";transform:translate(-35%,-50%)}
.product-image-item video{display:block;width:100%;aspect-ratio:1;background:#0b2745;object-fit:cover}

/* Affiliate storefront editor: the form scrolls on its own (scrollbar beside the sidebar) and the preview stays in view. */
.store-hero-media-grid{display:grid;grid-template-columns:1fr;gap:1rem}
.store-hero-media-slot{display:grid;min-width:0;align-content:start;gap:.4rem}
.store-hero-media-slot strong{color:#0b2745;font-size:.78rem}
.store-hero-media-slot small{color:#526a82;font-size:.68rem;line-height:1.35}
.store-hero-media-preview{display:grid;aspect-ratio:16/10;place-items:center;overflow:hidden;border:1px dashed #9fb1c2;background:#eaf1f7;color:#526a82;font-size:.7rem;font-weight:750;text-align:center}
.store-hero-media-preview img,.store-hero-media-preview video{display:block;width:100%;height:100%;object-fit:cover}
.store-hero-media-actions{display:flex;flex-wrap:wrap;gap:.4rem}
.store-hero-media-actions [hidden]{display:none}
.storefront-preview-canvas>header .storefront-preview-brand{display:inline-flex;min-width:0;align-items:center;gap:.45rem;color:inherit;font-size:inherit;font-weight:inherit;text-transform:none}
.storefront-preview-brand img{display:block;width:auto;max-width:110px;height:22px;object-fit:contain}
.storefront-preview-brand img[hidden]{display:none}
.affiliate-live-preview .storefront-preview-canvas{max-width:none;width:100%}
.affiliate-page .storefront-preview-hero{position:relative;grid-template-columns:minmax(0,1fr);overflow:hidden;isolation:isolate}
.affiliate-page .storefront-preview-hero>div{position:relative;z-index:1}
.affiliate-page .storefront-preview-hero aside{display:none}
.affiliate-page .storefront-preview-hero.has-hero-banner{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:center}
.storefront-preview-hero-banner{position:relative;z-index:1;width:100%;height:190px;margin:0 1rem 0 0;justify-self:stretch;overflow:hidden;border-radius:10px}
.storefront-preview-hero-banner img{display:block;width:auto;height:auto;max-width:100%;max-height:100%;margin:auto;border-radius:8px}
.storefront-preview-hero-banner[hidden],.storefront-preview-hero-video[hidden]{display:none}
.storefront-preview-hero-video{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;opacity:.26;pointer-events:none}
.affiliate-page .storefront-preview-hero.has-hero-video:after{position:absolute;inset:0;z-index:0;background:linear-gradient(90deg,var(--store-brand,#0b2745) 0%,color-mix(in srgb,var(--store-brand,#0b2745) 62%,transparent) 48%,color-mix(in srgb,var(--store-brand,#0b2745) 18%,transparent) 100%);content:"";pointer-events:none}
.affiliate-page .sidebar-logout{display:contents}
.affiliate-page .sidebar-logout .sidebar-exit{width:100%;margin-top:0;border:0;border-top:1px solid #31516f;background:transparent;font:inherit;text-align:left;cursor:pointer}
.affiliate-page .sidebar-logout .sidebar-exit:hover{background:#163d67}
.affiliate-page.affiliate-sidebar-closed .affiliate-shell>.sidebar .sidebar-logout .nav-label{display:none}
@media(min-width:981px){
.affiliate-storefront-workspace{height:calc(100dvh - 10rem);min-height:520px;grid-template-columns:minmax(300px,420px) minmax(0,1fr)}
.affiliate-storefront-form{min-height:0;overflow-y:auto;overscroll-behavior:contain;direction:rtl;scrollbar-width:thin;scrollbar-color:#9fb1c2 transparent;border-right:1px solid #c8d5e1;padding:1rem 1.25rem 1rem .9rem}
.affiliate-storefront-form>*{direction:ltr}
.affiliate-live-preview{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
}

/* One scroll per surface: in the store editor the page never scrolls, only the form and the preview. */
.affiliate-page .topbar:not(:has(.menu-button:not([hidden]))):not(:has(.notify-bell)){display:none}
@media(min-width:981px){
.affiliate-page .topbar:not(:has(.notify-bell)){display:none}
.affiliate-page[data-affiliate-section="minha-loja"]{overflow:hidden}
/* Pinning the shell keeps focus scrolling inside the form: the panel itself can never scroll out of view. */
.affiliate-page[data-affiliate-section="minha-loja"] .affiliate-shell{position:fixed;inset:0;min-height:0;height:100dvh;overflow:clip}
.affiliate-page[data-affiliate-section="minha-loja"] .workspace{min-height:0;height:100dvh;overflow:clip}
.affiliate-page[data-affiliate-section="minha-loja"] #resumo,.affiliate-page[data-affiliate-section="minha-loja"] #minha-loja{overflow:clip}
.affiliate-page[data-affiliate-section="minha-loja"] #resumo{padding-top:1.4rem}
.affiliate-page[data-affiliate-section="minha-loja"] .affiliate-storefront-workspace{height:calc(100dvh - 12.5rem);min-height:320px;margin-bottom:0}
}

/* Up to five banners: they cross-fade in the storefront and in the editor preview. */
.store-hero-banner,.storefront-preview-hero-banner{position:relative;display:block}
.store-hero-banner-dots{position:absolute;right:.75rem;bottom:.75rem;z-index:2;display:flex;gap:.4rem}
.store-hero-banner-dots button{width:9px;height:9px;border:1px solid color-mix(in srgb,var(--store-on-brand,#fff) 70%,transparent);background:transparent;padding:0;cursor:pointer}
.store-hero-banner-dots button[aria-selected="true"]{background:var(--store-accent,#e4b936);border-color:var(--store-accent,#e4b936)}
.store-hero-banner-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.5rem}
.store-hero-banner-item{display:grid;gap:.25rem;margin:0}
.store-hero-banner-item img{display:block;width:100%;aspect-ratio:16/10;border:1px solid #c8d5e1;object-fit:cover}
.store-hero-banner-item figcaption{color:#526a82;font-size:.66rem;font-weight:750}
.store-hero-media-empty{margin:0;border:1px dashed #9fb1c2;background:#eaf1f7;padding:.75rem;color:#526a82;font-size:.7rem;font-weight:750;text-align:center}
.store-hero-banner-count{color:#526a82;font-size:.68rem;font-weight:800}
@media(prefers-reduced-motion:reduce){.store-hero-banner img,.storefront-preview-hero-banner img{transition:none}}

/* Media pickers keep a fixed frame: a loading or broken file never reflows the editor. */
.store-hero-media-preview,.store-logo-preview,.store-hero-banner-item img,.product-image-item :where(img,video){max-width:100%}
.store-hero-media-preview{min-width:0;min-height:0;contain:strict}
.affiliate-storefront-form fieldset,.affiliate-storefront-form label{min-width:0}
.affiliate-storefront-form{overflow-x:hidden}
.store-hero-media-preview :where(img,video){max-width:100%;max-height:100%;background:#0b2745}
.store-hero-banner-item{min-width:0}

/* Banner carousel: rounded frame, depth transition, arrows, dots and swipe. */
.store-hero-banner,.storefront-preview-hero-banner{overflow:visible;border-radius:clamp(12px,1.4vw,18px);perspective:1400px}
.store-hero-banner-track,.storefront-preview-hero-banner .store-hero-banner-track{overflow:hidden;border-radius:inherit}
.store-hero-banner{height:min(68vh,560px)}
.store-hero-banner-track{position:absolute;inset:0;transform-style:preserve-3d}
.store-hero-banner{--hero-ease:cubic-bezier(.23,1,.32,1);--hero-enter:560ms;--hero-leave:420ms}
.store-hero-banner-track>img{position:absolute;inset:0;width:auto;height:auto;max-width:100%;max-height:100%;margin:auto;border-radius:clamp(12px,1.4vw,18px);opacity:0;transition:opacity var(--hero-leave) var(--hero-ease),transform var(--hero-leave) var(--hero-ease),filter var(--hero-leave) var(--hero-ease);transform:translate3d(14%,0,-90px) rotateY(-18deg) scale(.94);filter:blur(7px) saturate(.75);pointer-events:none;will-change:transform,opacity,filter}
.store-hero-banner-track>img.is-active{opacity:1;transition-duration:var(--hero-enter);transform:translate3d(0,0,0) rotateY(0) scale(1);filter:blur(0) saturate(1) drop-shadow(0 16px 30px rgba(11,33,60,.32));animation:heroBannerDrift 7s linear .35s both;pointer-events:auto}
.store-hero-banner-track>img.is-leaving{opacity:0;transform:translate3d(-14%,0,-90px) rotateY(18deg) scale(.94);filter:blur(7px) saturate(.75)}
[data-hero-banner-direction="backward"] .store-hero-banner-track>img{transform:translate3d(-14%,0,-90px) rotateY(18deg) scale(.94)}
[data-hero-banner-direction="backward"] .store-hero-banner-track>img.is-leaving{transform:translate3d(14%,0,-90px) rotateY(-18deg) scale(.94)}
[data-hero-banner-direction="backward"] .store-hero-banner-track>img.is-active{transform:translate3d(0,0,0) rotateY(0) scale(1)}
/* Slow drift keeps the active banner alive between turns; `scale` is independent of `transform`. */
@keyframes heroBannerDrift{from{scale:1}to{scale:1.035}}
/* The active dot fills over the interval, so the turn never feels random. */
.store-hero-banner-dots button{position:relative;overflow:hidden}
.store-hero-banner-dots button[aria-selected="true"]:after{position:absolute;inset:0;background:var(--store-accent,#e4b936);content:"";animation:heroBannerDotFill 6s linear both;transform-origin:left center}
@keyframes heroBannerDotFill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.store-hero-banner-arrow{position:absolute;top:50%;z-index:2;display:grid;width:38px;height:38px;place-items:center;border:1px solid color-mix(in srgb,var(--store-on-brand,#fff) 28%,transparent);border-radius:50%;background:color-mix(in srgb,var(--store-on-brand,#fff) 10%,transparent);padding:0;color:var(--store-on-brand,#fff);opacity:.45;cursor:pointer;transition:opacity .2s ease,background .2s ease;transform:translateY(-50%)}
.store-hero-banner-arrow svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.store-hero-banner-arrow.is-previous{left:clamp(-3.25rem,-2.6vw,-2.5rem)}
.store-hero-banner-arrow.is-next{right:clamp(-3.25rem,-2.6vw,-2.5rem)}
.store-hero-banner-arrow:hover,.store-hero-banner-arrow:focus-visible{background:color-mix(in srgb,var(--store-on-brand,#fff) 20%,transparent);opacity:.95}
@media(prefers-reduced-motion:reduce){.store-hero-banner-track{transition:none}}
@media(prefers-reduced-motion:reduce){
.store-hero-banner-track>img,[data-hero-banner-direction="backward"] .store-hero-banner-track>img,.store-hero-banner-track>img.is-leaving{transform:none;filter:blur(5px);transition:opacity 320ms ease,filter 320ms ease}
.store-hero-banner-track>img.is-active{transform:none;filter:blur(0);animation:none}
.store-hero-banner-dots button[aria-selected="true"]:after{animation:none}
}

/* Banner band: a landscape banner takes the full width of the hero; the copy shows only when no banner is set. */
.storefront-page .store-hero.has-hero-wide{display:block;padding:0;min-height:0}
.storefront-page .store-hero.has-hero-wide .store-hero-banner{max-width:none;width:100%;height:auto;aspect-ratio:var(--hero-banner-ratio,2.4);max-height:min(72vh,620px);border-radius:0}
/* Without JavaScript the band still uses the shape declared by the first banner. */
.storefront-page .store-hero.has-hero-wide .store-hero-banner[data-hero-banner-ratio]{aspect-ratio:var(--hero-banner-ratio,2.4)}
.storefront-page .store-hero.has-hero-wide .store-hero-banner-track>:where(img,.store-hero-banner-link){border-radius:0}
.storefront-page .store-hero.has-hero-wide .store-hero-banner-arrow.is-previous{left:clamp(.75rem,2vw,1.5rem)}
.storefront-page .store-hero.has-hero-wide .store-hero-banner-arrow.is-next{right:clamp(.75rem,2vw,1.5rem)}
.storefront-page .store-hero.has-hero-banner:not(.has-hero-wide){grid-template-columns:minmax(0,1fr);justify-items:center}
.store-hero-banner-link{position:absolute;inset:0;display:block;width:auto;height:auto;max-width:100%;max-height:100%;margin:auto;border-radius:clamp(12px,1.4vw,18px);opacity:0;transition:opacity var(--hero-leave,420ms) var(--hero-ease,ease),transform var(--hero-leave,420ms) var(--hero-ease,ease),filter var(--hero-leave,420ms) var(--hero-ease,ease);transform:translate3d(14%,0,-90px) rotateY(-18deg) scale(.94);filter:blur(7px) saturate(.75);pointer-events:none;will-change:transform,opacity,filter}
.store-hero-banner-link>img{display:block;width:100%;height:100%;border-radius:inherit;object-fit:contain}
.store-hero-banner-link.is-active{opacity:1;transition-duration:var(--hero-enter,560ms);transform:translate3d(0,0,0) rotateY(0) scale(1);filter:blur(0) saturate(1) drop-shadow(0 16px 30px rgba(11,33,60,.32));animation:heroBannerDrift 7s linear .35s both;pointer-events:auto}
.store-hero-banner-link.is-leaving{opacity:0;transform:translate3d(-14%,0,-90px) rotateY(18deg) scale(.94);filter:blur(7px) saturate(.75)}
[data-hero-banner-direction="backward"] .store-hero-banner-link{transform:translate3d(-14%,0,-90px) rotateY(18deg) scale(.94)}
[data-hero-banner-direction="backward"] .store-hero-banner-link.is-leaving{transform:translate3d(14%,0,-90px) rotateY(-18deg) scale(.94)}
[data-hero-banner-direction="backward"] .store-hero-banner-link.is-active{transform:translate3d(0,0,0) rotateY(0) scale(1)}
@media(prefers-reduced-motion:reduce){.store-hero-banner-link,.store-hero-banner-link.is-leaving,[data-hero-banner-direction="backward"] .store-hero-banner-link{transform:none;filter:blur(5px);transition:opacity 320ms ease,filter 320ms ease}.store-hero-banner-link.is-active{transform:none;filter:blur(0);animation:none}}

/* Banner destinations and the store product picker. */
.store-hero-banner-destination{display:grid;gap:.2rem;font-size:.66rem;font-weight:750;color:#526a82}
.store-hero-banner-destination select{min-height:30px;padding:.2rem .35rem;font-size:.72rem}
.storefront-products-count{border-left:3px solid #dcae28;background:#f4f7fa;padding:.4rem .55rem;color:#294760;font-size:.72rem;font-weight:800;font-variant-numeric:tabular-nums}

/* Store preview mirrors the storefront: header with search and cart, nav, hero, sections, footer. */
.storefront-preview-canvas>.storefront-preview-header{display:grid;min-height:40px;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) auto;align-items:center;gap:.5rem;border-bottom:1px solid color-mix(in srgb,var(--store-on-brand,#fff) 18%,transparent);padding:.45rem .7rem;background:var(--store-brand,#0b2745);color:var(--store-on-brand,#fff)}
.storefront-preview-header .storefront-preview-brand{display:inline-flex;min-width:0;align-items:center;gap:.4rem}
.storefront-preview-header .storefront-preview-brand span{display:grid;min-width:0}
.storefront-preview-header strong{font-size:.72rem;line-height:1.1;white-space:nowrap;overflow:hidden;text-transform:none;text-overflow:ellipsis}
.storefront-preview-header small{color:var(--store-accent,#e4b936);font-size:.56rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.storefront-preview-search{display:block;overflow:hidden;border:1px solid color-mix(in srgb,var(--store-on-brand,#fff) 30%,transparent);border-radius:var(--store-radius-sm,4px);background:color-mix(in srgb,var(--store-on-brand,#fff) 92%,transparent);padding:.25rem .45rem;color:#6b7785;font-size:.58rem;white-space:nowrap}
.storefront-preview-cart{color:var(--store-accent,#e4b936);font-size:.58rem;font-weight:800;white-space:nowrap}
.storefront-preview-nav{display:flex;flex-wrap:wrap;gap:.6rem;border-bottom:1px solid color-mix(in srgb,var(--store-on-brand,#fff) 14%,transparent);padding:.35rem .7rem;background:var(--store-brand,#0b2745);color:var(--store-on-brand,#fff);font-size:.56rem;font-weight:800}
.storefront-preview-nav [hidden]{display:none}
.storefront-preview-hero-copy[hidden]{display:none}
.storefront-preview-hero.has-hero-wide{display:block;padding:0}
.storefront-preview-hero.has-hero-wide .storefront-preview-hero-banner{width:100%;height:auto;aspect-ratio:var(--hero-banner-ratio,2.4);margin:0;border-radius:0}
.storefront-preview-hero.has-hero-wide .storefront-preview-hero-banner img{border-radius:0}
.storefront-preview-footer{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;border-top:1px solid color-mix(in srgb,var(--store-on-brand,#fff) 18%,transparent);padding:.45rem .7rem;background:var(--store-brand,#0b2745);color:var(--store-on-brand,#fff);font-size:.58rem}
.storefront-preview-footer strong{font-size:.64rem}

/* Seleção sem barra lateral: o realce preenche a largura inteira da sidebar e da linha. */
.admin-sidebar nav,.affiliate-shell .sidebar nav,.admin-page.sidebar-collapsed .admin-sidebar nav{padding-inline:0}
.admin-sidebar nav a,.affiliate-shell .sidebar nav a{margin-inline:0;padding-inline:1.15rem}
.admin-sidebar nav p,.affiliate-shell .sidebar nav p{margin-inline:1.15rem}
.admin-page.sidebar-collapsed .admin-sidebar nav a{justify-content:center;padding-inline:.5rem}
.admin-sidebar nav a.active,.affiliate-page .sidebar nav a.active,.affiliate-table-wrap tr.is-selected td:first-child{box-shadow:none}
@media(max-width:980px){.admin-page.sidebar-collapsed .admin-sidebar nav a{justify-content:flex-start;padding-inline:1.15rem}}

/* A abertura da prévia repete o selo da vitrine: uma etiqueta preenchida, não texto solto. */
.storefront-preview-hero .storefront-preview-hero-eyebrow{display:inline-block;width:max-content;background:var(--store-accent,#efc23f);padding:.18rem .4rem;color:var(--store-on-accent,#0b2745);border-radius:var(--store-radius-sm,5px)}
.affiliate-page .storefront-preview-hero b{border-radius:var(--store-radius-sm,5px)}
.storefront-preview-hero .storefront-preview-hero-eyebrow span{color:inherit}
/* Medidas do banner: regra declarada no formulário e alvo desenhado na prévia. */
.store-hero-format-picker{display:grid;gap:.25rem;color:#0b2745;font-size:.7rem;font-weight:800}
.store-hero-format-picker select{min-height:34px;border:1px solid #bdcbd8;background:#fff;padding:.25rem .4rem;font-size:.75rem}
.store-hero-format-spec{margin:0;border-left:3px solid #dcae28;background:#f4f7fa;padding:.45rem .55rem;color:#294760;font-size:.68rem;font-weight:750;line-height:1.4}
.store-hero-format-rule{margin:0;color:#526a82;font-size:.66rem;line-height:1.4}
.store-hero-format-warning{margin:0;border:1px solid #d9b38c;background:#fdf4e7;padding:.45rem .55rem;color:#7a4a12;font-size:.68rem;font-weight:750;line-height:1.4}
.store-hero-format-warning[hidden]{display:none}
.store-hero-banner-warning{color:#9f2d24;font-size:.64rem;font-weight:750;line-height:1.35}
.store-hero-banner-warning[hidden]{display:none}
.storefront-preview-hero-spec{position:absolute;z-index:3;top:.5rem;right:.5rem;border:1px solid rgba(255,255,255,.35);background:rgba(11,39,69,.82);padding:.2rem .4rem;color:#fff;font-size:.58rem;font-weight:800;font-variant-numeric:tabular-nums}
.storefront-preview-hero-spec.is-warning{border-color:#f0b4ae;background:rgba(159,45,36,.9)}
.storefront-preview-hero-spec[hidden],.storefront-preview-hero-guide[hidden]{display:none}
.storefront-preview-hero-guide{position:absolute;z-index:2;display:grid;overflow:hidden;color:#fff;pointer-events:none}
.storefront-preview-hero-guide img{display:block;width:100%;height:100%;object-fit:cover}
.storefront-preview-hero-guide small{position:absolute;right:0;bottom:0;left:0;background:rgba(11,39,69,.78);padding:.15rem .3rem;font-size:.52rem;font-weight:800;text-align:center;font-variant-numeric:tabular-nums}
.storefront-preview-hero-guide.is-wide{top:50%;right:0;left:0;width:100%;aspect-ratio:var(--hero-guide-ratio,3);transform:translateY(-50%)}
.affiliate-page .storefront-preview-hero.has-format-guide{min-height:0;aspect-ratio:var(--hero-guide-ratio,3)}
.storefront-preview-hero.has-format-guide .storefront-preview-hero-guide.is-wide{inset:0;width:auto;aspect-ratio:auto;transform:none}
.storefront-preview-hero-guide:not(.is-wide){top:9%;right:4%;bottom:9%;aspect-ratio:var(--hero-guide-ratio,.8)}

/* Chave liga/desliga: mesma geometria do componente .visual-switch do projeto. */
.storefront-navigation-editor .switch-label,.storefront-section-editor .switch-label{gap:.55rem}
.switch-label{cursor:pointer}
.switch-label input{position:relative;width:32px;height:18px;min-height:18px;flex:0 0 32px;border:0;border-radius:99px;background:#ccd9e6;cursor:pointer;appearance:none;-webkit-appearance:none;transition:background-color .18s ease}
.switch-label input::after{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(11,39,69,.35);content:"";transition:transform .18s ease}
.switch-label input:checked{background:#dcae28}
.switch-label input:checked::after{transform:translateX(14px)}
.switch-label input:focus-visible{outline:2px solid #dcae28;outline-offset:2px}
.switch-label:hover input{background:#b9cade}
.switch-label:hover input:checked{background:#c99f24}
@media(prefers-reduced-motion:reduce){.switch-label input,.switch-label input::after{transition:none}}
/* Identidade: bloco opcional, só o nome público é exigido. */
.fieldset-note{margin:0 0 .2rem;color:#586f86;font-size:.72rem;line-height:1.45}
/* Painel expandido de produtos da vitrine. */
.affiliate-page dialog{border-radius:0}
.affiliate-page .dialog-head{border-color:#c8d5e1}
.inline-list-search input[readonly]{cursor:pointer;background:#fff}
.storefront-products-dialog-body{display:grid;min-height:0;grid-template-rows:auto minmax(0,1fr) auto}
.storefront-products-dialog-toolbar{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:.75rem;border-bottom:1px solid #d8e1ea;background:#fff;padding:.85rem 1.25rem}
.storefront-products-dialog-toolbar label{display:grid;gap:.3rem;min-width:min(320px,100%);color:#0b2745;font-size:.72rem;font-weight:800}
.storefront-products-dialog-toolbar .row-actions{display:flex;gap:.4rem}
.storefront-products-dialog-grid{display:grid;align-content:start;gap:.35rem;min-height:0;overflow-y:auto;padding:1rem 1.25rem}
.storefront-product-row{border:1px solid #c8d5e1;background:#fff}
.storefront-product-row.is-open{border-color:#0b2745}
.storefront-product-row.is-open .storefront-product-toggle{background:#eaf1f7}
.storefront-product-row-head{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center}
.storefront-product-pick{display:grid;width:42px;height:42px;place-items:center;margin:0;cursor:pointer}
.storefront-product-pick input{width:18px;height:18px;min-height:18px;margin:0;accent-color:#0b4b7d}
.storefront-product-toggle{display:grid;grid-template-columns:minmax(0,1fr) auto auto 20px;align-items:center;gap:.75rem;min-height:42px;border:0;border-left:1px solid #e2e9ef;border-radius:0;background:transparent;padding:.3rem .7rem;color:#0b2745;text-align:left;cursor:pointer}
.storefront-product-toggle:hover{background:#f4f7fa}
.storefront-product-toggle:focus-visible{outline:2px solid #dcae28;outline-offset:-2px}
.storefront-product-toggle strong{overflow:hidden;font-size:.82rem;font-weight:800;text-overflow:ellipsis;white-space:nowrap}
.storefront-product-kind{border:1px solid currentColor;padding:.05rem .3rem;font-size:.6rem;font-weight:850;letter-spacing:.04em;text-transform:uppercase}
.storefront-product-kind.is-digital{color:#795900}
.storefront-product-kind.is-physical{color:#0b4b7d}
.storefront-product-value{color:#294760;font-size:.78rem;font-weight:800;font-variant-numeric:tabular-nums}
.storefront-product-toggle i{display:block;width:8px;height:8px;justify-self:center;border-right:2px solid #526a82;border-bottom:2px solid #526a82;transform:translateY(-2px) rotate(45deg);transition:transform .18s ease}
.storefront-product-row.is-open .storefront-product-toggle i{transform:translateY(1px) rotate(225deg)}
/* Estrela de destaque da loja: entre a marcação do produto e o nome, no mesmo trilho de 42px. */
.storefront-product-row-head.has-feature{grid-template-columns:auto auto minmax(0,1fr)}
.storefront-product-feature{display:grid;width:42px;height:42px;place-items:center;border:0;border-left:1px solid #e2e9ef;border-radius:0;background:transparent;padding:0;color:#8a9bab;cursor:pointer}
.storefront-product-feature svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}
.storefront-product-feature:hover:not(:disabled){background:#f4f7fa;color:#b88a12}
.storefront-product-feature:focus-visible{outline:2px solid #dcae28;outline-offset:-2px}
.storefront-product-feature[aria-pressed="true"]{color:#b88a12}
.storefront-product-feature[aria-pressed="true"] svg{fill:#dcae28;stroke:#b88a12}
.storefront-product-feature:disabled{cursor:not-allowed;opacity:.35}
.storefront-product-row.is-featured{box-shadow:inset 3px 0 0 #dcae28}
.storefront-product-detail{display:grid;gap:.7rem;border-top:1px solid #e2e9ef;background:#f8fafc;padding:.85rem}
.storefront-product-detail[hidden]{display:none}
/* O diálogo herda overflow:auto do navegador, o que recortaria o subpainel. */
.storefront-products-dialog{overflow:visible}
.storefront-products-media{position:absolute;z-index:1;top:0;bottom:0;right:100%;display:grid;width:min(420px,38vw);grid-template-rows:auto minmax(0,1fr) auto;gap:.5rem;border:1px solid #0b2745;border-right:0;background:#f8fafc;padding:.9rem}
.storefront-products-media{opacity:1;translate:0 0;transition:opacity .22s ease,translate .24s cubic-bezier(.2,.8,.2,1),display .24s allow-discrete}
.storefront-products-media[hidden]{display:none;opacity:0;translate:2rem 0}
@starting-style{.storefront-products-media:not([hidden]){opacity:0;translate:2rem 0}}
.storefront-products-media-stage :where(img,video){animation:storefront-media-in .22s ease}
@keyframes storefront-media-in{from{opacity:0;scale:.985}}
@media(prefers-reduced-motion:reduce){.storefront-products-media,.storefront-products-media-stage :where(img,video){transition:none;animation:none}.storefront-products-media[hidden]{translate:0 0}}
.storefront-products-media header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}
.storefront-products-media header>div{display:grid;min-width:0;gap:.15rem;border-left:3px solid #dcae28;padding-left:.6rem}
.storefront-products-media header button{border:0;background:transparent;font-size:1.5rem}
.storefront-products-media header strong{color:#0b2745;font-size:.95rem}
.storefront-products-media-stage{display:grid;min-height:0;place-items:center;overflow:hidden;border:1px solid #c8d5e1;background:#0b2745;color:#c6d7e8;font-size:.72rem;font-weight:750}
.storefront-products-media-stage :where(img,video){display:block;width:100%;height:100%;object-fit:contain}
.storefront-products-media-thumbs{display:flex;flex-wrap:wrap;gap:.35rem}
.storefront-product-thumb{width:74px;height:56px;overflow:hidden;border:1px solid #c8d5e1;border-radius:0;background:#e8eef6;padding:0;cursor:pointer}
.storefront-product-thumb img{display:block;width:100%;height:100%;object-fit:cover;opacity:.6}
.storefront-product-thumb:hover img{opacity:1}
.storefront-product-thumb.is-active{border-color:#0b2745;box-shadow:inset 0 0 0 2px #dcae28}
.storefront-product-thumb.is-active img{opacity:1}
@media(max-width:1180px){.storefront-products-media{right:auto;left:0;width:min(380px,92%);border-right:1px solid #0b2745;box-shadow:0 12px 32px rgba(11,39,69,.28)}}
.storefront-product-description{margin:0;max-width:78ch;color:#405d76;font-size:.76rem;line-height:1.5;white-space:pre-line}
.storefront-product-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.5rem .9rem;margin:0}
.storefront-product-facts>div{min-width:0}
.storefront-product-facts dt{color:#63788e;font-size:.62rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase}
.storefront-product-facts dd{margin:.1rem 0 0;color:#0b2745;font-size:.78rem;font-weight:750;font-variant-numeric:tabular-nums}
.storefront-products-dialog-empty{grid-column:1/-1;margin:0;border:1px dashed #9fb1c2;background:#f4f7fa;padding:1rem;color:#586f86;font-size:.75rem;text-align:center}
.storefront-products-dialog-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;border-top:1px solid #c8d5e1;background:#fff;padding:.85rem 1.25rem}
.storefront-products-dialog-footer output{color:#294760;font-size:.78rem;font-weight:800;font-variant-numeric:tabular-nums}

/* Títulos do painel: mesma caixa, mesmo tamanho e mesmo ponto de partida em toda seção. */
.affiliate-page[data-affiliate-section] #resumo{padding-top:1.4rem}
.affiliate-page[data-affiliate-section] #resumo>.page-heading{flex-wrap:wrap;gap:.5rem;margin:0;padding:0}
.affiliate-page[data-affiliate-section] #resumo>.page-heading>div{flex:1 1 100%;min-width:0}
.affiliate-page .page-heading h1,.affiliate-page[data-affiliate-section]:not([data-affiliate-section="resumo"]) #resumo :where(#pedidos,#comissoes,#repasses,#chamados,#minha-loja)>h2{display:block;width:100%;max-width:none;margin:0 0 1rem;border-top:1px solid #c8d5e1;border-bottom:1px solid #c8d5e1;padding:.55rem 0 .6rem;font-size:1.5rem;font-weight:800;line-height:1;letter-spacing:-.035em}
.affiliate-page[data-affiliate-section]:not([data-affiliate-section="resumo"]) #resumo>:where(.split,.lower-section){margin-top:0}

/* Minha loja ocupa a altura da janela sem número mágico: o workspace fica com a sobra. */
.affiliate-page[data-affiliate-section="minha-loja"] #resumo{display:flex;height:100dvh;flex-direction:column;min-height:0;padding-bottom:1.4rem}
.affiliate-page[data-affiliate-section="minha-loja"] #resumo>#minha-loja{display:flex;flex:1;flex-direction:column;min-height:0}
.affiliate-page[data-affiliate-section="minha-loja"] #resumo>#minha-loja>h2{margin-bottom:0}
.affiliate-page[data-affiliate-section="minha-loja"] .affiliate-storefront-workspace{height:auto;flex:1;min-height:0;margin:0;border-top:0}

/* A régua A–Z ancora no contêiner: o respiro sai da tabela e vai para ele, senão a régua nasce acima da tabela. */

/* Ficha do afiliado: composição do dashboard de referência, com os tokens desta central.
   Chapada — borda, sem sombra. Cabeçalho, faixa de situação e corpo, nessa ordem. */
.affiliate-chip[aria-expanded="true"]:before{border-color:#9b7300;transform:rotate(45deg)}
tr:has(>td [aria-expanded="true"].affiliate-chip){background:rgba(220,174,40,.08)}

.affiliate-card-row>td{border-top:1px solid #c8d5e1}
.affiliate-card{overflow:hidden;border:1px solid #c8d5e1;background:#fff}
.affiliate-card-head{display:flex;justify-content:space-between;border-bottom:1px solid #c8d5e1;background:#f8fafc}
.affiliate-card-identity{min-width:0}
.affiliate-card-kicker{margin:0;color:#63788e;font-size:11px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.affiliate-card-head h2{margin:.25rem 0 0;overflow-wrap:break-word;color:#0b2745;font-size:1.125rem;font-weight:800;line-height:1.25;letter-spacing:-.01em}
.affiliate-card-head h2:after{display:none}
.affiliate-card-id{margin:.25rem 0 0;color:#526a82;font-size:11px}
.affiliate-card-id[hidden]{display:none}
.affiliate-card-close{display:inline-flex;height:32px;flex-shrink:0;align-items:center;gap:.375rem;border:1px solid #c8d5e1;border-radius:0;background:#f1f6fa;padding:0 .625rem 0 .5rem;color:#526a82;transition:color .15s ease,background-color .15s ease}
.affiliate-card-close>span{font-size:1.15rem;line-height:1}
.affiliate-card-close kbd{border:0;background:transparent;padding:0;color:#63788e;font-family:Outfit,system-ui,sans-serif;font-size:9px;font-weight:900;font-style:normal;letter-spacing:.08em;line-height:1;text-transform:uppercase}
.affiliate-card-close:hover{background:#fff;color:#0b2745}
.affiliate-card-close:focus-visible{outline:2px solid #dcae28;outline-offset:1px}

.affiliate-card-badge{display:inline-flex;align-items:center;border-radius:0;background:rgba(220,174,40,.15);padding:.25rem .5rem;color:#9b7300;font-size:11px;font-weight:900;letter-spacing:.05em;text-transform:uppercase}
.affiliate-card-badge.is-active{background:rgba(6,118,71,.12);color:#067647}
.affiliate-card-facts dt{margin-bottom:.25rem}
.affiliate-card-facts dd{overflow-wrap:break-word;line-height:1.375}
.affiliate-card-facts dd.is-highlight{color:#9b7300;font-weight:700}
.affiliate-card-facts dd.is-empty{color:#9fb1c2;font-weight:400}
.affiliate-card-block-title{margin:0 0 .5rem;color:#63788e;font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
@media(min-width:1024px){.affiliate-card-facts{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* A régua A–Z ancora no contêiner: o respiro sai da tabela e vai para ele, senão a régua nasce acima da tabela. */
.filterable-directory{margin-top:.7rem}
.affiliate-page .filterable-directory{margin-top:1rem}
.filterable-directory .table-wrap{margin-top:0}

/* Ficha do afiliado: shell único, aberto dentro da própria listagem. */
.affiliate-chip{display:inline-flex;align-items:center;gap:.3rem;border:0;border-radius:0;background:transparent;padding:0;color:inherit;font:inherit;text-align:left;cursor:pointer}
.affiliate-chip:before{width:6px;height:6px;border-right:2px solid #7e96ae;border-bottom:2px solid #7e96ae;content:"";transform:rotate(-45deg);transition:transform .18s ease}
.affiliate-chip[aria-expanded="true"]:before{transform:rotate(45deg)}
.affiliate-chip:hover{color:#0b4b7d}
.affiliate-chip:hover:before{border-color:#0b4b7d}
.affiliate-chip:focus-visible{outline:2px solid #dcae28;outline-offset:2px}
.affiliate-card-row>td{border-bottom:1px solid #c8d5e1;background:#f4f7fa;padding:0}
.affiliate-card{display:grid}
.affiliate-card[hidden]{display:none}
.affiliate-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.affiliate-card>header strong{display:block;color:#0b2745;font-size:1.05rem}
.affiliate-card>header button{border:0;background:transparent;font-size:1.5rem}
.affiliate-card-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.5rem .9rem;margin:0}
.affiliate-card-facts>div{min-width:0}
.affiliate-card-facts dt{color:#63788e;font-size:.62rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase}
.affiliate-card-facts dd{margin:.1rem 0 0;color:#0b2745;font-size:.82rem;font-weight:750;overflow-wrap:anywhere}
.affiliate-card-links{display:flex;flex-wrap:wrap;gap:.75rem;border-top:1px solid #c8d5e1;padding-top:.7rem}
/* Downloads: sempre na mesma célula, à direita da busca, em toda listagem. */
.list-export{display:flex;align-items:center;gap:.3rem}
.list-export .list-export-label{margin-right:.15rem;color:#63788e;font-size:.62rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.list-export .list-export-label{display:flex;flex-direction:column;gap:.1rem;line-height:1.15}
.list-export .list-export-period{color:#0b2745;font-size:.62rem;font-weight:600;letter-spacing:0;text-transform:none;white-space:nowrap}
.list-export .button{min-height:30px;padding:.3rem .6rem;font-size:.72rem}
.list-export .button:disabled{cursor:not-allowed;opacity:.5}
.catalog-toolbar .list-export{justify-content:flex-end;border-left:1px solid #c8d5e1;padding:.65rem 1rem}
.inline-list-search+.list-export{margin:.35rem 0 0}
.list-sort{display:grid;align-content:center;gap:.2rem;border-left:1px solid #c8d5e1;padding:.55rem 1rem}
.list-sort span{color:#63788e;font-size:.62rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.list-sort select{min-height:30px;border:1px solid #bdcbd8;background:#fff;padding:.2rem .4rem;font-size:.75rem}

/* Ranking de desempenho da visão geral. */

/* Comissões: fechamento em faixa horizontal e saldos em largura cheia. */
.commission-workspace{display:grid;grid-template-columns:minmax(0,1fr);gap:1.25rem;margin-top:1.25rem}
.commission-workspace>section{padding:0}
.commission-close-panel{border:1px solid #bdcbd8;background:#fff;padding:1rem 1.15rem}
.commission-close-panel h2{margin:0 0 .75rem;color:#0b2745;font-size:1rem;font-weight:800}
.commission-close-panel h2:after{display:none}
.commission-close-form{display:grid;grid-template-columns:minmax(200px,1.3fr) minmax(140px,.7fr) minmax(140px,.7fr) auto;align-items:end;gap:.75rem}
.commission-close-form label{display:grid;gap:.25rem;color:#294760;font-size:.72rem;font-weight:800}
.commission-close-form .period-fields{display:contents}
.commission-close-form .form-result{grid-column:1/-1;margin:0}
.commission-close-form .form-result:empty{display:none}
.commission-close-form .button{min-height:38px}
.commission-balances .list-head{display:flex;flex-wrap:wrap;align-items:end;gap:1rem}
.commission-balances .list-head h2{flex:0 0 auto;margin:0}
.commission-balances .list-head .inline-list-search{flex:1 1 220px;min-width:0;margin:0}
.commission-balances .list-head .list-export{flex:0 0 auto}
.commission-balances .inline-list-search+.list-export{margin-top:0}
@media(max-width:860px){.commission-close-form{grid-template-columns:1fr}.commission-close-form .period-fields{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}}

/* Régua A–Z à esquerda, no fluxo: é ela que dá a altura do painel, e a tabela
   completa o que faltar com linhas vazias em vez de deixar um vão. */
.filterable-directory{grid-template-columns:46px minmax(0,1fr);align-items:stretch}
.filterable-directory.compact-directory{grid-template-columns:40px minmax(0,1fr)}
.filterable-directory>:first-child{grid-column:2;grid-row:1}
.filterable-directory>.list-alphabet{position:static;grid-column:1;grid-row:1;align-self:stretch;align-content:start;max-height:none;border-right:0;border-left:1px solid #bdcbd8}
.filterable-directory tr.is-filler td{border-bottom:1px solid #e2e9ef;background:transparent}
.filterable-directory tr.is-filler:last-child td{border-bottom:0}
@media(max-width:760px){.filterable-directory,.filterable-directory.compact-directory{grid-template-columns:minmax(0,1fr)}.filterable-directory>:first-child{grid-column:1;grid-row:2}.filterable-directory>.list-alphabet{grid-column:1;grid-row:1}.filterable-directory tr.is-filler{display:none}}

/* Comissões: indicadores em faixa cheia; cada tabela com seus controles numa linha só. */
.commissions-toolbar{grid-template-columns:minmax(0,1fr)}
.commissions-toolbar dl{width:100%}
.commissions-toolbar dl>div{flex:1 1 0;min-width:0}
.commissions-toolbar dl>div:last-child{border-right:0}
.list-head{display:flex;flex-wrap:wrap;align-items:end;gap:.75rem 1rem;margin-bottom:.75rem}
.list-head>h2{flex:0 0 auto;margin:0}
.list-head .inline-list-search,.list-head .catalog-search{min-width:0;margin:0}
.list-head .list-sort{flex:0 0 auto;border-left:0;padding:0}
.list-head .list-export{flex:0 0 auto}
.list-head .inline-list-search+.list-export,.list-head .catalog-search+.list-export{margin-top:0}
.commission-balances .list-head .list-export{margin-left:0}
.list-head>h2.table-title{align-self:center}
.list-head .inline-list-search,.list-head .catalog-search{flex:1 1 200px;max-width:420px}
.list-head>h2.table-title{flex:0 0 auto;width:auto}

/* Densidade das tabelas: só o eixo vertical. Largura de coluna fica como está,
   senão a grade deixa de bater com a barra de indicadores acima. */
.admin-page,.affiliate-page{--table-row-pad:.35rem}
.admin-page .table-wrap :where(th,td),.affiliate-page .table-wrap :where(th,td){padding-block:var(--table-row-pad)}
.admin-page .table-wrap td :where(strong,small),.affiliate-page .table-wrap td :where(strong,small){display:block;line-height:1.25}
.admin-page .table-wrap td small,.affiliate-page .table-wrap td small{margin-top:.05rem}
.admin-page .table-wrap .row-actions{gap:.3rem}
.admin-page .table-wrap .row-actions :where(button,a,.button,.link-button){min-height:24px;padding-block:.1rem;font-size:.7rem}
.admin-page .table-wrap .status,.affiliate-page .table-wrap .status{padding:.12rem .38rem}
.admin-page .table-wrap .link-button{padding-block:.1rem}
/* Status e ações dividem a mesma linha: empilhados, eram eles que definiam a altura. */
.admin-page .table-wrap td .row-actions{display:inline-flex;vertical-align:middle}
.admin-page .table-wrap td .status+.row-actions,.admin-page .table-wrap td .status+.link-button{margin-left:.6rem}
.affiliates-module .status+.link-button{margin-top:0}

/* ─── Régua de densidade da aplicação ────────────────────────────────────────
   Uma medida só para controles e formulários, em vez de cada painel com a sua.
   O caso que revelou o problema: "Novo item" tinha 1126px de conteúdo para
   906px de diálogo e rolava por dentro sem precisar. */
.admin-page,.affiliate-page{--control-height:32px;--control-pad-y:.32rem;--control-pad-x:.55rem;--field-gap:.2rem;--stack-gap:.6rem}
.admin-page :where(input,select,textarea),.affiliate-page :where(input,select,textarea){min-height:var(--control-height);padding:var(--control-pad-y) var(--control-pad-x)}
.admin-page textarea,.affiliate-page textarea{min-height:0}
.admin-page .form-grid,.affiliate-page .form-grid{gap:.5rem;padding:.75rem 1.25rem .9rem}
.admin-page .form-grid label,.affiliate-page .form-grid label{gap:var(--field-gap);font-size:.74rem;line-height:1.3}
.admin-page .stack,.affiliate-page .stack{gap:var(--stack-gap)}
.admin-page .dialog-head,.affiliate-page .dialog-head{min-height:0;padding:.6rem 1.25rem}
.admin-page .dialog-head h2,.affiliate-page .dialog-head h2{font-size:1.1rem}
.admin-page .dialog-head p,.affiliate-page .dialog-head p{font-size:.72rem}
.admin-page .form-actions,.affiliate-page .form-actions{padding:.6rem 1.25rem}
.admin-page .button,.affiliate-page .button{min-height:var(--control-height)}

/* ─── Controles de listagem: uma identidade só ───────────────────────────────
   Busca e "organizar por" fazem a mesma coisa — recortar a lista — e estavam com
   dois desenhos: rótulo de 13px com sublinhado na barra do topo, rótulo de 10px
   com caixa dentro do cabeçalho da tabela. Agora é a mesma régua nos dois lugares. */
.admin-page :where(.catalog-search,.inline-list-search,.list-sort){display:grid;align-content:center;gap:.25rem;border-left:0;padding:0}
.catalog-toolbar :where(.catalog-search,.list-sort){border-left:1px solid #c8d5e1;padding:.55rem 1rem}
.admin-page :where(.catalog-search,.inline-list-search,.list-sort)>span{color:#63788e;font-size:.62rem;font-weight:800;letter-spacing:.1em;line-height:1.3;text-transform:uppercase}
.admin-page :where(.catalog-search,.inline-list-search,.list-sort) :where(input,select){height:32px;min-height:32px;border:1px solid #bdcbd8;border-radius:0;background:#fff;padding:.25rem .5rem;color:#0b2745;font-size:.8rem;font-weight:650;text-transform:none}
.admin-page :where(.catalog-search,.inline-list-search,.list-sort) :where(input,select):focus{border-color:#0b4b7d;box-shadow:none;outline:0}
/* Teclas da régua com altura fixa: variavam entre listagens compactas e normais. */

/* ─── Escala de texto da tabela ──────────────────────────────────────────────
   Toda célula alinha pelo TOPO: com alinhamento ao meio, a célula de uma linha
   ficava na metade da altura enquanto a de duas começava mais acima, e a primeira
   linha de cada coluna não batia com a das vizinhas. */
.admin-page .table-wrap :where(td,th),.affiliate-page .table-wrap :where(td,th){vertical-align:top}
.admin-page .table-wrap td,.affiliate-page .table-wrap td{font-size:.82rem;line-height:1.2}
.admin-page .table-wrap td>strong,.affiliate-page .table-wrap td>strong{font-size:.82rem;font-weight:800;line-height:1.2}
.admin-page .table-wrap td>small,.affiliate-page .table-wrap td>small{color:#63788e;font-size:.7rem;font-weight:600;line-height:1.2}
.admin-page .table-wrap td .affiliate-chip,.affiliate-page .table-wrap td .affiliate-chip{font-size:.82rem;line-height:1.2}
.admin-page .table-wrap td .status,.admin-page .table-wrap td .row-actions{vertical-align:top}

/* ─── Grade vertical: a tecla da régua é a unidade ───────────────────────────
   Cabeçalho = 1 tecla, linha = 2 teclas. Assim a régua e as linhas caem sempre
   no mesmo passo e nada fica "meio fora" do alinhamento. */
.admin-page,.affiliate-page{--grid-unit:1.5rem;--table-head-height:var(--grid-unit)}
.list-alphabet button{height:var(--grid-unit,24px);min-height:var(--grid-unit,24px)}
.list-alphabet button:first-child{height:var(--grid-unit,24px);min-height:var(--grid-unit,24px)}
.admin-page .table-wrap th,.affiliate-page .table-wrap th{height:var(--grid-unit);min-height:var(--grid-unit);padding-block:.15rem}
.admin-page .table-wrap td,.affiliate-page .table-wrap td{height:calc(var(--grid-unit) * 2)}

/* Régua de tempo: uma linha só, sem menu, o ativo é o único controle sólido. */
.period-bar{display:flex;flex-wrap:nowrap;align-items:center;gap:.25rem;border-bottom:1px solid #c8d5e1;background:#fff;padding:.4rem 1.75rem}
.period-bar-chips{display:flex;flex-wrap:nowrap;align-items:center;gap:.25rem;overflow-x:auto;min-width:0;flex:1 1 auto;scrollbar-width:thin}
.period-bar-label{flex:0 0 auto;margin-right:.35rem;color:#63788e;font-size:.62rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.period-chip{flex:0 0 auto;border:1px solid transparent;padding:.22rem .55rem;color:#294760;font-size:.72rem;font-weight:800;text-decoration:none;white-space:nowrap}
.period-chip:hover{border-color:#bdcbd8;background:#f1f6fa}
.period-chip.is-active{border-color:#9b7300;background:#dcae28;color:#0b2745}
.period-chip:focus-visible{outline:2px solid #dcae28;outline-offset:1px}
@media(max-width:640px){.period-bar{padding-inline:.85rem}}
.overview-spotlight{--spot-ease:cubic-bezier(.32,.72,0,1);--spot-gold:#dcae28;--spot-ms:8000ms;position:relative;margin-top:1.25rem;border:1px solid rgba(220,174,40,.38);background:linear-gradient(180deg,rgba(220,174,40,.16),rgba(220,174,40,.04));padding:4px;color:#edf4fb}
.spotlight-core{position:relative;display:grid;gap:1.15rem;overflow:hidden;background:radial-gradient(120% 140% at 100% 0%,rgba(38,92,146,.55) 0%,rgba(11,39,69,0) 55%),radial-gradient(70% 120% at 0% 100%,rgba(220,174,40,.10) 0%,rgba(220,174,40,0) 60%),#08203a;box-shadow:inset 0 1px 0 rgba(255,255,255,.07),inset 0 0 0 1px rgba(255,255,255,.03);padding:1.25rem 1.5rem 1.4rem;isolation:isolate;container:spotlight/inline-size}
.spotlight-core:before{position:absolute;z-index:-1;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:24px 24px;content:"";pointer-events:none;-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 55%,#000 100%);mask-image:linear-gradient(90deg,transparent 0%,#000 55%,#000 100%)}
.spotlight-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:.95rem}
.spotlight-heading{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .75rem}
.spotlight-tag{border:1px solid rgba(220,174,40,.45);background:rgba(220,174,40,.1);padding:.2rem .5rem;color:var(--spot-gold);font-size:.58rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase}
.spotlight-head h2{margin:0;color:#fff;font-size:.95rem;font-weight:700;letter-spacing:-.01em}
.spotlight-nav{display:flex;flex:0 0 auto;align-items:center;gap:.9rem}
.spotlight-counter{color:#7f98b1;font-size:.72rem;font-weight:600;letter-spacing:.06em;font-variant-numeric:tabular-nums}
.spotlight-counter b{color:#fff;font-weight:800}
.spotlight-markers{display:flex;align-items:center;gap:.3rem}
.spotlight-markers button{position:relative;width:14px;height:3px;border:0;border-radius:0;background:rgba(255,255,255,.18);padding:0;cursor:pointer;transition:width .5s var(--spot-ease),background-color .3s var(--spot-ease)}
.spotlight-markers button:before{position:absolute;inset:-8px -2px;content:""}
.spotlight-markers button:hover{background:rgba(255,255,255,.38)}
.spotlight-markers button[aria-current="true"]{width:40px;background:rgba(220,174,40,.28)}
.spotlight-markers button i{position:absolute;inset:0;background:var(--spot-gold);transform:scaleX(0);transform-origin:left}
.spotlight-markers button[aria-current="true"] i{animation:spotlight-progress var(--spot-ms) linear forwards}
.overview-spotlight.is-paused .spotlight-markers button i{animation-play-state:paused}
.overview-spotlight.is-static .spotlight-markers button[aria-current="true"] i{animation:none;transform:scaleX(1)}
.spotlight-markers button:focus-visible{outline:2px solid var(--spot-gold);outline-offset:4px}
@keyframes spotlight-progress{to{transform:scaleX(1)}}
.spotlight-slide{display:grid;grid-template-columns:minmax(250px,1.05fr) minmax(220px,1fr) minmax(0,1.35fr);align-items:stretch}
.spotlight-slide[hidden]{display:none}
.spotlight-slide>*{opacity:1;transform:none;transition:opacity .45s var(--spot-ease),transform .6s var(--spot-ease)}
.spotlight-slide>:nth-child(2){transition-delay:.06s}
.spotlight-slide>:nth-child(3){transition-delay:.12s}
.overview-spotlight.is-leaving .spotlight-slide>*{opacity:0;transform:translateY(6px);transition-duration:.26s;transition-delay:0s}
.overview-spotlight.is-entering .spotlight-slide>*{opacity:0;transform:translateY(10px);transition:none}
.spotlight-identity{position:relative;display:grid;align-content:space-between;gap:1rem;padding-right:1.5rem}
.spotlight-rank{position:absolute;top:-.6rem;right:1.25rem;background:linear-gradient(180deg,rgba(220,174,40,.30),rgba(220,174,40,0) 85%);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:4.75rem;font-weight:900;line-height:1;letter-spacing:-.06em;font-variant-numeric:tabular-nums;pointer-events:none;user-select:none}
.spotlight-person{min-width:0}
.spotlight-person strong{display:block;overflow:hidden;color:#fff;font-size:1.3rem;font-weight:800;line-height:1.1;letter-spacing:-.025em;text-overflow:ellipsis;white-space:nowrap}
.spotlight-person small{display:block;overflow:hidden;margin-top:.2rem;color:#9fb4c9;font-size:.72rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}
.spotlight-person small+small{margin-top:.05rem;color:#7390ad}
.spotlight-link{display:inline-flex;align-items:center;justify-self:start;gap:.6rem;border:1px solid rgba(220,174,40,.5);background:rgba(220,174,40,.08);padding:.3rem .3rem .3rem .8rem;color:#f3d77e;font-size:.74rem;font-weight:800;text-decoration:none;transition:background-color .35s var(--spot-ease),border-color .35s var(--spot-ease),transform .2s var(--spot-ease)}
.spotlight-link-icon{display:grid;width:24px;height:24px;place-items:center;background:var(--spot-gold);color:#0b2745;transition:transform .45s var(--spot-ease)}
.spotlight-link-icon svg{width:14px;height:14px}
.spotlight-link:hover{border-color:var(--spot-gold);background:rgba(220,174,40,.16)}
.spotlight-link:hover .spotlight-link-icon{transform:translate(2px,-2px)}
.spotlight-link:active{transform:scale(.98)}
.spotlight-link:focus-visible{outline:2px solid var(--spot-gold);outline-offset:3px}
.spotlight-hero{display:grid;align-content:center;gap:.35rem;border-left:1px solid rgba(255,255,255,.08);padding:0 1.5rem}
.spotlight-label,.spotlight-report dt{color:#8ea6be;font-size:.6rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
.spotlight-figure{background:linear-gradient(180deg,#fff 30%,#f2d27a 140%);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:clamp(2rem,3vw,2.6rem);font-weight:800;line-height:1.05;letter-spacing:-.04em;font-variant-numeric:tabular-nums;white-space:nowrap}
.spotlight-share{display:grid;gap:.4rem;margin-top:.35rem}
.spotlight-share-track{display:block;height:4px;overflow:hidden;background:rgba(255,255,255,.1)}
.spotlight-share-track i{display:block;height:100%;background:linear-gradient(90deg,#9b7300,var(--spot-gold) 70%,#f3d77e);transform:scaleX(var(--share,0));transform-origin:left;transition:transform .9s var(--spot-ease) .15s}
.overview-spotlight.is-entering .spotlight-share-track i{transform:scaleX(0);transition:none}
.spotlight-share small{color:#9fb4c9;font-size:.7rem;font-weight:600}
.spotlight-share b{color:#f3d77e;font-weight:800}
.spotlight-report{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-self:center;margin:0;border-left:1px solid rgba(255,255,255,.08)}
.spotlight-report>div{display:grid;align-content:center;gap:.2rem;border-right:1px solid rgba(255,255,255,.06);padding:.35rem 1.15rem}
.spotlight-report>div:last-child{border-right:0;padding-right:0}
.spotlight-report dd{margin:0;color:#fff;font-size:1.15rem;font-weight:750;letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap}
.spotlight-report dd.spotlight-note{color:#7f98b1;font-size:.68rem;font-weight:600;letter-spacing:0}
@container spotlight (max-width:1080px){.spotlight-slide{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.spotlight-report{grid-column:1/-1;margin-top:1.1rem;border-top:1px solid rgba(255,255,255,.08);border-left:0;padding-top:.9rem}.spotlight-report>div:first-child{padding-left:0}}
@media(max-width:640px){.spotlight-core{padding:1rem}}
@container spotlight (max-width:560px){.spotlight-head{flex-wrap:wrap}.spotlight-slide{grid-template-columns:1fr}.spotlight-identity{padding-right:0}.spotlight-rank{right:0;font-size:3.5rem}.spotlight-hero{margin-top:1.1rem;border-top:1px solid rgba(255,255,255,.08);border-left:0;padding:.9rem 0 0}.spotlight-report{grid-template-columns:1fr 1fr;row-gap:.8rem}.spotlight-report>div{border-right:0;padding:0 .75rem 0 0}}
@media(prefers-reduced-motion:reduce){.spotlight-slide>*,.spotlight-markers button,.spotlight-share-track i,.spotlight-link,.spotlight-link-icon{transition:none}.overview-spotlight.is-leaving .spotlight-slide>*,.overview-spotlight.is-entering .spotlight-slide>*{opacity:1;transform:none}.spotlight-markers button[aria-current="true"] i{animation:none;transform:scaleX(1)}}
.period-bar .admin-page-actions{flex:0 0 auto;margin-left:auto}
.period-bar .admin-page-actions .button{height:28px;min-height:28px;padding-block:.2rem}
/* A régua acompanha a borda de topo da tabela: onde a tabela a entrega para a barra de cima, a régua também, senão as teclas descem 1px. */
.filterable-directory:has(:is(.catalog-table-wrap,.affiliate-table-wrap,.customers-table-wrap,.orders-table-wrap,.payments-table-wrap,.logistics-table-wrap))>.list-alphabet{border-top:0}
/* A tabela usa border-collapse: a linha da linha fica centrada na divisa. A tecla desenha a sua do mesmo jeito,
   senão cada divisa da régua fica 1px acima da tabela, e com zoom a diferença cresce. */
@media(min-width:761px){.filterable-directory>.list-alphabet button{position:relative;border-bottom:0}.filterable-directory>.list-alphabet button:not(:last-child):after{position:absolute;right:0;bottom:-.5px;left:0;z-index:1;height:1px;background:#d8e1ea;content:"";pointer-events:none}}
/* Vitrines é lista, não tabela: segue a mesma régua na mão. Cabeçalho de 1 tecla alinhado ao "Todos",
   cada loja com 2 teclas, divisas centradas na borda como as da tabela (border-collapse) e as da régua. */

/* Permissões: árvore Global -> Grupo -> Afiliado. Linha de 2 teclas, como as listas. */
.permissions-toolbar{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:1rem;margin-top:1.25rem}
.permissions-legend{display:flex;flex-wrap:wrap;gap:.9rem;margin:0;padding:0;list-style:none;color:#526a82;font-size:.7rem;font-weight:700}
.permissions-legend li{display:inline-flex;align-items:center;gap:.4rem}
.permissions-legend li:before{width:10px;height:10px;border:1px solid currentColor;content:""}
.permissions-legend .is-own{color:#7a5a00}.permissions-legend .is-own:before{background:#dcae28;border-color:#9b7300}
.permissions-legend .is-inherited{color:#0b4b7d}.permissions-legend .is-inherited:before{background:#dbe8f4;border-color:#8fb0cd}
.permissions-legend .is-default{color:#63788e}.permissions-legend .is-default:before{background:#fff;border-color:#bdcbd8}
.scope-tree{margin-top:1rem;border:1px solid #bdcbd8;background:#fff}
.scope-branch,.scope-members{margin:0;padding:0;list-style:none}
.scope-node[hidden],.scope-members>li[hidden],.scope-members[hidden]{display:none}
.scope-node-head{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto}
.scope-row{display:grid;width:100%;height:calc(var(--grid-unit) * 2);grid-template-columns:5.25rem minmax(0,1fr) minmax(0,auto) 1.25rem;align-items:center;gap:.9rem;border:0;border-top:1px solid #d8e1ea;border-radius:0;background:transparent;padding:0 1rem;color:#0b213c;text-align:left;cursor:pointer;transition:background-color .2s cubic-bezier(.23,1,.32,1)}
.scope-tree>.scope-row{border-top:0;background:#f8fafc}
.scope-row:hover{background:#f1f6fa}
.scope-row:focus-visible{position:relative;z-index:1;outline:2px solid #dcae28;outline-offset:-2px}
.scope-level{justify-self:start;border:1px solid #c8d5e1;padding:.12rem .4rem;color:#526a82;font-size:.58rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.scope-row[data-scope-level="Global"] .scope-level{border-color:#0b2745;background:#0b2745;color:#efc23f}
.scope-row[data-scope-level="Grupo"] .scope-level{border-color:#8fb0cd;background:#eaf1f7;color:#0b4b7d}
.scope-name{display:grid;min-width:0;gap:.05rem;line-height:1.2}
.scope-name strong{overflow:hidden;font-size:.84rem;font-weight:750;text-overflow:ellipsis;white-space:nowrap}
.scope-name small{overflow:hidden;color:#63788e;font-size:.7rem;text-overflow:ellipsis;white-space:nowrap}
.scope-overrides{overflow:hidden;color:#7890a6;font-size:.7rem;font-weight:650;text-overflow:ellipsis;white-space:nowrap}
.scope-overrides.has-overrides{color:#7a5a00;font-weight:800}
.scope-chevron{width:1rem;height:1rem;color:#7e96ae}
.scope-row:hover .scope-chevron{color:#0b2745}
.scope-branch .scope-row{padding-left:2.25rem}
.scope-members .scope-row{padding-left:3.5rem}
.scope-members{position:relative}
.scope-members:before{position:absolute;top:0;bottom:0;left:2.75rem;width:1px;background:#d8e1ea;content:""}
/* Todas as setas na mesma coluna: quem não tem botão de expandir reserva o espaço dele. */
.scope-tree>.scope-row,.scope-node-head:not(:has(.scope-toggle))>.scope-row,.scope-members>li>.scope-row{padding-right:calc(1rem + var(--grid-unit) * 2 + 1px)}

.settings-tabs{display:flex;flex-wrap:wrap;gap:0;margin:0 0 1.1rem;border-bottom:1px solid #c8d5e1}
.settings-tabs button{margin-bottom:-1px;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;padding:.55rem .8rem;color:#526a82;font-size:.76rem;font-weight:800;cursor:pointer}
.settings-tabs button:hover{color:#0b2745}
.settings-tabs button[aria-selected="true"]{border-bottom-color:#dcae28;color:#0b2745}
.settings-tabs button:focus-visible{outline:2px solid #dcae28;outline-offset:-2px}
.rule-scope-field[hidden]{display:none}
.rule-origin{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.3rem;font-size:.66rem;font-weight:750;letter-spacing:0;text-transform:none}
.rule-origin>span{display:inline-flex;align-items:center;gap:.35rem}
.rule-origin>span:before{width:8px;height:8px;border:1px solid currentColor;content:""}
.rule-origin.is-own{color:#7a5a00}.rule-origin.is-own>span:before{background:#dcae28;border-color:#9b7300}
.rule-origin.is-inherited{color:#0b4b7d}.rule-origin.is-inherited>span:before{background:#dbe8f4;border-color:#8fb0cd}
.rule-origin.is-default{color:#63788e}.rule-origin.is-default>span:before{background:#fff;border-color:#bdcbd8}
.rule-origin button{border:0;border-radius:0;background:transparent;padding:0;color:#0b4b7d;font:inherit;text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.rule-origin button:hover{color:#0b2745}
.rule-origin button:focus-visible{outline:2px solid #dcae28;outline-offset:2px}
.rule-toggle .rule-origin{display:flex}.rule-toggle .rule-origin>span{display:inline-flex}
.product-commission-rules>legend .rule-origin{display:inline-flex;margin:0 0 0 .6rem}
.settings-preview [data-scope-chain] li[aria-current="true"] strong{color:#7a5a00}
@media(max-width:760px){.scope-members:before{left:1.1rem}.scope-row{grid-template-columns:minmax(0,1fr) 1rem;row-gap:.2rem;height:auto;min-height:calc(var(--grid-unit) * 2);padding-block:.55rem}.scope-level{grid-column:1;grid-row:1}.scope-name{grid-column:1;grid-row:2}.scope-overrides{grid-column:1;grid-row:3}.scope-chevron{grid-row:1/4;grid-column:2}.scope-tree>.scope-row,.scope-node-head:not(:has(.scope-toggle))>.scope-row,.scope-members>li>.scope-row{padding-right:calc(.75rem + var(--grid-unit) * 2 + 1px)}.scope-branch .scope-row{padding-left:1rem}.scope-members .scope-row{padding-left:1.75rem}.permissions-toolbar{align-items:stretch;flex-direction:column}}
/* Barra de listagem estreita (≈761–1200px de tela): números, busca e ordenação ficam na primeira linha,
   a exportação desce para a segunda. Mede a própria barra, não a tela, porque a sidebar muda a largura útil. */
.catalog-toolbar{container:toolbar/inline-size}
@container toolbar (max-width:1000px){.catalog-toolbar>.list-export{grid-column:1/-1;grid-row:2;justify-content:flex-end;border-top:1px solid #c8d5e1;border-left:0}}
@container toolbar (max-width:760px){.catalog-toolbar>:is(.list-sort,.catalog-search){grid-row:auto}.catalog-toolbar>.list-sort{grid-column:1/-1;border-top:1px solid #c8d5e1;border-left:0}}
/* Deslocamento calculado em JS (fitContextHelp): a seta volta para cima do ícone. */
.context-help-tooltip:after{margin-left:var(--tip-arrow-shift,0px)}
/* Ações do módulo (Novo item, Novo afiliado) na faixa do título, à direita, entre as duas linhas.
   O título ocupa a largura toda, então as linhas continuam de ponta a ponta; o botão sobrepõe a mesma
   linha da grade. Abaixo de 641px não cabe ao lado do título e desce, como antes. */
@media(min-width:641px){
  .admin-content .page-heading:has(>.module-actions){display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;row-gap:0}
  .admin-content .page-heading:has(>.module-actions)>div:first-child{display:contents}
  .admin-content .page-heading:has(>.module-actions)>div:first-child>*{grid-column:1/-1}
  .admin-content .page-heading:has(>.module-actions) h1{grid-row:1;padding-right:12rem}
  .admin-content .page-heading>.module-actions{position:relative;z-index:1;grid-row:1;grid-column:2;align-self:center;margin:0}
  .admin-content .page-heading>.module-actions :is(.button,button){height:2rem;min-height:0;padding-block:0}
}
/* Topo alinhado entre sidebar e conteúdo. A divisória logo/menu cai na linha acima do título e o primeiro
   rótulo do menu começa com o título. As duas colunas usam as mesmas medidas, em rem, para continuarem
   alinhadas com a fonte do navegador aumentada. */
.admin-page{--topbar-h:2.625rem;--heading-gap:1.125rem;--heading-rule:calc(var(--topbar-h) + var(--heading-gap))}
.admin-page .period-bar{height:var(--topbar-h);padding-block:0}
@media(min-width:641px){.admin-content .module{padding-top:var(--heading-gap)}}
@media(min-width:981px){
  .admin-sidebar-header{min-height:0;height:calc(var(--heading-rule) + 1px)}
  .admin-sidebar-header .admin-brand{min-height:0;height:100%}
  .admin-sidebar nav{padding-top:0}
  .admin-sidebar nav .sidebar-group:first-child>p{margin-top:.675rem}
}
/* Na central, a ficha leva a marca da Central Afiliados; no painel do afiliado, o card leva a identidade da loja dele. */
.affiliate-card-head{align-items:center}
.affiliate-card-logo{display:flex;flex:0 0 auto;align-items:center;margin:0;border-right:1px solid #c8d5e1;padding-right:1rem}
.affiliate-card-logo img{display:block;width:auto;height:2.25rem}
.affiliate-card-head .affiliate-card-identity{flex:1}
/* Ficha concisa: status ao lado do nome e acessos no cabeçalho. */
.affiliate-card{gap:0;padding:0}
.affiliate-card-head{flex-wrap:wrap;gap:.5rem 1rem;padding:.6rem 1rem}
.affiliate-card-title-line{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .6rem}
.affiliate-card-title-line h2{margin:0}
.affiliate-card-head .affiliate-card-badge{padding:.15rem .4rem;font-size:10px}
.affiliate-card-head .affiliate-card-id{margin-top:.15rem}
.affiliate-card-head .affiliate-card-links{display:flex;flex:0 0 auto;align-items:center;gap:.5rem;border:0;padding:0}
.affiliate-card-head .affiliate-card-links .link-button{display:inline-flex;height:2rem;align-items:center;border:1px solid #c8d5e1;background:#fff;padding:0 .7rem;color:#0b4b7d;font-size:.72rem;font-weight:800;text-decoration:none}
.affiliate-card-head .affiliate-card-links .link-button:hover{border-color:#0b2745;background:#0b2745;color:#fff}
.affiliate-card-head .affiliate-card-links .link-button:focus-visible{outline:2px solid #dcae28;outline-offset:2px}
.affiliate-card-body{display:grid;gap:.75rem;padding:.75rem 1rem}
.affiliate-card-body>*+*{margin-top:0}
@media(max-width:760px){.affiliate-card-head .affiliate-card-links{order:3;flex-basis:100%}}
/* Ficha do afiliado: só cadastro (lote e repasse ficam em Comissões). A altura sai da tela útil
   (100dvh / --z, mesma escala dos painéis), e as faixas de dados esticam para ocupar a ficha inteira, sem vão. */
[data-affiliate-card-panel] .affiliate-card-body{min-height:clamp(12rem,calc((100dvh / var(--z)) * .32),18rem);grid-template-rows:none;grid-auto-rows:auto;align-content:stretch;padding:.25rem 1.25rem .75rem}
/* Fichas da central num fluxo contínuo, sem caixa por bloco: cada seção é uma faixa com o título discreto à
   esquerda e os campos (rótulo acima do valor) em 4 colunas que se alinham na ficha inteira. Entre as faixas,
   só uma linha fina. Com pouco conteúdo, as faixas esticam por igual (align-content), sem vão no pé. */
.card-blocks{display:grid;grid-template-columns:minmax(0,1fr);grid-auto-rows:auto;align-content:stretch}
.card-block{display:grid;grid-template-columns:minmax(0,1fr);align-items:center;gap:.35rem 1.25rem;min-width:0;padding:.7rem 0}
.card-block+.card-block{border-top:1px solid #e3eaf1}
.card-block>.affiliate-card-block-title{margin:0;color:#0b4b7d}
@media(min-width:761px){.card-block{grid-template-columns:9.5rem minmax(0,1fr)}.card-block>.affiliate-card-block-title{align-self:center}}
.card-block-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem 1.25rem;margin:0}
@media(min-width:1024px){.card-block-facts{grid-template-columns:repeat(4,minmax(0,1fr))}}
.card-block-facts>div{min-width:0}
.card-block-facts>div.is-wide{grid-column:1/-1}
.card-block-facts dt{color:#63788e;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.card-block-facts dd{display:flex;align-items:center;gap:.4rem;min-height:1.5rem;margin:.15rem 0 0;color:#0b2745;font-size:.875rem;font-weight:600;line-height:1.35;overflow-wrap:anywhere;white-space:normal}
.card-block-facts dd>span{min-width:0}
.card-block-facts dd.is-empty{color:#9fb1c2;font-weight:400}
.card-block-facts dd.is-highlight{color:#9b7300;font-weight:700}
.card-block-facts dd.is-masked>span{color:#3d5570;font-variant-numeric:tabular-nums;letter-spacing:.03em}
.card-reveal{display:inline-flex;width:1.5rem;height:1.5rem;flex:0 0 auto;align-items:center;justify-content:center;border:1px solid transparent;border-radius:0;background:transparent;padding:0;color:#7890a6;cursor:pointer;transition:color .15s ease,border-color .15s ease,background-color .15s ease}
.card-reveal svg{width:15px;height:15px}
.card-reveal:hover{border-color:#c8d5e1;background:#f8fafc;color:#0b2745}
.card-reveal[aria-pressed="true"]{border-color:#dcae28;background:#fff;color:#9b7300}
.card-reveal:focus-visible{outline:2px solid #dcae28;outline-offset:1px}
.card-reveal:disabled{cursor:progress;opacity:.6}
.card-block-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:.55rem 1.25rem;margin:0;padding:0;list-style:none}
.card-block-list li{display:grid;min-width:0;gap:.1rem}
.card-block-list strong{color:#0b2745;font-size:.82rem;font-weight:700}
.card-block-list small{color:#63788e;font-size:.7rem;overflow-wrap:anywhere}
.card-status{margin:0;color:#526a82;font-size:.8rem}
.card-status.is-error{color:#b42318;font-weight:700}
.card-status[hidden]{display:none}
.card-password-link{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:0 0 .9rem}.card-password-link[hidden],.card-password-link-output[hidden]{display:none}.card-password-link-output{display:flex;flex:1 1 100%;align-items:center;gap:.5rem;min-width:0}.card-password-link-output code{flex:1 1 auto;min-width:0;overflow-wrap:anywhere;border:1px solid #c8d5e1;background:#fff;padding:.4rem .55rem;color:#0b2745;font-size:.74rem}.card-password-link .card-status{flex:1 1 100%}
.customer-card-avatar{display:inline-flex;width:2rem;height:2rem;flex:0 0 auto}
.customer-card-avatar[hidden]{display:none}
.customer-card-avatar{overflow:hidden}
.customer-card-avatar .na.na-md{width:2rem;height:2rem;border-radius:0}
.customer-card .affiliate-card-body>.form-result:empty{display:none}
.affiliate-card-head .affiliate-card-links[hidden]{display:none}
/* Ficha aberta: as linhas abaixo dela recuam (desfoque leve e menos contraste) para a ficha não disputar
   atenção com o resto da lista. Continuam clicáveis; passar o mouse ou focar devolve a nitidez. */
.affiliate-card-row~tr{filter:blur(1.5px);opacity:.45;transition:filter .25s cubic-bezier(.23,1,.32,1),opacity .25s cubic-bezier(.23,1,.32,1)}
.affiliate-card-row~tr:hover,.affiliate-card-row~tr:focus-within{filter:none;opacity:1}
@media(prefers-reduced-motion:reduce){.affiliate-card-row~tr{transition:none}}
/* Área do comprador (/conta): mesma identidade da loja do checkout, via variáveis do tema. */
.customer-main{display:grid;max-width:640px;gap:1.25rem;margin:0 auto;padding:2rem 1rem 4rem}
.customer-account{max-width:760px}
.customer-account>.checkout-heading{border:1px solid #bdcbd8;background:#fff}
.customer-panel{border:1px solid #bdcbd8;background:#fff}
.customer-panel>.checkout-heading{border-bottom:1px solid #c8d5e1}
.customer-panel>h2{margin:0;border-bottom:1px solid #c8d5e1;padding:1rem 1.25rem;color:#0b213c;font-size:1.05rem;font-weight:800;letter-spacing:-.015em}
.customer-panel>.button{margin:1.25rem;width:calc(100% - 2.5rem)}
.customer-switch{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid #c8d5e1}
.customer-switch a{padding:.8rem 1rem;color:#586f86;font-size:.82rem;font-weight:800;text-align:center;text-decoration:none;border-bottom:2px solid transparent}
.customer-switch a:hover{color:#0b213c}
.customer-switch a[aria-current="page"]{border-bottom-color:var(--store-accent,#dcae28);color:#0b213c}
.customer-switch a:focus-visible{outline:2px solid var(--store-accent,#dcae28);outline-offset:-2px}
.customer-form{display:grid;gap:.9rem;padding:1.25rem}
.customer-form label{display:grid;gap:.3rem;color:#294760;font-size:.78rem;font-weight:800}
.customer-form input:not([type="checkbox"]){min-height:42px;border:1px solid #bdcbd8;background:#fff;padding:.55rem .7rem;color:#0b213c;font:inherit;font-size:.9rem;font-weight:500}
.customer-form input[readonly]{background:#f4f7fa;color:#586f86}
.customer-form input[aria-invalid="true"]{border-color:var(--red,#b42318)}
.customer-form input:focus-visible{outline:2px solid var(--store-accent,#dcae28);outline-offset:1px}
.customer-form-row{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.customer-form .button{justify-self:start}
.customer-form .button.full{justify-self:stretch}
.field-error{color:var(--red,#b42318);font-size:.72rem;font-weight:700}
.field-hint{color:#63788e;font-size:.72rem;font-weight:600}
.form-result.success{border-left:3px solid #067647;background:rgba(6,118,71,.08);padding:.6rem .8rem;color:#065f3a;font-weight:700}
.customer-form .form-result.error{margin:0;border-left:3px solid var(--red,#b42318);background:rgba(180,35,24,.06);padding:.6rem .8rem;font-weight:700}
.privacy-notice{border:1px solid #c8d5e1;background:#f8fafc}
.privacy-notice summary{padding:.7rem .85rem;color:#0b213c;font-size:.8rem;font-weight:800;cursor:pointer}
.privacy-notice summary:focus-visible{outline:2px solid var(--store-accent,#dcae28);outline-offset:-2px}
.privacy-notice dl{display:grid;gap:.6rem;margin:0;border-top:1px solid #c8d5e1;padding:.85rem}
.privacy-notice dt{color:#0b213c;font-size:.72rem;font-weight:850}
.privacy-notice dd{margin:.1rem 0 0;color:#586f86;font-size:.76rem;line-height:1.45}
.consent-check-list{display:grid;gap:.5rem;margin:0;border:0;padding:0}
.consent-check{display:grid!important;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:.6rem!important;color:#294760;font-size:.8rem!important;font-weight:600!important;line-height:1.45}
.consent-check input{width:18px;height:18px;margin:.1rem 0 0;accent-color:var(--store-brand,#0b2745)}
.consent-check small{color:#63788e;font-weight:500}
.consent-check a{color:var(--store-brand,#0b4b7d);font-weight:800}
.customer-footnote{margin:0;color:#8196aa;font-size:.68rem}

/* Cada pedido abre com os detalhes; o pendente mostra "Pagar agora" sem precisar abrir. */

.customer-digital-access{display:grid;gap:.15rem;margin-top:.35rem}
.customer-digital-access a{color:var(--store-brand,#0b2745);font-weight:800}

.customer-order-note{margin:0;color:#8a4b0f;font-size:.76rem}
.customer-order-pay{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.6rem;margin:0 1.25rem 1rem;border-left:3px solid var(--store-accent,#c99332);background:color-mix(in srgb,var(--store-accent,#c99332) 10%,#fff);padding:.6rem .8rem}

.customer-order-pay .button{min-height:38px;padding:.45rem 1rem}
.customer-order-pay>div{display:flex;flex-wrap:wrap;gap:.45rem}
.checkout-confirmation [data-copy-payment-link]{margin-top:.5rem}
.checkout-confirmation [data-copy-payment-link][hidden]{display:none}

.customer-empty{margin:0;padding:1rem 1.25rem;color:#586f86;font-size:.85rem}

.customer-inline{grid-template-columns:minmax(0,1fr) auto;align-items:center}
.customer-consents{display:grid;gap:.4rem;margin:0;border-top:1px solid #d8e1ea;padding:.9rem 1.25rem}
.customer-consents div{display:flex;justify-content:space-between;gap:1rem;font-size:.74rem}
.customer-consents dt{color:#294760;font-weight:750}
.customer-consents dd{margin:0;color:#63788e;text-align:right}
.customer-rights{display:grid;gap:.75rem;border-top:1px solid #d8e1ea;padding:1.25rem}
.customer-rights>.button{justify-self:start}
.customer-delete summary{color:var(--red,#b42318);font-size:.8rem;font-weight:800;cursor:pointer}
.customer-delete .customer-form{padding:.8rem 0 0}
.customer-delete p{margin:0;color:#586f86;font-size:.78rem;line-height:1.45}
.button.danger{border:1px solid #912018;background:#b42318;color:#fff}
.button.danger:hover{background:#912018}
.button.danger:disabled{opacity:.6}
.customer-logout{display:flex;align-items:center;gap:.75rem;margin:0}
.customer-logout button.checkout-back{border:0;background:transparent;font:inherit;cursor:pointer}
.checkout-account{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.2rem 0}
.checkout-account span{display:grid;gap:.1rem}
.checkout-account strong{color:#0b213c;font-size:.9rem}
.checkout-account small{color:#63788e;font-size:.78rem}
.checkout-account a{color:var(--store-brand,#0b4b7d);font-size:.78rem;font-weight:800}
.store-account-link{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem .65rem;color:inherit;font-size:.8rem;font-weight:800;text-decoration:none;white-space:nowrap}
.store-account-link svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.store-account-link:hover{text-decoration:underline;text-underline-offset:3px}
.store-account-link:focus-visible{outline:2px solid var(--store-accent,#dcae28);outline-offset:2px}
@media(max-width:640px){.customer-form-row,.customer-inline{grid-template-columns:1fr}.store-account-link span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}}
/* Ficha do cliente na central: mesmo desenho da ficha do afiliado. */
.customer-card .affiliate-card-facts>div.is-wide{grid-column:1/-1}
/* O card abre dentro de uma linha da tabela, que não quebra texto: sem isto o endereço longo invade a coluna ao lado. */
.affiliate-card-row>td,.affiliate-card-facts dd{white-space:normal}
.customer-card-alert{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin:0;border-left:3px solid #b42318;background:rgba(180,35,24,.06);padding:.6rem .8rem;color:#7a1a12;font-size:.78rem;font-weight:700}
.customer-card-alert[hidden]{display:none}
.customer-card-alert .button{height:2rem;min-height:0;padding-block:0}
.customer-card-audit{margin:0;color:#8196aa;font-size:.68rem}
.customer-card .affiliate-card-body{padding:.25rem 1.25rem .75rem}
.customer-card .affiliate-card-body>.customer-card-audit{border-top:1px solid #e3eaf1;padding-top:.6rem}
.customer-card .affiliate-card-body>.customer-card-alert{margin-top:.6rem}
/* Conta e sacola num bloco só: a grade do cabeçalho mantém o mesmo número de colunas. */
.store-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:.35rem}
.store-header-actions .store-cart-button{margin-left:0}
@media(max-width:760px){.storefront-page .store-header-actions{grid-column:2;grid-row:1}}
/* Campo de senha com botão de mostrar/ocultar dentro da borda do campo. */
.password-field{position:relative;display:block}
.customer-form .password-field input{width:100%;padding-right:5.25rem}
.password-toggle{position:absolute;top:50%;right:.35rem;transform:translateY(-50%);border:0;background:transparent;padding:.35rem .5rem;color:var(--store-brand,#0b4b7d);font:inherit;font-size:.74rem;font-weight:800;cursor:pointer}
.password-toggle:hover{text-decoration:underline;text-underline-offset:2px}
.password-toggle:focus-visible{outline:2px solid var(--store-accent,#dcae28);outline-offset:1px}
[data-password-match].is-match{color:#067647}
[data-password-match].is-mismatch{color:var(--red,#b42318)}

/* Campos lado a lado alinham pelo topo: mensagem de erro em uma coluna não estica a outra. */
.customer-form-row{align-items:start}.customer-form label{align-content:start}

/* Integrações: situação de frete e pagamento, sem valores de credencial. */
.integrations-grid{margin-top:1.25rem}
.integrations-alert{margin:1.25rem 0 0;border:1px solid #f0c36d;background:var(--gold-soft);padding:.85rem 1rem;color:var(--gold-dark);font-size:.85rem;font-weight:700}
.integrations-grid{display:grid;gap:1rem;align-items:start}
.integration-card{display:grid;gap:.9rem;border:1px solid var(--line);background:var(--surface);padding:1.15rem}
.integration-card header{display:flex;align-items:start;justify-content:space-between;gap:.75rem}
.integration-card h2{margin:0;font-size:1.15rem}
.integration-card>p{margin:0;color:var(--muted);font-size:.85rem}
.integration-checklist{display:grid;margin:0;border-top:1px solid var(--line);padding:0;list-style:none}
.integration-checklist li{display:flex;justify-content:space-between;gap:.75rem;border-bottom:1px solid var(--line);padding:.55rem 0;font-size:.82rem}
.integration-checklist strong{font-weight:800;text-align:right}
.integration-checklist .is-ok strong{color:var(--green)}
.integration-checklist .is-missing strong{color:var(--red)}
.integration-environment strong{color:var(--ink)}
.integration-webhook{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.4rem .6rem;align-items:center}
.integration-webhook span{grid-column:1/-1;color:var(--muted);font-size:.72rem;font-weight:800}
.integration-webhook code{overflow-wrap:anywhere;border:1px solid var(--line);background:var(--bg);padding:.5rem .6rem;font-size:.72rem}
.integration-note{border-left:3px solid var(--gold);padding-left:.7rem}
.integration-card>footer{display:grid;gap:.5rem}
.integration-card .form-result{min-height:0;margin:0;background:transparent;padding:0;font-size:.82rem}
.integration-card .form-result.success{color:var(--green)}
@media(max-width:560px){.integrations-grid{grid-template-columns:1fr}.integration-webhook{grid-template-columns:1fr}}

/*
 * Etiquetas laterais: atalhos empilhados na borda direita da página.
 * Fechadas mostram só o ícone; com o cursor (ou foco) sobre a pilha, cada uma abre o nome.
 * "Configurações da aba" só aparece nas telas que têm gaveta de regras.
 */
.side-tabs{position:fixed;z-index:25;top:50%;right:0;display:flex;flex-direction:column;align-items:flex-end;gap:4px;transform:translateY(-50%)}
.side-tab{display:flex;width:28px;align-items:center;gap:0;border:1px solid #936c00;border-right:0;border-radius:0;background:#dcae28;padding:.7rem 0;color:#0b2745;font:inherit;font-size:.65rem;font-weight:900;letter-spacing:.08em;text-decoration:none;text-transform:uppercase;cursor:pointer;writing-mode:vertical-rl}
.side-tab svg{width:1rem;height:1rem;flex:0 0 auto;margin-inline:auto}
.side-tab span{max-height:0;overflow:hidden;opacity:0;white-space:nowrap;transition:max-height .22s ease,opacity .16s ease,margin-top .22s ease}
/* Label spacing only while expanded: a fixed gap would push the lone icon off-center in the collapsed tab. */
.side-tabs:hover .side-tab span,.side-tabs:focus-within .side-tab span{opacity:1;margin-top:.5rem}
.side-tab:hover,.side-tab:focus-visible{background:#ebc34c}
.side-tab.active{border-color:#0b2745;background:#0b2745;color:#efc23f}
.side-tab[hidden]{display:none}
@media(max-width:980px){.side-tabs{top:auto;right:.75rem;bottom:.75rem;flex-direction:row;transform:none}.side-tab{width:42px;height:42px;justify-content:center;border-right:1px solid #936c00;padding:0;writing-mode:horizontal-tb}.side-tab span{position:absolute;width:1px;height:1px;clip:rect(0,0,0,0)}.side-tabs:hover .side-tab span,.side-tabs:focus-within .side-tab span{max-height:0;opacity:0}}
.side-tab span{text-orientation:upright;letter-spacing:.12em;line-height:1}
.side-tabs:hover .side-tab span,.side-tabs:focus-within .side-tab span{max-height:24rem}
.admin-drawer .admin-drawer-body{min-height:0;overflow-y:auto;padding:1.25rem 1.5rem}
.settings-header>.drawer-logo{align-self:center}

/* Menu lateral na largura do item mais longo ("Pagamentos") mais o recuo padrão. */
@media(min-width:981px){.admin-page .admin-shell{grid-template-columns:9.5rem minmax(0,1fr)}.admin-sidebar-header .admin-brand{padding-right:2.25rem;background-position:.6rem center;background-size:calc(100% - 3rem) auto}}
/* Barra de listagem: a exportação desce para a linha de baixo quando não cabe (medido no app.js). */
.catalog-toolbar.is-stacked>.list-export{grid-column:1/-1;grid-row:2;justify-content:flex-end;border-top:1px solid #c8d5e1;border-left:0}
/* Gaveta aberta pela etiqueta de uma tela: só a área dela, sem abas das outras e sem a coluna de herança. */
.settings-drawer.is-scoped .settings-tabs{display:none}
.settings-drawer.is-scoped:not(.is-vitrine) .settings-body{grid-template-columns:minmax(0,1fr)}
.settings-drawer.is-scoped:not(.is-vitrine) .settings-preview{display:none}
.admin-page-actions .button.icon-only{width:34px;padding:0;justify-content:center}

/* Toggles no lugar das caixinhas da central: mesmo desenho do .switch-label do painel do afiliado, com cantos retos. */
.admin-page input[type="checkbox"]{position:relative;width:32px;min-width:32px;height:18px;min-height:18px;flex:0 0 32px;margin:.1rem 0 0;border:0;border-radius:0;background:#ccd9e6;cursor:pointer;appearance:none;-webkit-appearance:none;transition:background-color .18s ease}
.admin-page input[type="checkbox"]::after{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:0;background:#fff;box-shadow:0 1px 2px rgba(11,39,69,.35);content:"";transition:transform .18s ease}
.admin-page input[type="checkbox"]:checked{background:#dcae28}
.admin-page input[type="checkbox"]:checked::after{transform:translateX(14px)}
.admin-page label:hover>input[type="checkbox"]:not(:disabled){background:#b9cade}
.admin-page label:hover>input[type="checkbox"]:checked:not(:disabled){background:#c99f24}
.admin-page input[type="checkbox"]:focus-visible{outline:2px solid #dcae28;outline-offset:2px}
.admin-page input[type="checkbox"]:disabled{cursor:not-allowed;opacity:.5}
@media(prefers-reduced-motion:reduce){.admin-page input[type="checkbox"],.admin-page input[type="checkbox"]::after{transition:none}}
/* Menu do painel do afiliado na mesma largura do menu da central. */
@media(min-width:981px){.affiliate-page:not(.affiliate-sidebar-closed) .affiliate-shell{grid-template-columns:9.5rem minmax(0,1fr)}.affiliate-sidebar-header .affiliate-brand{padding-right:2.25rem;background-position:.6rem center;background-size:calc(100% - 3rem) auto}}
.overview-grid{grid-template-columns:minmax(0,1fr)}
/* Painel do afiliado: campos da loja que a central não libera. */
.locked-note{display:inline-block;margin-top:.3rem;color:#8a6a00;font-size:.66rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.is-locked :where(input,textarea,select){cursor:not-allowed;opacity:.6}
fieldset.is-locked>:not(legend):not(.locked-note){opacity:.6}

.settings-drawer:not(.is-scoped) [data-back-storefront-rules]{display:none}

/* Régua A–Z à direita da listagem: à esquerda ela disputava espaço com a ficha que abre sobre a linha. */
@media(min-width:761px){.filterable-directory{grid-template-columns:minmax(0,1fr) 46px}.filterable-directory.compact-directory{grid-template-columns:minmax(0,1fr) 40px}.filterable-directory>.list-alphabet{grid-column:2;grid-row:1;border-right:1px solid #bdcbd8;border-left:0}.filterable-directory>:not(.list-alphabet){grid-column:1}}
/* Comissão por produto: toggle "Padrão" ligado usa a comissão padrão; desligado libera o percentual do produto. */
.product-rate-row{display:grid;min-height:52px;grid-template-columns:minmax(0,1fr) auto 112px;align-items:center;gap:1rem;border-top:1px solid #d8e1ea;padding:.55rem 0}
.product-commission-rules>legend+.product-rate-row{border-top:0}
.product-rate-row>span:first-child{display:grid;gap:.1rem}
.product-rate-row strong{font-size:.75rem}
.product-rate-row small{color:#63788e;font-size:.65rem}
.product-rate-default{display:flex;align-items:center;gap:.45rem;color:#294760;font-size:.7rem;font-weight:800;white-space:nowrap;cursor:pointer}
.product-rate-value{display:grid;grid-template-columns:minmax(0,1fr) 18px;align-items:center;gap:.35rem}
.product-rate-value input:disabled{background:#eef3f8;color:#8196ab;cursor:not-allowed}
.settings-drawer .product-commission-rules .product-rate-default{display:flex;flex-direction:row;align-items:center;gap:.45rem}
/* Formulários em janela (novo item, novo afiliado, produtos da loja) com a logo, como as gavetas. */
.dialog-head>.drawer-logo{align-self:center;margin-right:1rem}
.dialog-head>.drawer-logo+div{flex:1;min-width:0}
.operational-dialog .dialog-head>.drawer-logo+div{border-left:0;padding-left:0}
.drawer-back{display:block;margin:0 0 .35rem;padding:0;font-size:.75rem}

/* Integrações: um card por linha, com identificação, checklist e webhook lado a lado. */
.integrations-grid{grid-template-columns:minmax(0,1fr)}
.integration-card{grid-template-columns:minmax(230px,.9fr) minmax(210px,.8fr) minmax(250px,1.1fr);align-items:start;column-gap:1.75rem;row-gap:.6rem}
.integration-identity{display:grid;gap:.7rem;grid-column:1;grid-row:1/span 2}
.integration-identity>p{margin:0;color:var(--muted);font-size:.85rem}
.integration-card>.integration-checklist{grid-column:2;grid-row:1/span 2;border-top:0}
.integration-card>.integration-webhook{grid-column:3;grid-row:1}
.integration-card>.integration-note{grid-column:3;grid-row:2;align-self:start}
.integration-card>footer{grid-column:3;grid-row:3;justify-items:start}
.integration-card:not(:has(.integration-webhook))>footer{grid-row:1}
@media(max-width:900px){.integration-card{grid-template-columns:minmax(0,1fr)}.integration-card>*{grid-column:1!important;grid-row:auto!important}}
/* Pedidos: identificação, situação, entrega, quem comprou, quem vendeu e o valor à direita. */
.order-delivery{display:grid;gap:.1rem}
.order-delivery small{color:var(--muted);font-size:.68rem}
.orders-table-wrap .order-total-column{text-align:right;font-variant-numeric:tabular-nums}
.payments-table-wrap td small,.payment-reference{display:block;color:var(--muted);font-size:.68rem;overflow-wrap:anywhere}
.payments-table-wrap .order-total-column{text-align:right;font-variant-numeric:tabular-nums}
/* Permissões gerais mostra só o que o afiliado pode fazer; parâmetro da rede fica na aba Configurações da tela. */
.settings-drawer:not(.is-scoped) [data-rule-kind="network"]{display:none}
.orders-table-wrap td strong{font-weight:800}
.commission-balances .affiliate-chip,.commissions-module .affiliate-chip{font-weight:800}
.settings-drawer.is-scoped [data-rule-kind="permission"]{display:none}
/* Gavetas mais estreitas: só a de vitrine precisa de largura para a prévia. */
.settings-drawer{width:min(940px,calc(100% - 1rem))}

/* Prévia recolhível: a gaveta tem a mesma largura em todas as abas. */
.preview-toggle{margin-right:.4rem}
.settings-drawer.is-vitrine.is-preview-collapsed .settings-body{grid-template-columns:minmax(0,1fr)}
.settings-drawer.is-vitrine.is-preview-collapsed .settings-preview{display:none}
.preview-toggle[hidden]{display:none}
.settings-drawer.is-scoped:not(.is-vitrine){width:min(940px,calc(100% - 1rem))}

/* Ficha do produto no catálogo: mídia grande à esquerda, dados à direita. */
.product-card-body{display:grid;grid-template-columns:minmax(280px,1fr) minmax(260px,1fr);gap:1.5rem;align-items:start}
.product-card-media{display:grid;gap:.6rem;min-width:0}
.product-card-stage{display:grid;min-height:260px;place-items:center;margin:0;border:1px solid var(--line);background:var(--bg);overflow:hidden}
.product-card-stage img,.product-card-stage video{max-width:100%;max-height:360px;object-fit:contain}
.product-card-empty{margin:0;color:var(--muted);font-size:.8rem}
.product-card-thumbs{display:flex;flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none}
.product-card-thumb{display:grid;width:64px;height:64px;place-items:center;overflow:hidden;border:1px solid var(--line);background:var(--surface);padding:0;cursor:pointer}
.product-card-thumb img{width:100%;height:100%;object-fit:cover}
.product-card-thumb span{color:var(--muted);font-size:.6rem;font-weight:800;text-transform:uppercase}
.product-card-thumb.is-active{border-color:var(--gold);box-shadow:inset 0 0 0 2px var(--gold)}
.product-card-description{margin:0 0 1rem;color:var(--muted);font-size:.85rem;white-space:pre-line}
.catalog-module tbody tr[data-catalog-row]{cursor:pointer}
@media(max-width:820px){.product-card-body{grid-template-columns:minmax(0,1fr)}}
/* Novo item / Editar: prévia grande do arquivo e miniaturas menores. */
.product-image-stage{display:grid;grid-column:1/-1;min-height:240px;place-items:center;margin:0 0 1px;border:1px solid #c8d5e1;background:#f8fafc;overflow:hidden}
.product-image-stage img,.product-image-stage video{max-width:100%;max-height:300px;object-fit:contain}
.product-image-stage p{margin:0;color:var(--muted);font-size:.8rem}
.product-image-grid{grid-template-columns:repeat(auto-fill,minmax(88px,1fr))}
.product-image-item{cursor:pointer}
.product-image-item.is-active{box-shadow:inset 0 0 0 2px var(--gold)}

/* Vitrine — o filtro vive na página: sem moldura, sem cabeçalho colorido, separado só por linhas. */
.storefront-page .catalog-section>.catalog-filters{gap:0;border:0;background:transparent;padding:0}
.storefront-page .catalog-section>.catalog-filters>.catalog-filter-title{border-bottom:1px solid var(--store-line);background:transparent;padding:0 0 .6rem;color:var(--store-muted);font-size:.68rem;font-weight:800;letter-spacing:.14em}
.storefront-page .catalog-section>.catalog-filters>label{gap:.35rem;border-bottom:1px solid var(--store-line);background:transparent;padding:.85rem 0;color:var(--store-muted);font-size:.7rem}
.storefront-page .catalog-section>.catalog-filters>label:last-of-type{border-bottom:0}
.storefront-page .catalog-section>.catalog-filters :where(input,select){background:transparent}
.storefront-page .catalog-section>.catalog-filters select{border:0;border-bottom:1px solid var(--store-line);padding-inline:0;color:var(--store-ink);font-size:.9rem;font-weight:600}
.storefront-page .catalog-section>.catalog-filters select:focus{border-bottom-color:var(--store-accent)}
.storefront-page .catalog-section>.catalog-filters .catalog-price-filter output{color:var(--store-ink);font-size:.9rem;font-weight:700}
.storefront-page .catalog-section>.catalog-filters>.button{justify-self:start;min-height:0;margin-top:.9rem;border:0;background:transparent;padding:0;color:var(--store-accent);font-size:.78rem;font-weight:800;text-decoration:underline;text-underline-offset:4px}

/* Vitrine — o anúncio é uma superfície só: foto e texto no mesmo fundo, sem borda, com o mesmo respiro dos dois lados.
   Os seletores precisam de `:is(.product-grid,.product-rail)>` porque as regras de tema usam :is() com um seletor
   composto dentro e ganham de `.storefront-page .product` no desempate. */
.storefront-page :is(.product-grid,.product-rail)>.product{overflow:hidden;border:0;border-radius:var(--store-radius-md);background:var(--store-surface);padding:1rem}
.storefront-page :is(.product-grid,.product-rail)>.product .product-media{border:0;border-radius:0;background:transparent;padding:0}
.storefront-page :is(.product-grid,.product-rail)>.product .product-media img{object-fit:contain}
.storefront-page :is(.product-grid,.product-rail)>.product .product-body{padding:.9rem 0 0}
.storefront-page .product-grid,.storefront-page .product-grid.featured{gap:1.25rem;border:0;background:transparent}
.storefront-catalog-surface>.list-pagination{border:0;border-top:1px solid var(--store-line)}
.storefront-page .catalog-empty{border:0;background:transparent}

/* Vitrine — todo anúncio com as mesmas faixas: título, descrição, selo, preço e botões sempre na mesma altura. */
.storefront-page .product-body{display:flex;flex:1;flex-direction:column;align-content:stretch}
.storefront-page .product-body h3{min-height:2.3em}
.storefront-page .product-body>p{min-height:2.9em}
.storefront-page .product-availability{margin-bottom:.8rem}
.storefront-page .product-footer{margin-top:auto;padding-top:0}
.storefront-page .product-footer>div:first-child{display:flex;min-height:2.6rem;flex-direction:column;justify-content:flex-end}

/* Vitrine — o carrossel entrega quatro anúncios inteiros na largura da página; nenhum botão cortado. */
.storefront-page .product-rail{gap:1.25rem;grid-auto-columns:calc((100% - 3.75rem)/4)}
@media(max-width:1180px){.storefront-page .product-rail{grid-auto-columns:calc((100% - 2.5rem)/3)}}
@media(max-width:860px){.storefront-page .product-rail{grid-auto-columns:calc((100% - 1.25rem)/2)}}
@media(max-width:560px){.storefront-page .product-rail{grid-auto-columns:100%}}

/* Vitrine — a sacola abre na mesma faixa do topo: cabeçalho do painel com a altura e o respiro da barra da loja. */
@media(min-width:861px){
  .storefront-page .store-header-main,.storefront-page .cart-peek>header{height:var(--store-header-height);min-height:var(--store-header-height);padding-block:.6rem}
  .storefront-page .cart-peek>header{box-sizing:border-box}
}
/* Vitrine — a aba aponta para o botão que abriu o painel, e o botão fica aceso enquanto a sacola está aberta. */
.storefront-page .cart-peek{overflow:visible}
.storefront-page .cart-peek>header{position:relative;overflow:visible}
.storefront-page .cart-peek>header::before{position:absolute;top:50%;left:0;width:0;height:0;border-top:9px solid transparent;border-bottom:9px solid transparent;border-left:9px solid var(--store-accent);content:"";transform:translateY(-50%);pointer-events:none}
.storefront-page.cart-peek-open .store-cart-button{color:var(--store-accent)}
@media(max-width:860px){.storefront-page .cart-peek>header::before{display:none}}

/* Vitrine — o painel repete o dourado do botão: mesmo título, mesma cor, e a aba deixa de sumir no azul do topo. */
.storefront-page .cart-peek>header span,.storefront-page .cart-peek>header strong{color:var(--store-accent)}

/* Vitrine — esvaziar a sacola fica ao lado de finalizar, em peso menor, e apaga quando não há o que esvaziar. */
.storefront-page .cart-peek-clear{justify-self:center;width:max-content;border:0;background:transparent;padding:.25rem;color:var(--store-muted);font-family:inherit;font-size:.75rem;font-weight:800;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.storefront-page .cart-peek-clear:hover:not(:disabled){color:var(--store-ink)}
.storefront-page .cart-peek-clear:disabled{opacity:.4;cursor:default;text-decoration:none}

/* Vitrine — o fechar do painel anuncia a tecla: quem prefere o mouse clica, quem prefere o teclado já sabe qual é. */
.storefront-page .cart-peek-close{display:flex;width:auto;min-width:0;align-items:center;gap:.4rem;padding:0 .55rem;font-family:inherit;font-size:.68rem;font-weight:850;letter-spacing:.06em}
.storefront-page .cart-peek-close>span{line-height:1}

/* Central — cadastro que acabou de chegar recebe selo e sai sozinho depois de sete dias. */
.admin-page .new-signup-badge{display:inline-block;margin-left:.5rem;border:1px solid #067647;padding:.1rem .35rem;color:#067647;font-size:.62rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase;vertical-align:middle}
/* O selo fica num ponto fixo, no fim da coluna Afiliado: nome longo é cortado com reticências e não empurra o selo. */
/* Seletor reforçado: ".table-wrap td>strong" (display:block) vencia a regra simples. */
.admin-page .table-wrap td>strong.affiliate-name-line{display:flex;align-items:center;gap:.5rem;min-width:0}
.admin-page .affiliate-name-line>.affiliate-chip{display:block;min-width:0;max-width:28ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-page .affiliate-name-line>.affiliate-chip:before{display:inline-block;margin:0 .45rem 0 .1rem;vertical-align:.15em}
.admin-page .affiliate-name-line>.new-signup-badge{flex:none;margin-left:auto}
/* Acessos: Painel, Loja, Arquivar e Excluir na mesma linha, centrados na altura (os botões herdavam margem de cima). */
.admin-page .row-actions.access-links{align-items:stretch}
.admin-page .access-links>:is(a,.link-button){display:inline-flex;align-items:center;justify-content:center;margin-top:0;margin-bottom:0}
/* O último item da caixa ganha o mesmo respiro da esquerda: "Excluir" encostava na borda. */
.admin-page .access-links>.link-button{margin-left:.55rem}
.admin-page .access-links>.link-button:last-child{margin-right:.55rem}

/* Acesso — link para a conta nova na tela de login. */
.auth-switch{margin:1rem 0 0;color:#5a6672;font-size:.82rem;text-align:center}
.auth-switch a{color:#9b7300;font-weight:800;text-underline-offset:3px}

/* Cadastro do afiliado — página própria: o layout do login é um grid de duas colunas com o
   manifesto lateral, e reusá-lo aqui espremia o formulário na primeira coluna. */
.auth-signup-page{position:relative;display:block;min-height:100dvh;overflow-x:hidden;padding:0;background:#f7f5ef;isolation:isolate}
.auth-signup-page .auth-brand{position:static;display:block;padding:clamp(1.25rem,4vh,2.25rem) clamp(1.25rem,5vw,4rem) 0}
/* Mesma marca do login e da redefinição (logo recortada): a largura cai 10% porque a imagem cheia tinha margem transparente. */
.auth-signup-page .auth-brand-logo{width:clamp(161px,12.56vw,197px);margin:0}
.auth-signup-main{display:grid;min-width:0;place-items:start center;padding:clamp(1.5rem,4vh,3rem) 1.25rem clamp(3rem,7vh,5rem)}
.auth-signup-panel{position:relative;z-index:1;width:min(560px,100%);text-align:left}
.auth-signup-panel h1{margin:0;color:var(--navy);font-size:clamp(1.9rem,3.4vw,2.6rem);line-height:1.05;letter-spacing:-.035em}
.auth-signup-panel .auth-eyebrow{margin:0 0 .35rem}
.auth-signup-panel .auth-subtitle{margin:.6rem 0 1.75rem;max-width:44ch;color:#5a6672}
.auth-signup-form label{display:grid;gap:.35rem;color:#3d4b5a;font-size:.72rem;font-weight:800}
.auth-signup-form input{min-height:44px;width:100%;border:1px solid #c8d1da;background:#fff;padding:.55rem .75rem;font-family:inherit;font-size:.92rem}
.auth-signup-form input:focus{border-color:#9b7300;outline:2px solid rgba(155,115,0,.25);outline-offset:1px}
.auth-signup-form .form-result{grid-column:1/-1;min-height:1.2rem;margin:0;color:#3d4b5a;font-size:.8rem}
.auth-signup-form .form-result.is-error{color:#9f2d24;font-weight:700}
.auth-signup-form .auth-submit{grid-column:1/-1;margin-top:.35rem}
.auth-signup-page .auth-backdrop{position:fixed;z-index:-1;inset:0}
@media(max-width:620px){.auth-signup-panel h1{font-size:clamp(1.7rem,7vw,2.1rem)}}

/* Cadastro — três blocos e uma grade de seis colunas: o formulário deixa de ser uma fila de campos soltos. */
.auth-signup-form{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.9rem 1rem}
.signup-block{display:grid;grid-column:1/-1;grid-template-columns:repeat(6,minmax(0,1fr));gap:.9rem 1rem;margin:0;border:0;border-top:1px solid #dcd7cc;padding:1.1rem 0 0}
.signup-block:first-of-type{border-top:0;padding-top:0}
.signup-block>legend{padding:0;color:#9b7300;font-size:.66rem;font-weight:850;letter-spacing:.14em;text-transform:uppercase}
.auth-signup-form .span-2{grid-column:span 2}
.auth-signup-form .span-3{grid-column:span 3}
.auth-signup-form .span-4{grid-column:span 4}
.auth-signup-form .span-6{grid-column:1/-1}
.signup-hint{margin:0;color:#6b7683;font-size:.74rem}
.password-strength{display:flex;align-items:center;gap:.6rem}
.password-strength-bar{display:block;overflow:hidden;width:min(220px,55%);height:5px;background:#e2ddd2}
.password-strength-bar i{display:block;width:12%;height:100%;background:#9f2d24;transition:width .2s ease,background-color .2s ease}
.password-strength-bar i[data-level="1"]{width:45%;background:#b8791b}
.password-strength-bar i[data-level="2"]{width:72%;background:#9b7300}
.password-strength-bar i[data-level="3"]{width:100%;background:#067647}
.password-strength small{color:#5a6672;font-size:.74rem;font-weight:700}
@media(max-width:620px){
  .auth-signup-form,.signup-block{grid-template-columns:repeat(2,minmax(0,1fr))}
  .auth-signup-form :is(.span-2,.span-3,.span-4,.span-6){grid-column:1/-1}
}

/* Painel do afiliado — campo que pode ficar em branco diz isso no próprio rótulo. */
.field-optional{margin-left:.35rem;color:#8b939c;font-size:.66rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}

/* Prévia da loja — pintada pelas variáveis da paleta, não por cores fixas: trocar a cor da loja
   repinta a prévia inteira na hora. As variáveis são gravadas no canvas por applyStorefrontPalette. */
.storefront-preview-canvas{border-color:var(--store-line,#9fb1c2);background:var(--store-surface,#fff)}
.storefront-preview-canvas>header{border-bottom-color:var(--store-line,#d8e1ea);background:var(--store-surface,#fff);color:var(--store-ink,#0b2745)}
.storefront-preview-canvas>header span{color:var(--store-accent,#795900)}
.storefront-preview-navigation{border-bottom-color:var(--store-line,#d8e1ea);background:var(--store-brand,#0b2745)}
.storefront-preview-navigation span{color:var(--store-on-brand,#526a82)}
.storefront-preview-hero{background:var(--store-brand,#0b2745);color:var(--store-on-brand,#fff)}
.storefront-preview-hero>div>span{color:var(--store-accent,#efc23f)}
.storefront-preview-hero p{color:var(--store-on-brand,#c6d7e8)}
.storefront-preview-hero b{border-color:var(--store-accent,#efc23f);background:var(--store-accent,#efc23f);color:var(--store-on-accent,#0b2745)}
.storefront-preview-hero aside{border-left-color:var(--store-brand-soft,#496683)}
.storefront-preview-hero aside strong{color:var(--store-accent,#efc23f)}
.storefront-preview-hero aside span{color:var(--store-on-brand,#d7e3ee)}
.affiliate-page .storefront-preview-hero h4{color:var(--store-on-brand,#fff)}
.storefront-preview-products{border-top-color:var(--store-line,#d8e1ea);background:var(--store-line,#d8e1ea)}
.storefront-preview-products div{background:linear-gradient(var(--store-media,#eaf1f7) 55%,var(--store-surface,#fff) 55%)}
.storefront-preview-products div:after{background:var(--store-line,#c8d5e1);box-shadow:0 -11px 0 var(--store-brand,#0b2745)}
.storefront-preview-sections{border-top-color:var(--store-line,#d8e1ea)}
.storefront-preview-sections li{border-bottom-color:var(--store-line,#e2e9ef);background:var(--store-surface,#fff)}
.storefront-preview-sections span{color:var(--store-ink,#0b2745)}
.storefront-preview-sections i{background:var(--store-line,#c8d5e1);box-shadow:0 -7px 0 var(--store-media,#eef3f7)}
.storefront-preview-video{border-top-color:var(--store-line,#d8e1ea)}
.storefront-preview-video span{color:var(--store-muted,#63788e)}
.storefront-preview-video strong{color:var(--store-ink,#0b2745)}
.storefront-preview-about,.storefront-preview-contact,.storefront-preview-policies{border-top-color:var(--store-line,#d8e1ea)}
.storefront-preview-about h5{color:var(--store-ink,#0b2745)}

/* Exemplo de banner — desenhado com as variáveis da paleta. Era um JPG fixo, que ficava azul-marinho
   mesmo quando a loja trocava de cor; agora o exemplo repinta junto com o resto da prévia. */
.hero-guide-art{display:grid;align-content:center;justify-items:start;gap:.35rem;width:100%;height:100%;border:1px solid color-mix(in srgb,var(--store-on-brand,#fff) 28%,transparent);background:var(--store-brand,#0b2745);padding:6% 6% 8%}
.hero-guide-art b{color:var(--store-accent,#efc23f);font-size:clamp(.5rem,1.4cqw,.72rem);font-weight:850;letter-spacing:.12em;text-transform:uppercase}
.hero-guide-art strong{color:var(--store-on-brand,#fff);font-size:clamp(1rem,4.2cqw,2.4rem);font-weight:900;line-height:1.02;letter-spacing:-.03em}
.hero-guide-art em{color:color-mix(in srgb,var(--store-on-brand,#fff) 78%,transparent);font-size:clamp(.5rem,1.6cqw,.85rem);font-style:normal}
.hero-guide-art u{justify-self:end;margin-top:auto;background:var(--store-accent,#efc23f);padding:.3em .6em;color:var(--store-on-accent,#0b2745);font-size:clamp(.5rem,1.5cqw,.8rem);font-weight:850;text-decoration:none;font-variant-numeric:tabular-nums}
.storefront-preview-hero-guide{container-type:inline-size}
.storefront-preview-hero-guide small{background:color-mix(in srgb,var(--store-brand,#0b2745) 82%,transparent);color:var(--store-on-brand,#fff)}

/* Botão de envio de arquivo é um <label>, e `.stack label` o pintava com a cor de rótulo.
   Sobre o fundo escuro do botão o texto sumia: a cor branca precisa vencer aquela regra. */
.stack label.store-logo-picker,.form-grid label.store-logo-picker,label.store-logo-picker{color:#fff}
.stack label.store-logo-picker:hover,label.store-logo-picker:hover{background:#173e67;border-color:#173e67}

/* Rodapé da loja — o nome sai no tom de destaque, como a prévia sempre mostrou. */
.storefront-page .store-footer>div:first-child strong{color:var(--store-accent)}

/* Escolha de cores — nome e amostras empilhados: lado a lado, o texto caía por cima das faixas. */
.storefront-palette-option{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"radio copy" "radio swatch";align-items:start;row-gap:.45rem}
.storefront-palette-option input{grid-area:radio;align-self:center}
.storefront-palette-copy{grid-area:copy}
.storefront-palette-copy small{overflow:visible;font-size:.65rem;line-height:1.35;white-space:normal}
.storefront-palette-swatches{grid-area:swatch;width:100%;height:14px}
.storefront-palette-swatches i{height:14px}

/* Cadastro — a senha é longa e com símbolos: quem digita precisa poder conferir o que escreveu. */
.signup-password-wrap{position:relative;display:block}
.signup-password-wrap input{width:100%;padding-right:2.6rem}
.signup-password-toggle{position:absolute;top:50%;right:.35rem;display:grid;width:32px;height:32px;place-items:center;border:0;background:transparent;padding:0;color:#7c8794;cursor:pointer;transform:translateY(-50%)}
.signup-password-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.signup-password-toggle:hover{color:#3d4b5a}
.signup-password-toggle.is-revealed{color:#9b7300}

/* Topo da loja — o nome sai no tom de destaque, como a prévia sempre mostrou. */
.storefront-page .store-header .store-brand strong{color:var(--store-accent)}

/* Prévia — o topo repete o da loja: busca, "Minha conta" e a sacola com ícone e contador. */
.storefront-preview-actions{display:inline-flex;align-items:center;gap:.6rem;white-space:nowrap}
.storefront-preview-account,.storefront-preview-cart{display:inline-flex;align-items:center;gap:.25rem;font-size:.58rem;font-weight:800}
.storefront-preview-account{color:var(--store-on-brand,#fff)}
.storefront-preview-cart{color:var(--store-accent,#e4b936)}
.storefront-preview-actions svg{width:11px;height:11px;flex:0 0 11px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.storefront-preview-cart b{font-weight:850;font-variant-numeric:tabular-nums}
.storefront-preview-header strong{color:var(--store-accent,#e4b936)}

/* Topo da loja — a escolha do formato vem antes dos campos; só o formato escolhido fica visível. */
.store-hero-kind{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .9rem;margin-bottom:.9rem}
.store-hero-kind-label{color:#63788e;font-size:.68rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}
.store-hero-kind-options{display:inline-flex;border:1px solid #bdcbd8}
.store-hero-kind-options label{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .75rem;color:#294760;font-size:.78rem;font-weight:800;cursor:pointer}
.store-hero-kind-options label+label{border-left:1px solid #bdcbd8}
.store-hero-kind-options label:has(input:checked){background:#0b2745;color:#fff}
.store-hero-kind-options input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.store-hero-media-grid:has(.store-hero-media-slot[hidden]){grid-template-columns:minmax(0,1fr)}
.store-hero-media-slot[hidden]{display:none}

/* Topo com vídeo — o vídeo entra quase pleno e a legibilidade passa a vir do scrim, não de apagar a imagem.
   O degradê sai da cor sólida onde o texto vive e abre até o vídeo limpo do lado oposto; os passos
   intermediários existem para a transição não formar faixas visíveis. */
.storefront-page .store-hero-video{opacity:.96}
.storefront-page .store-hero.has-hero-video:after{
  background:
    linear-gradient(97deg,
      var(--store-brand,#0b2745) 0%,
      var(--store-brand,#0b2745) 24%,
      color-mix(in srgb,var(--store-brand,#0b2745) 88%,transparent) 38%,
      color-mix(in srgb,var(--store-brand,#0b2745) 62%,transparent) 53%,
      color-mix(in srgb,var(--store-brand,#0b2745) 30%,transparent) 70%,
      color-mix(in srgb,var(--store-brand,#0b2745) 8%,transparent) 87%,
      transparent 100%),
    linear-gradient(180deg,
      color-mix(in srgb,var(--store-brand,#0b2745) 40%,transparent) 0%,
      transparent 26%,
      transparent 70%,
      color-mix(in srgb,var(--store-brand,#0b2745) 34%,transparent) 100%);
}
/* Coluna única: o texto deixa de ter um lado só, então o scrim sobe de baixo. */
@media(max-width:900px){
  .storefront-page .store-hero.has-hero-video:after{
    background:linear-gradient(180deg,
      color-mix(in srgb,var(--store-brand,#0b2745) 30%,transparent) 0%,
      color-mix(in srgb,var(--store-brand,#0b2745) 58%,transparent) 42%,
      color-mix(in srgb,var(--store-brand,#0b2745) 88%,transparent) 72%,
      var(--store-brand,#0b2745) 100%);
  }
  .storefront-page .store-hero.has-hero-video{align-content:end}
}
/* A prévia mostra o mesmo tratamento, em escala menor. */
.affiliate-page .storefront-preview-hero-video{opacity:.96}
.affiliate-page .storefront-preview-hero.has-hero-video:after{
  background:
    linear-gradient(97deg,
      var(--store-brand,#0b2745) 0%,
      var(--store-brand,#0b2745) 22%,
      color-mix(in srgb,var(--store-brand,#0b2745) 86%,transparent) 38%,
      color-mix(in srgb,var(--store-brand,#0b2745) 58%,transparent) 55%,
      color-mix(in srgb,var(--store-brand,#0b2745) 24%,transparent) 74%,
      transparent 100%),
    linear-gradient(180deg,
      color-mix(in srgb,var(--store-brand,#0b2745) 34%,transparent) 0%,
      transparent 30%,
      transparent 72%,
      color-mix(in srgb,var(--store-brand,#0b2745) 30%,transparent) 100%);
}

/* Topo com vídeo — a seção passa a ter a proporção do próprio vídeo, entre um piso que cabe o texto
   e um teto que não empurra o catálogo para fora da tela. Com altura fixa, o corte comia o quadro. */
.storefront-page .store-hero.has-hero-video{
  width:100%;
  min-height:0;
  height:clamp(24rem,calc(100vw / var(--hero-video-ratio,1.78)),min(78vh,44rem));
}
@media(max-width:900px){
  .storefront-page .store-hero.has-hero-video{aspect-ratio:auto;min-height:clamp(26rem,90vw,34rem);max-height:none}
}

/* Prévia — mesma regra do topo real: a caixa toma a proporção do vídeo, com piso e teto próprios
   da escala reduzida, para a prévia mostrar o mesmo enquadramento que a loja entrega. */
.affiliate-page .storefront-preview-hero.has-hero-video{
  width:100%;
  min-height:11rem;
  height:min(calc(100cqw / var(--hero-video-ratio,1.78)),22rem);
}
.affiliate-live-preview .storefront-preview-canvas{container-type:inline-size}

/* Rolagem fina em toda a aplicação — a barra larga do Windows rouba largura útil e corta o layout.
   Vale para a janela e para qualquer área rolável: painéis, tabelas, gavetas, prévia e vitrine. */
:root{scrollbar-width:thin;scrollbar-color:rgba(11,39,69,.32) transparent}
*{scrollbar-width:thin}
::-webkit-scrollbar{width:7px;height:7px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{border-radius:99px;background:rgba(11,39,69,.3)}
::-webkit-scrollbar-thumb:hover{background:rgba(11,39,69,.48)}
::-webkit-scrollbar-corner{background:transparent}
/* Sobre fundo escuro, a mesma barra precisa clarear para continuar visível. */
.admin-sidebar,.affiliate-shell .sidebar,.cart-peek,.store-header nav{scrollbar-color:rgba(255,255,255,.34) transparent}
.admin-sidebar ::-webkit-scrollbar-thumb,.admin-sidebar::-webkit-scrollbar-thumb,
.affiliate-shell .sidebar ::-webkit-scrollbar-thumb,.affiliate-shell .sidebar::-webkit-scrollbar-thumb,
.store-header nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.34)}

/* Acesso — o entorno passa a ser azul, como o resto da plataforma: a tela clara destoava de tudo.
   Proporção 60/30/10: azul no fundo, o círculo claro do formulário, dourado só nos detalhes.
   O canto da marca recebe um halo claro porque a logo tem azul e se apagaria sobre azul. */
body.auth-login-page .auth-manifesto{color:rgba(247,245,239,.86);text-shadow:0 1px 14px rgba(4,16,32,.6),0 0 3px rgba(4,16,32,.35)}
body.auth-login-page .auth-manifesto p:first-child:after,body.auth-login-page .auth-manifesto span{background:var(--gold)}
body.auth-login-page .auth-backdrop-orb{
  border:1px solid rgba(255,255,255,.16);
  background:linear-gradient(145deg,rgba(255,255,255,.07),rgba(255,255,255,.015));
  box-shadow:inset 8px 10px 20px rgba(255,255,255,.05),18px 22px 44px rgba(4,14,28,.22);
}

/* Acesso — o disco ganha limite: um fio dourado por fora e outro por dentro marcam os dois níveis
   do relevo. Os semicírculos do fundo e a malha de pontos seguem o mesmo dourado. */
body.auth-login-page .auth-backdrop-orb{border-color:rgba(212,166,42,.55)}
body.auth-login-page .auth-dot-field{opacity:.55;background-image:radial-gradient(circle,rgba(212,166,42,.95) 1px,transparent 1.2px)}

/* Acesso — o disco centraliza na tela. A página era um grid de duas colunas e o círculo nascia no
   meio da segunda, o que o jogava para a direita; o texto lateral sai do fluxo e o conteúdo ocupa
   a largura inteira, então o centro do círculo passa a ser o centro da janela. */
@media(min-width:861px){
  body.auth-login-page{grid-template-columns:minmax(0,1fr)}
  body.auth-login-page .auth-manifesto{
    position:absolute;
    z-index:2;
    top:0;
    bottom:0;
    left:0;
    width:clamp(13rem,22vw,20rem);
    pointer-events:none;
  }
}

/* Acesso — o brilho deixa de vir de um lado só. Camadas concêntricas sem deslocamento, com opacidade
   caindo e desfoque crescendo, envolvem o disco por inteiro e dissolvem no azul sem degrau visível. */

/* Acesso — a malha de pontos cobre o fundo inteiro. Fica fraca de propósito: é textura, não desenho.
   A máscara abre o centro para a área do disco não ganhar trama por baixo do brilho. */
body.auth-login-page .auth-backdrop{
  background-size:180px 132px;
  -webkit-mask-image:radial-gradient(58% 58% at 50% 50%,transparent 38%,#000 72%);
  mask-image:radial-gradient(58% 58% at 50% 50%,transparent 38%,#000 72%);
}
/* O campo denso sai: sobreposto à malha do fundo, com passo diferente, criava moiré. */
body.auth-login-page .auth-dot-field{display:none}
@media(max-width:860px){
  body.auth-login-page .auth-backdrop{background-size:150px 110px;-webkit-mask-image:none;mask-image:none;opacity:.7}
}

/* Acesso — o disco deixa de ser branco e assume o dourado da marca, em tom champanhe para o texto
   marinho manter contraste. Ordem: azul no fundo, dourado no disco, branco só nos campos. */
body.auth-login-page .auth-orbit:before{
  background:linear-gradient(145deg,#f6ead0,#e9d6ac);
}
/* Os campos são o branco da composição: separam do dourado e seguram a leitura. */
body.auth-login-page .auth-subtitle,body.auth-login-page .auth-security{color:#5d5230}
body.auth-login-page .auth-eyebrow{color:#7a5c11}
body.auth-login-page .auth-forgot,body.auth-login-page .auth-switch a{color:#123457}

/* Sem a linha de sobretítulo, o bloco de texto sobe e o espaço dela é reabsorvido pelo título. */
body.auth-login-page .auth-login-panel h1{margin-top:.25rem}

/* Acesso — textura de corrente de ar. Três linhas que entram e saem do ladrilho na mesma altura,
   então o padrão se repete sem emenda visível. Duas variações: clara sobre o azul, escura sobre o
   champanhe do disco. Desenhadas em SVG porque gradiente de CSS não faz curva. */
body.auth-login-page{
  --wind-gold:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='132' viewBox='0 0 180 132'%3E%3Cg fill='none' stroke='%23d8ae3c' stroke-width='1.15' stroke-linecap='round' opacity='.55'%3E%3Cpath d='M0 22 C30 2 60 42 90 22 S150 2 180 22'/%3E%3Cpath d='M0 66 C30 46 60 86 90 66 S150 46 180 66'/%3E%3Cpath d='M0 110 C30 90 60 130 90 110 S150 90 180 110'/%3E%3C/g%3E%3Cg fill='none' stroke='%23d8ae3c' stroke-width='.8' stroke-linecap='round' opacity='.3'%3E%3Cpath d='M0 44 C36 28 66 60 102 44 S156 28 180 44'/%3E%3Cpath d='M0 88 C36 72 66 104 102 88 S156 72 180 88'/%3E%3C/g%3E%3C/svg%3E");
  --wind-ink:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='132' viewBox='0 0 180 132'%3E%3Cg fill='none' stroke='%238a6a1c' stroke-width='1.1' stroke-linecap='round' opacity='.2'%3E%3Cpath d='M0 22 C30 2 60 42 90 22 S150 2 180 22'/%3E%3Cpath d='M0 66 C30 46 60 86 90 66 S150 46 180 66'/%3E%3Cpath d='M0 110 C30 90 60 130 90 110 S150 90 180 110'/%3E%3C/g%3E%3Cg fill='none' stroke='%238a6a1c' stroke-width='.75' stroke-linecap='round' opacity='.12'%3E%3Cpath d='M0 44 C36 28 66 60 102 44 S156 28 180 44'/%3E%3Cpath d='M0 88 C36 72 66 104 102 88 S156 72 180 88'/%3E%3C/g%3E%3C/svg%3E");
}

/* O anel externo inteiro é dourado, não só um fio: é a moldura do acesso. */
body.auth-login-page .auth-orbit{
  padding:0;
}
/* O círculo menor guarda o formulário, em champanhe claro, e recebe a mesma textura de ar. */

/* Acesso — o fundo vira camadas de azul empilhadas, do mais claro no alto ao mais fundo embaixo,
   com as bordas irregulares e um grão por cima. Desenhado em SVG: são formas orgânicas, coisa que
   gradiente de CSS não descreve. O grão vem de ruído gerado no próprio SVG, sem arquivo de imagem. */
body.auth-login-page{
  --blue-strata:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1440' height='900' viewBox='0 0 1440 900' preserveAspectRatio='none'%3E%3Cdefs%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3C/defs%3E%3Crect width='1440' height='900' fill='%232f6ea8'/%3E%3Cpath d='M0 150 C240 96 470 200 720 166 S1180 104 1440 180 L1440 900 L0 900 Z' fill='%23245c90'/%3E%3Cpath d='M0 330 C260 274 520 382 800 344 S1230 282 1440 360 L1440 900 L0 900 Z' fill='%231b4a78'/%3E%3Cpath d='M0 500 C300 442 580 552 900 512 S1280 448 1440 528 L1440 900 L0 900 Z' fill='%2313395f'/%3E%3Cpath d='M0 660 C320 600 640 712 980 670 S1330 606 1440 686 L1440 900 L0 900 Z' fill='%230d2c4b'/%3E%3Cpath d='M0 800 C340 744 660 852 1020 812 S1350 750 1440 822 L1440 900 L0 900 Z' fill='%23081f36'/%3E%3Crect width='1440' height='900' filter='url(%23g)' opacity='.22'/%3E%3C/svg%3E");
}
/* A corrente de ar fica só dentro do disco: sobre as camadas, viraria sujeira. */
body.auth-login-page .auth-backdrop{background-image:none}

/* Acesso — mandala de verdade: motivos repetidos por rotação em catorze anéis concêntricos, com a
   contagem crescendo junto com o raio para a densidade ficar uniforme da borda ao centro, e
   circunferências finas amarrando os anéis. O centro coincide com o centro da tela e do disco. */
body.auth-login-page{
  --mandala-blue:url("brand/mandala-blue.svg");
}
body.auth-login-page{
  background:
    var(--mandala-blue),
    radial-gradient(120% 90% at 50% 0%,#17436f 0%,#0f3055 38%,#0b2a49 62%,#071d33 100%);
  background-size:auto,cover,cover;
  background-position:center,center center,center;
  background-repeat:no-repeat,no-repeat,no-repeat;
}

/* Acesso, revisão minimalista — o ouro chapado saiu. A moldura vira um fio, o disco volta ao marfim
   e o dourado fica só como acento. A mandala continua, mas em marca d'água: ela é o que sustenta a
   tela, não precisa competir com o formulário. */
body.auth-login-page{
  --mandala-soft:url("brand/mandala-soft.svg");
}
body.auth-login-page .auth-orbit{
  border:1px solid rgba(199,154,38,.55);
  background:linear-gradient(158deg,#fbf8f1 0%,#f4efe3 58%,#efe8d8 100%);
  box-shadow:
    0 0 22px 1px rgba(255,255,255,.2),
    0 0 70px 16px rgba(255,255,255,.1),
    0 0 150px 46px rgba(173,203,234,.08),
    0 30px 70px rgba(4,16,32,.4);
}
body.auth-login-page .auth-orbit:before{
  border:1px solid rgba(199,154,38,.3);
  background-color:#fbf8f1;
  background-image:var(--mandala-soft),linear-gradient(150deg,#fdfbf6,#f4efe3);
  background-size:200% 200%,auto;
  background-position:center,center;
  background-repeat:no-repeat,no-repeat;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 1px 2px rgba(20,16,8,.05);
}
/* Campos leves: uma linha e nada mais. O relevo pesado disputava com a estampa. */
body.auth-login-page .auth-input-wrap input{
  border:1px solid rgba(20,40,66,.16);
  background:#fff;
  box-shadow:none;
}
body.auth-login-page .auth-input-wrap input:focus{
  border-color:#0b2a49;
  background:#fff;
  box-shadow:0 0 0 3px rgba(11,42,73,.12);
}
body.auth-login-page .auth-input-wrap svg{color:#8996a6}
body.auth-login-page .auth-input-wrap input::placeholder{color:#93a0ae}
body.auth-login-page .auth-security{color:#7d8a98}
body.auth-login-page .auth-remember{color:#3d4b5a}
body.auth-login-page .auth-remember>span{border-color:rgba(20,40,66,.28);background:#fff}

/* Acesso — a logo passa a viver dentro do disco, acima do título; sobre o marfim ela mantém o azul
   e o dourado da marca. Com ela lá dentro, o halo que abria espaço no canto perde a função, e os
   semicírculos do fundo saem para a mandala ficar sozinha. */
body.auth-login-page .auth-brand{display:none}
body.auth-login-page .auth-backdrop-orb{display:none}
body.auth-login-page .auth-panel-logo{
  display:block;
  height:auto;
}

/* Acesso — a marca assume o topo da hierarquia. A logo cresce e o título recua a rótulo: ele apenas
   nomeia a tela, quem se apresenta é a marca. */
body.auth-login-page .auth-login-panel h1{
  margin:0;
  line-height:1.2;
  text-transform:uppercase;
}
body.auth-login-page .auth-subtitle{
  color:#6c7887;
  font-size:clamp(.86rem,1vw,.95rem);
}

/* Com um texto só, o bloco lateral se apoia no alto em vez de distribuir espaço entre duas frases. */
body.auth-login-page .auth-manifesto{display:block;padding-top:clamp(6rem,14vh,9rem)}
body.auth-login-page .auth-manifesto p{position:static;margin:0}

/* Acesso — o respiro vertical enorme existia para a logo que ficava fora do disco. Com ela dentro,
   ele só empurrava o círculo para fora da tela depois da mudança de escala. */
body.auth-login-page .auth-login-main{
  min-height:100dvh;
  padding-block:clamp(.75rem,2.5vh,1.75rem);
  place-items:center;
}
body.auth-login-page .auth-orbit{
  width:min(var(--auth-orbit-d),calc(100dvh - 1.5rem));
}
body.auth-login-page .auth-login-panel{transform:none}

/* Em janela baixa o formulário também se comprime: campos e botão mais curtos, menos respiro. */
@media(max-height:860px){
  
  body.auth-login-page .auth-subtitle{margin:.35rem 0 1.15rem}
  body.auth-login-page .auth-input-wrap input{height:52px;min-height:52px}
  body.auth-login-page .auth-submit{height:52px;min-height:52px;margin-top:.7rem}
  body.auth-login-page .auth-security{margin-top:1rem}
  body.auth-login-page .auth-switch{margin-top:.7rem}
}
@media(max-height:760px){
  body.auth-login-page .auth-panel-logo{width:clamp(150px,13vw,190px);margin-bottom:.55rem}
  body.auth-login-page .auth-input-wrap input{height:46px;min-height:46px}
  body.auth-login-page .auth-submit{height:48px;min-height:48px}
  body.auth-login-page .auth-form{gap:.55rem}
}

/* Acesso — escala do login: nasce em 120% e encolhe por degraus na janela baixa (um círculo cortado é pior
   que um círculo um pouco menor). Só via --z: com zoom, 100dvh ainda mede a janela inteira e só depois é
   ampliado; sem dividir pelo fator, a página fica mais alta que a tela, cria rolagem e corta o disco. */
body.auth-login-page{--z:1.2;zoom:var(--z)}
@media(max-height:940px){body.auth-login-page{--z:1.08}}
@media(max-height:860px){body.auth-login-page{--z:1}}
@media(max-height:780px){body.auth-login-page{--z:.94}}
@media(max-height:700px){body.auth-login-page{--z:.88}}

body.auth-login-page{min-height:calc(100dvh / var(--z));overflow:hidden}
body.auth-login-page .auth-login-main{
  min-height:calc(100dvh / var(--z));
  height:calc(100dvh / var(--z));
  align-content:center;
}
body.auth-login-page .auth-orbit{
  top:50%;
  width:min(var(--auth-orbit-d),calc((100dvh / var(--z)) - 1.25rem));
}
body.auth-login-page .auth-backdrop{height:calc(100dvh / var(--z))}

/* Central e painel do afiliado — mesma escala da tela de acesso. Como no login, toda altura presa à
   janela é dividida pelo fator, senão o conteúdo fica mais alto que a tela e a barra lateral e as
   gavetas passam do rodapé. A rolagem das listas continua normal. */
body.admin-page,body.affiliate-page{zoom:var(--z)}

body.admin-page,body.admin-page .admin-shell{min-height:calc(100dvh / var(--z))}
body.admin-page .admin-sidebar{height:calc(100dvh / var(--z))}
body.affiliate-page .affiliate-shell,body.affiliate-page .shell{min-height:calc(100dvh / var(--z))}
body.affiliate-page .sidebar{height:calc(100dvh / var(--z))}
body.admin-page .settings-drawer,body.affiliate-page .settings-drawer{height:calc(100dvh / var(--z))}
body.admin-page .settings-layout,body.affiliate-page .settings-layout{height:calc(100dvh / var(--z))}
body.admin-page .operational-dialog,body.affiliate-page .operational-dialog{max-height:calc(100dvh / var(--z))}
/* Com escala abaixo de 1 (0,9 no computador) a altura sem divisão fica curta: o painel lateral de produtos
   parava a 90% da tela e parecia cortado. Toda altura presa à janela nos painéis passa pela escala. */
body.admin-page .operational-dialog,body.affiliate-page .operational-dialog{height:calc(100dvh / var(--z))}
body:is(.admin-page,.affiliate-page) dialog:not(.operational-dialog,.app-dialog,.logo-editor,.settings-drawer){max-height:calc(90vh / var(--z))}
body.admin-page .settings-main,body.affiliate-page .settings-main{height:calc((100dvh / var(--z)) - 112px)}
/* A régua A–Z nunca rola sozinha: todas as letras ficam à vista e o painel cresce junto (quem rola é a página). */
body.admin-page .list-alphabet,body.affiliate-page .list-alphabet{max-height:none}
body.affiliate-page{min-height:calc(100dvh / var(--z))}

/* Minha loja trava a tela inteira e divide a altura entre formulário e prévia; essas alturas também
   precisam descontar a escala, senão a prévia passa do rodapé. Vale para a régua A–Z do afiliado. */
body.affiliate-page[data-affiliate-section="minha-loja"] .affiliate-shell,
body.affiliate-page[data-affiliate-section="minha-loja"] .workspace,
body.affiliate-page[data-affiliate-section="minha-loja"] #resumo{height:calc(100dvh / var(--z))}
body.affiliate-page[data-affiliate-section="minha-loja"] .affiliate-storefront-workspace{height:calc((100dvh / var(--z)) - 12.5rem)}

/* Nos painéis a escala é fixa: diferente da tela de acesso, aqui a lista rola, então janela baixa
   não é motivo para encolher a interface. */
body.admin-page,body.affiliate-page{--z:1.2}
@media(max-height:940px){body.admin-page,body.affiliate-page{--z:1.2}}
@media(max-height:860px){body.admin-page,body.affiliate-page{--z:1.2}}
@media(max-height:780px){body.admin-page,body.affiliate-page{--z:1.2}}
/* Computador: 0,9 é a densidade aprovada pelo operador (o 1,2 anterior visto com o navegador em 75%),
   para ver o painel inteiro sem rolar. A loja segue com a própria escala (1,25); celular continua em 1,2. */
/* 29/09: o operador pediu o "110%" do navegador como novo 100%: 0,9 × 1,1 = 0,99. */
@media(min-width:981px){body.admin-page,body.affiliate-page{--z:.99}}

/* O retorno à central usa a mesma célula do "Sair": quem está de visita não fica sem saída. */
.affiliate-page .sidebar-back{display:flex;align-items:center;gap:.75rem;padding:.55rem .65rem;color:#edf4fb;text-decoration:none}
.affiliate-page .sidebar-back:hover{background:#173e67}

/* Painel visitado pela central — aviso no topo e controles inertes: quem olha não preenche à toa. */
.readonly-banner{grid-column:1/-1;margin:0;border-bottom:1px solid #d9c37a;background:#fdf6e0;padding:.65rem clamp(1rem,3vw,2rem);color:#6b5412;font-size:.82rem;font-weight:700}
.affiliate-page.is-readonly .workspace :where(input,select,textarea):disabled{background:#f3f5f8;color:#6b7683;cursor:not-allowed}
.affiliate-page.is-readonly .workspace button:disabled{opacity:.5;cursor:not-allowed}
/* Entrada discreta da vitrine para os painéis (central e afiliado). */
.store-footer .store-partner-link{width:max-content;margin-top:.6rem;border-bottom:1px solid currentColor;color:var(--store-on-brand,#fff);font-size:.75rem;font-weight:700;text-decoration:none;opacity:.78}.store-footer .store-partner-link:hover,.store-footer .store-partner-link:focus-visible{opacity:1}

/* Acesso — a marca lidera: logo recortada sem margem transparente e maior; o título vira rótulo discreto.
   Fica no fim do arquivo para valer sobre as regras de altura de janela acima. */
body.auth-login-page .auth-panel-logo{width:clamp(300px,27vw,390px);margin:0 auto 1.35rem}
body.auth-login-page .auth-login-panel h1{color:#6c7887;font-size:.72rem;font-weight:700;letter-spacing:.2em}
body.auth-login-page .auth-subtitle{margin:.35rem 0 1.6rem}
@media(max-height:860px){body.auth-login-page .auth-panel-logo{width:clamp(270px,24vw,340px);margin-bottom:1.1rem}}
@media(max-height:700px){body.auth-login-page .auth-panel-logo{width:clamp(240px,22vw,300px);margin-bottom:.9rem}}
@media(max-width:560px){body.auth-login-page .auth-panel-logo{width:min(78vw,300px)}}

/* Loja da central — anúncio "Seja um afiliado". Posição e visibilidade vêm da organização das seções. */
.storefront-page .affiliate-cta{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1.5rem 3rem;border-left:4px solid var(--store-accent,#C99332);background:var(--store-brand,#18324A);padding:clamp(1.5rem,4vw,2.75rem) clamp(1.25rem,4vw,3rem);color:var(--store-on-brand,#fff)}
.storefront-page .affiliate-cta h2{margin:.35rem 0 .6rem;color:var(--store-on-brand,#fff);font-size:clamp(1.5rem,2.6vw,2.2rem);line-height:1.1}
.storefront-page .affiliate-cta p{max-width:62ch;margin:0;color:var(--store-on-brand,#fff);opacity:.86}
.storefront-page .affiliate-cta-eyebrow{color:var(--store-accent,#C99332);font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.storefront-page .affiliate-cta-actions{display:grid;justify-items:center;gap:.7rem}
.storefront-page .affiliate-cta-actions .button{min-height:48px;padding:.75rem 1.6rem;font-weight:800}
.storefront-page .affiliate-cta-login{color:var(--store-on-brand,#fff);font-size:.82rem;font-weight:700;opacity:.8}
.storefront-page .affiliate-cta-login:hover{opacity:1}
@media(max-width:760px){.storefront-page .affiliate-cta{grid-template-columns:1fr}.storefront-page .affiliate-cta-actions{justify-items:stretch;text-align:center}}

/* Acesso da central: sem "lembrar de mim", o link de ajuda ocupa a linha sozinho à direita. */
body.auth-login-page .auth-options.is-admin{justify-content:flex-end}

/* Especificações da logo, recolhidas por padrão para não empurrar o formulário. */
.store-logo-guide{margin:.2rem 0 .8rem;border:1px solid #d4dde7;background:#f8fafc}
.store-logo-guide summary{cursor:pointer;padding:.6rem .75rem;color:#0b2745;font-size:.8rem;font-weight:800}
.store-logo-guide dl{display:grid;gap:0;margin:0;border-top:1px solid #d4dde7}
.store-logo-guide dl>div{display:grid;grid-template-columns:6.5rem minmax(0,1fr);gap:.75rem;border-bottom:1px solid #e5ebf1;padding:.55rem .75rem}
.store-logo-guide dl>div:last-child{border-bottom:0}
.store-logo-guide dt{color:#294760;font-size:.74rem;font-weight:800}
.store-logo-guide dd{margin:0;color:#405d76;font-size:.76rem;line-height:1.45}
@media(max-width:560px){.store-logo-guide dl>div{grid-template-columns:1fr;gap:.2rem}}

/* Topo com logo — referência de marketplace: a logo ocupa quase toda a faixa, e a faixa não cresce.
   62 px de faixa = 5 px + 52 px de logo + 5 px. O recorte automático no envio tira a margem vazia do arquivo. */
.storefront-page.has-store-logo .store-header-main{padding-block:5px}
.storefront-page.has-store-logo .store-brand{display:flex;height:calc(var(--store-header-height) - 10px);align-items:center}
.storefront-page.has-store-logo .store-brand img{height:100%;max-width:min(320px,34vw);object-position:left center}
.checkout-page .checkout-brand img{height:52px;max-width:260px;object-position:left center}
@media(max-width:760px){.storefront-page.has-store-logo .store-brand{height:46px}.storefront-page.has-store-logo .store-brand img{max-width:58vw}}
/* Com logo, a imagem substitui o nome; a assinatura configurada continua visível ao lado dela (a prévia do editor segue a mesma regra). */
.storefront-page.has-store-logo .store-brand{gap:.7rem}
.storefront-page.has-store-logo .store-brand small{align-self:center;border-left:1px solid color-mix(in srgb,var(--store-on-brand,#fff) 35%,transparent);padding-left:.7rem;white-space:nowrap}
@media(max-width:560px){.storefront-page.has-store-logo .store-brand small{display:none}}
.storefront-preview-brand.has-logo strong{display:none}
/* Topo sem logo: o nome da loja manda e a assinatura acompanha menor. Entrelinha justa para a faixa não crescer
   (a altura do topo é fixa; o nome cabe nela com folga). */
.storefront-page:not(.has-store-logo) .store-brand strong{font-size:1.4rem;line-height:1.05;letter-spacing:-.02em}
.storefront-page:not(.has-store-logo) .store-brand small{margin-top:.15rem}
@media(max-width:760px){.storefront-page:not(.has-store-logo) .store-brand strong{font-size:1.15rem}}
/* Checkout, entrar/cadastrar e Minha conta seguem o topo da loja: com logo, o nome sai (fica só para leitor de tela)
   e a assinatura configurada aparece ao lado da logo, com o mesmo divisor. */
.checkout-brand:has(>img)>span strong{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.checkout-brand:has(>img)>span small{margin:0;border-left:1px solid color-mix(in srgb,var(--store-on-brand,#fff) 35%,transparent);padding-left:.7rem;white-space:nowrap}
@media(max-width:560px){.checkout-brand:has(>img)>span small{display:none}}
/* Editor da loja: controle ligado que não vai aparecer na loja diz o porquê. */

/* Checkout: situação da busca do endereço pelo CEP, logo abaixo do campo. */
.checkout-cep-status{display:block;min-height:1.1em;margin-top:.25rem;color:var(--store-muted,#586f86);font-size:.72rem;font-weight:600;line-height:1.35;text-transform:none;letter-spacing:0}
.checkout-cep-status.error{color:#a3261b}
.checkout-cep-status:empty{display:none}
/* "Calcular frete" com a altura do campo de CEP ao lado: o aviso do CEP saiu do rótulo e virou linha própria abaixo. */
.checkout-fields>[data-quote]{min-height:0;padding-block:.65rem;line-height:18px}
.checkout-fields>.checkout-cep-status{margin-top:-.35rem}
/* Editor da loja: cada bloco leva a prévia até a parte dele. O título ganha "Ver na prévia"; passar o mouse
   contorna o bloco; o bloco mostrado na prévia fica marcado com a barra dourada. */
.affiliate-storefront-form fieldset[data-preview-target]{cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease}
.affiliate-storefront-form fieldset[data-preview-target] :is(input,textarea,select,button,label){cursor:auto}
.affiliate-storefront-form fieldset[data-preview-target] :is(button,label,[role="switch"]){cursor:pointer}
.affiliate-storefront-form fieldset[data-preview-target]:hover{border-color:#dcae28}
.affiliate-storefront-form fieldset[data-preview-target].is-previewing{border-color:#dcae28;box-shadow:inset 4px 0 0 #dcae28}
.affiliate-storefront-form fieldset[data-preview-target]>legend{display:inline-flex;align-items:center;gap:.5rem}
/* Os botões de ordenar das seções (44×44, seta girada no span) não valem para o "Ver na prévia". */
.affiliate-storefront-form .preview-jump{width:auto;min-width:0;height:auto;min-height:0;place-items:initial;transform:none}
.affiliate-storefront-form .preview-jump span{width:auto;height:auto;border:0;transform:none;white-space:nowrap}
.affiliate-storefront-form .preview-jump:hover:not(:disabled){transform:none}
.affiliate-storefront-form .preview-jump{display:inline-flex;align-items:center;gap:.3rem;border:1px solid #c9a646;border-radius:999px!important;background:#fff8e1;padding:.12rem .5rem .12rem .4rem;color:#6d5200;font:inherit;font-size:.66rem;font-weight:800;letter-spacing:.02em;line-height:1.4;cursor:pointer;transition:background-color .18s ease,color .18s ease,border-color .18s ease}
.preview-jump svg{width:.9rem;height:.9rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.affiliate-storefront-form fieldset[data-preview-target]:hover .preview-jump,.preview-jump:focus-visible,.affiliate-storefront-form fieldset.is-previewing .preview-jump{border-color:#0b2745;background:#0b2745;color:#f3c64a}
.preview-jump:focus-visible{outline:2px solid #dcae28;outline-offset:2px}
.affiliate-storefront-form fieldset.is-previewing .preview-jump span:after{content:" · em exibição"}
/* Editor da loja: textos opcionais com interruptor (ligado mostra o campo e o texto na loja). */
.storefront-optional-field{display:grid;gap:.45rem;margin-top:.85rem;border-top:1px solid #e3e9f0;padding-top:.75rem}
.storefront-optional-field:first-of-type{margin-top:.25rem}
.storefront-optional-field>.switch-label{display:flex;align-items:center;gap:.55rem;color:#0b2745;font-size:.8rem;font-weight:800}
.storefront-optional-body{display:grid;gap:.5rem}
.storefront-optional-body[hidden]{display:none}
.storefront-optional-body>small{color:#586f86;font-size:.7rem;line-height:1.4}
.storefront-field-note{margin:-.2rem 0 .4rem;border-left:3px solid #0b2745;background:#eef3f8;padding:.45rem .6rem;color:#0b2745;font-size:.74rem;font-weight:700;line-height:1.4}
.storefront-field-note[hidden]{display:none}
.affiliate-storefront-form label.is-readonly input{border-color:#d8e1ea;background:#f1f4f7;color:#294760;cursor:default}
/* A logo mora dentro de Identidade: sem moldura própria, só uma divisória. */
.store-logo-field.is-nested{min-width:0;margin:.85rem 0 0;border:0;border-top:1px solid #e3e9f0;padding:.75rem 0 0}
.store-logo-field.is-nested>legend{float:left;width:100%;margin-bottom:.35rem;padding:0;color:#0b2745;font-size:.8rem;font-weight:800}
.store-logo-field.is-nested>legend+*{clear:both}
/* Vídeo da seção "Vídeo": envio de arquivo dentro de Seções públicas, sem moldura própria. */

/* Loja: vídeo da seção "Vídeo" com controles, na largura do conteúdo. */

/* Loja: título e descrição junto do banner. Estreito fica ao lado; largo ganha uma faixa sobre a imagem. */
.storefront-page .store-hero.has-hero-copy.has-hero-banner:not(.has-hero-wide){grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);justify-items:stretch;padding-inline:clamp(1.25rem,4vw,4rem)}
.storefront-page .store-hero.has-hero-wide.has-hero-copy{position:relative}
.storefront-page .store-hero.has-hero-wide>.store-hero-copy{position:absolute;z-index:3;left:clamp(1rem,4vw,4rem);bottom:clamp(1rem,4vw,3rem);max-width:min(34rem,55%);padding:clamp(1rem,2vw,1.6rem) clamp(1.1rem,2.2vw,1.9rem);background:color-mix(in srgb,var(--store-brand,#0b2745) 88%,transparent)}
.storefront-page .store-hero.has-hero-wide>.store-hero-copy h1{margin:.55rem 0;font-size:clamp(1.7rem,3.2vw,3rem)}
.storefront-page .store-hero.has-hero-wide>.store-hero-copy p{margin:0 0 .9rem}
@media(max-width:760px){.storefront-page .store-hero.has-hero-wide>.store-hero-copy{position:relative;left:auto;bottom:auto;max-width:none}}
.store-home-anchor{height:0}
/* Conteúdo institucional na loja do afiliado: preenchido pela central, só leitura. */
.storefront-institutional-editor.is-central-content :is(input,textarea){border-color:#d8e1ea;background:#f1f4f7;color:#294760;cursor:default;opacity:1;-webkit-text-fill-color:#294760}
.storefront-institutional-editor.is-central-content .fieldset-note{border-left:3px solid #0b2745;background:#eef3f8;padding:.45rem .6rem;color:#0b2745;font-weight:700}
/* Prévia real da loja: a página publicada em largura de computador (1280 px), reduzida para caber na coluna. */
.affiliate-live-preview{display:flex;flex-direction:column}
.storefront-live-frame{position:relative;flex:1 1 auto;min-height:440px;overflow:hidden;border:1px solid #c8d5e1;background:#fff}
.storefront-live-frame iframe{position:absolute;top:0;left:0;border:0;background:#fff;transform-origin:0 0}
.storefront-live-frame iframe.is-loading{visibility:hidden}
.storefront-live-status{position:absolute;inset:0;display:grid;place-items:center;margin:0;padding:1rem;color:#586f86;font-size:.8rem;font-weight:700;text-align:center}
.storefront-live-status[hidden]{display:none}
/* Ponto da loja ligado ao bloco que está sendo editado: contorno grosso e pulsante, legível mesmo com a prévia reduzida. */
.storefront-page[data-store-preview] .is-preview-focus{outline:6px solid var(--store-accent,#c99332);outline-offset:4px;animation:preview-focus-pulse 1.1s ease-in-out 2}
.storefront-page[data-store-preview] .store-header .is-preview-focus{outline-offset:-6px}
@keyframes preview-focus-pulse{0%,100%{outline-color:var(--store-accent,#c99332)}50%{outline-color:color-mix(in srgb,var(--store-accent,#c99332) 25%,transparent)}}
/* Interruptor ligado que não aparece na loja: "!" âmbar piscante ao lado do nome; o motivo fica no balão. */
.availability-warning[hidden]{display:none}
.availability-warning .context-help-trigger{display:inline-grid;width:1.15rem;height:1.15rem;place-items:center;border:0;border-radius:50%;background:#d98a00;padding:0;color:#fff;font:inherit;font-size:.78rem;font-weight:900;line-height:1;cursor:help;animation:availability-blink 1.4s ease-in-out infinite}
.availability-warning .context-help-trigger:focus-visible{outline:2px solid #0b2745;outline-offset:2px}
.availability-warning[data-open] .context-help-trigger,.availability-warning:hover .context-help-trigger{animation:none}
/* Os botões de ordem das seções (44×44) não valem para o "!": ele continua um círculo pequeno. */
.storefront-section-editor .availability-warning .context-help-trigger{width:1.15rem;min-width:1.15rem;height:1.15rem;min-height:0;border:0;border-radius:50%;background:#d98a00;color:#fff;transform:none}
.storefront-section-editor .availability-warning .context-help-trigger:hover{background:#b87400;color:#fff}
.availability-warning{align-self:center}
/* Balão que não cabe acima (topo da coluna com rolagem) abre abaixo do ícone. */
.context-help.is-below .context-help-tooltip{top:calc(100% + 9px);bottom:auto}
.context-help.is-below .context-help-tooltip:after{top:auto;bottom:100%;transform:translate(-50%,4px) rotate(225deg)}
.availability-warning .context-help-tooltip{text-transform:none;letter-spacing:normal;white-space:normal}
@keyframes availability-blink{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(217,138,0,.55)}50%{opacity:.45;box-shadow:0 0 0 5px rgba(217,138,0,0)}}
@media(prefers-reduced-motion:reduce){.availability-warning .context-help-trigger{animation:none}}

/* Avisos da aplicação — substituem alert/confirm do navegador. Identidade da central (marinho, ouro, Outfit);
   nas vitrines as variáveis --store-* trocam para a paleta da loja. */
.app-dialog{width:min(440px,calc(100% - 2rem));margin:auto;border:0;border-top:4px solid var(--store-accent,#d4a72c);border-radius:0;background:#fff;padding:0;color:#0b2745;font-family:inherit;box-shadow:0 24px 64px rgba(6,22,40,.32)}
.app-dialog::backdrop{background:rgba(6,22,40,.55);backdrop-filter:blur(2px)}
.app-dialog[open]{animation:app-dialog-in .16s cubic-bezier(.2,.8,.2,1)}
@keyframes app-dialog-in{from{opacity:0;transform:translateY(8px) scale(.98)}}
@media(prefers-reduced-motion:reduce){.app-dialog[open]{animation:none}}
.app-dialog-body{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1rem;padding:1.4rem 1.4rem 1.1rem}
#app-dialog-message{overflow-wrap:anywhere;user-select:text}
.app-dialog-mark{display:grid;width:40px;height:40px;place-items:center;border-radius:50%;background:#fbf3dc;color:#8a6a1c}
.app-dialog-mark::before{content:"!";font-size:1.25rem;font-weight:900;line-height:1}
.app-dialog[data-tone="error"] .app-dialog-mark,.app-dialog[data-tone="danger"] .app-dialog-mark{background:#fdecea;color:#a3261b}
.app-dialog h2{margin:.15rem 0 .4rem;color:var(--store-brand,#0b2745);font-size:1.05rem;font-weight:800;letter-spacing:-.01em}
.app-dialog p{margin:0;color:#405d76;font-size:.9rem;line-height:1.5;white-space:pre-line}
.app-dialog-actions{display:flex;justify-content:flex-end;gap:.6rem;border-top:1px solid #e3e9f0;background:#f7f9fb;padding:.85rem 1.4rem}
.app-dialog-actions button{min-height:42px;border-radius:0;padding:.55rem 1.1rem;font:inherit;font-size:.85rem;font-weight:800;cursor:pointer}
.app-dialog-cancel{border:1px solid #c8d5e1;background:#fff;color:#294760}
.app-dialog-cancel:hover{background:#eef3f8}
.app-dialog-confirm{border:1px solid var(--store-brand,#0b2745);background:var(--store-brand,#0b2745);color:var(--store-on-brand,#fff)}
.app-dialog-confirm:hover{filter:brightness(1.15)}
.app-dialog[data-tone="danger"] .app-dialog-confirm{border-color:#a3261b;background:#a3261b;color:#fff}
.app-dialog-actions button:focus-visible{outline:3px solid var(--store-accent,#d4a72c);outline-offset:2px}
@media(max-width:480px){.app-dialog-actions{flex-direction:column-reverse}.app-dialog-actions button{width:100%}}

/* Editor da logo: enquadrar a imagem em vez de exigir o arquivo na medida. */
.logo-editor{width:min(820px,calc(100% - 1.5rem));max-height:calc(100dvh - 1.5rem);margin:auto;overflow:auto;border:0;border-top:4px solid #d4a72c;border-radius:0;background:#fff;padding:0;color:#0b2745;font-family:inherit;box-shadow:0 24px 64px rgba(6,22,40,.32)}
.logo-editor::backdrop{background:rgba(6,22,40,.6)}
.logo-editor-head{padding:1.2rem 1.4rem .6rem}
.logo-editor-head h2{margin:0 0 .3rem;font-size:1.1rem;font-weight:800}
.logo-editor-head p{max-width:66ch;margin:0;color:#405d76;font-size:.86rem;line-height:1.5}
.logo-editor-stage{display:grid;place-items:center;margin:0 1.4rem;border:1px solid #d4dde7;padding:.75rem;background-color:#eef2f6;background-image:linear-gradient(45deg,#dfe6ee 25%,transparent 25%),linear-gradient(-45deg,#dfe6ee 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#dfe6ee 75%),linear-gradient(-45deg,transparent 75%,#dfe6ee 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0}
.logo-editor-stage canvas{display:block;max-width:100%;touch-action:none}
.logo-editor-tools{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.8rem 1.4rem}
.logo-editor-tools button{min-height:38px;border:1px solid #c8d5e1;border-radius:0;background:#fff;padding:.45rem .85rem;color:#0b2745;font:inherit;font-size:.8rem;font-weight:800;cursor:pointer}
.logo-editor-tools button:hover{background:#eef3f8}

.logo-editor-tools output{margin-left:auto;color:#586f86;font-size:.76rem;font-weight:700;font-variant-numeric:tabular-nums}
.logo-editor-preview{margin:0 1.4rem}
.logo-editor-preview>span{display:block;margin-bottom:.35rem;color:#294760;font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.logo-editor-bar{display:flex;height:62px;align-items:center;gap:1.25rem;padding:0 1rem}
.logo-editor-bar canvas{display:block;flex:0 0 auto}
.logo-editor-bar i{height:12px;flex:1;max-width:220px;background:rgba(255,255,255,.18)}
.logo-editor-bar i:last-child{max-width:90px}
.logo-editor-warning{min-height:1.2em;margin:0 1.4rem;color:#0b5a3a;font-size:.82rem;font-weight:700}
.logo-editor-warning.is-problem{color:#a3261b}
.logo-editor-tools [data-logo-remove-bg]{border-color:#936c00;background:#dcae28}
.logo-editor-tools [data-logo-remove-bg]:hover{background:#ebc34c}
.logo-editor-tools button[hidden]{display:none}
.logo-editor-warning:empty{display:none}
.logo-editor-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1rem;border-top:1px solid #e3e9f0;background:#f7f9fb;padding:.85rem 1.4rem}
.logo-editor-actions button{min-height:42px;border-radius:0;padding:.55rem 1.1rem;font:inherit;font-size:.85rem;font-weight:800;cursor:pointer}
.logo-editor-actions button:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:560px){.logo-editor-tools output{width:100%;margin-left:0}.logo-editor-actions{flex-direction:column-reverse}.logo-editor-actions button{width:100%}}

/* Loja — escala padrão 1,1 no computador: a densidade aprovada pelo operador era 1,0 (o 1,25 anterior visto com o
   navegador em 80%); em 29/09 ele pediu o "110%" do navegador como novo 100%. Mesma técnica da central (--z): altura
   presa à janela divide pelo fator, senão a página fica mais alta que a tela. No celular a escala é 1: o layout
   estreito já foi desenhado no tamanho certo. */
@media(min-width:1100px){
  body.storefront-page,body.checkout-page{--z:1.1;zoom:var(--z)}
  body.storefront-page{min-height:calc(100dvh / var(--z))}
  body.checkout-page{min-height:calc(100dvh / var(--z))}
  
  
  body.storefront-page .store-empty{min-height:calc(80vh / var(--z))}
}
/* Minha loja dentro da central (já em zoom 1,2): o editor cabe na janela. */
.house-store-editor .affiliate-storefront-workspace{height:calc((100dvh / var(--z, 1)) - 13rem);min-height:480px;overflow:hidden}
/* As duas colunas rolam por dentro, como no painel do afiliado: a página não estica nem sobra vão embaixo. */
/* position:relative: rótulos só para leitor de tela (absolutos) ficam presos à coluna e não esticam a página. */
.house-store-editor .affiliate-storefront-form,.house-store-editor .affiliate-live-preview{position:relative;height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain}
@media(max-width:980px){.house-store-editor .affiliate-storefront-workspace{height:auto;overflow:visible}.house-store-editor .affiliate-storefront-form,.house-store-editor .affiliate-live-preview{height:auto;overflow:visible}}

/* Afiliados: abas "Na operação" e "Arquivados", cada uma com a lista completa (busca, A–Z, paginação). */
.admin-page .link-button.danger-link{color:#a3261b}
.admin-page .access-links .link-button{margin-left:.35rem}
.directory-views{display:flex;gap:.25rem;margin:0 0 .2rem;border-bottom:1px solid #c8d5e1}
.directory-views button{display:inline-flex;align-items:center;gap:.45rem;margin-bottom:-1px;border:0;border-bottom:3px solid transparent;background:none;padding:.55rem .9rem;color:#586f86;font:inherit;font-weight:800;cursor:pointer}
.directory-views button:hover{color:#0b2745}
.directory-views button[aria-selected="true"]{border-bottom-color:#dcae28;color:#0b2745}
.directory-views button:focus-visible{outline:2px solid #0b2745;outline-offset:-2px}
.directory-views span{min-width:1.6rem;border-radius:999px;background:#eef3f8;padding:.1rem .5rem;color:#294760;font-size:.75rem;text-align:center}
.directory-views button[aria-selected="true"] span{background:#0b2745;color:#efc23f}
.directory-view[hidden]{display:none}
.archived-affiliates-note{margin:.6rem 0 0;color:#586f86;font-size:.82rem}
.archived-affiliates td small{display:block;color:#586f86}

/* Vitrine sem a régua A–Z: o catálogo ocupa a coluna que era dela. */
.storefront-page .storefront-catalog-directory{grid-template-columns:minmax(0,1fr)}
.storefront-page .storefront-catalog-directory>:first-child{grid-row:auto}

/* Editor da logo — imagem com fundo: orienta a ferramenta própria em vez de um recorte automático ruim. */
.logo-editor-notice{margin:.4rem 1.4rem 0;border-left:4px solid #d4a72c;background:#fbf6e7;padding:.8rem 1rem;color:#3b3524;font-size:.84rem;line-height:1.5}
.logo-editor-notice[hidden]{display:none}
.logo-editor-notice strong{color:#0b2745}
.logo-editor-notice p{margin:.25rem 0 .4rem}
.logo-editor-notice ol{margin:0;padding-left:1.2rem}
.logo-editor-notice a,.store-logo-guide a{color:#0b4b7d;font-weight:800}
/* O contêiner usa .affiliate-page só para herdar o estilo do editor; a altura mínima de página inteira não vale aqui. */
.admin-page .house-store-editor{min-height:0;background:none}

/* Minha loja ocupa a janela inteira: cabeçalho compacto no alto e o editor preenchendo o resto,
   com formulário e prévia rolando por dentro. Só vale com este módulo aberto (:has). */
.admin-page main.workspace:has(.house-store-module.active){display:flex;height:calc(100dvh / var(--z, 1));flex-direction:column;overflow:hidden}
.admin-page main.workspace:has(.house-store-module.active)>.admin-content{display:flex;flex:1;min-height:0;flex-direction:column}
.admin-page .house-store-module.active{display:flex;flex:1;min-height:0;flex-direction:column;padding-bottom:.75rem}
.admin-page .house-store-module>.page-heading{flex:0 0 auto;margin-bottom:.6rem}
.admin-page .house-store-module>.page-heading p{margin-top:.35rem}
.admin-page .house-store-module .house-store-editor{display:flex;flex:1;min-height:0;flex-direction:column}
.admin-page .house-store-editor #minha-loja{display:flex;flex:1;min-height:0;flex-direction:column;margin:0;padding:0}
.admin-page .house-store-editor #minha-loja>h2{display:none}
.admin-page .house-store-editor .affiliate-storefront-workspace{flex:1;height:auto;min-height:0;margin:0}
@media(max-width:980px){.admin-page main.workspace:has(.house-store-module.active){height:auto;overflow:visible}.admin-page .house-store-editor .affiliate-storefront-workspace{flex:none}}
/* Na pilha em coluna, conteúdo e módulo mantêm a largura toda (sem isto encolhem para o centro). */
.admin-page main.workspace:has(.house-store-module.active)>.admin-content,.admin-page .house-store-module.active{width:100%;box-sizing:border-box}

/* Editor da logo cabe na janela mesmo com o zoom da página (a central usa 1,2): altura dividida pelo
   fator, conteúdo rolando por dentro e as ações presas ao rodapé, sempre à vista. */
.logo-editor{max-height:calc((100dvh / var(--z, 1)) - 1.5rem);overflow-y:auto;overscroll-behavior:contain}
.logo-editor-actions{position:sticky;bottom:0;z-index:1}
.app-dialog{max-height:calc((100dvh / var(--z, 1)) - 2rem);overflow-y:auto}

/* Faixa de navegação da loja (Início, Catálogo, Ofertas…) mais baixa: menos respiro, mesmo alvo de clique útil. */
.storefront-page .store-header nav{min-height:0;padding-block:.1rem}
.storefront-page .store-header nav a{min-height:0;padding-block:.35rem;line-height:1.2}

/* Minha loja: o complemento vai na linha do título, e a altura que sobra fica para o editor. */
.admin-page .house-store-heading h1{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .9rem}
.admin-page .house-store-heading .heading-note{color:#586f86;font-size:.875rem;font-weight:500;letter-spacing:0}
.admin-page .house-store-heading .heading-note a{color:#0b4b7d;font-weight:700}

/* Cartão de produto cabe inteiro na janela (foto, nome, preço e ação), mesmo na escala de 125%:
   foto 4:3 com altura presa à janela, descrição em até 2 linhas e respiro menor. */
.storefront-page :is(.product-grid,.product-rail)>.product .product-media{aspect-ratio:4/3;max-height:clamp(150px,calc((100dvh / var(--z, 1)) - 23rem),300px)}
.storefront-page :is(.product-grid,.product-rail)>.product .product-body{padding-top:.6rem}
.storefront-page :is(.product-grid,.product-rail)>.product .product-body h3{min-height:0;margin-block:.2rem .35rem}
.storefront-page :is(.product-grid,.product-rail)>.product .product-body>p{min-height:0;margin-block:0 .5rem;-webkit-line-clamp:2}
/* Preço nunca quebra entre o "R$" e o valor. */
.storefront-page .product-footer>div:first-child :is(strong,del,span){white-space:nowrap}

/* A primeira seção encosta no topo da loja (banner, vídeo ou texto): o respiro entre seções não vale aqui. */
.storefront-page .store-hero+.store-section{padding-top:.75rem}

/* Carrossel do topo — só a troca: esmaece e desliza de leve. Sem aproximação (o "drift" até 103,5%
   ampliava a imagem e tirava nitidez), sem desfoque e sem giro; a imagem fica sempre em 100%. */
.store-hero-banner-track>img,.store-hero-banner-link{transform:translate3d(4%,0,0);filter:none;transition:opacity var(--hero-leave) var(--hero-ease),transform var(--hero-leave) var(--hero-ease)}
.store-hero-banner-track>img.is-active,.store-hero-banner-link.is-active,
[data-hero-banner-direction="backward"] .store-hero-banner-track>img.is-active,[data-hero-banner-direction="backward"] .store-hero-banner-link.is-active{transform:none;filter:none;animation:none;scale:1}
.store-hero-banner-track>img.is-leaving,.store-hero-banner-link.is-leaving{transform:translate3d(-4%,0,0);filter:none}
[data-hero-banner-direction="backward"] .store-hero-banner-track>img,[data-hero-banner-direction="backward"] .store-hero-banner-link{transform:translate3d(-4%,0,0)}
[data-hero-banner-direction="backward"] .store-hero-banner-track>img.is-leaving,[data-hero-banner-direction="backward"] .store-hero-banner-link.is-leaving{transform:translate3d(4%,0,0)}
@media(prefers-reduced-motion:reduce){.store-hero-banner-track>img,.store-hero-banner-link,.store-hero-banner-track>img.is-leaving,.store-hero-banner-link.is-leaving,[data-hero-banner-direction="backward"] .store-hero-banner-track>img,[data-hero-banner-direction="backward"] .store-hero-banner-link{transform:none;transition:opacity 320ms ease}}

/* Fonte da loja, escolhida no editor (StorefrontLayout::FONTS): fontes livres (OFL) que grandes lojas usam,
   hospedadas em assets/fonts porque a política de segurança não carrega fonte de terceiros. Cada arquivo só
   baixa na loja que escolhe a fonte. A regra alcança toda a página da loja, inclusive títulos que fixavam a Outfit. */
@font-face{font-family:"Nunito";font-style:normal;font-weight:200 1000;font-display:swap;src:url("fonts/nunito-latin-wght-normal.woff2") format("woff2")}
@font-face{font-family:"Roboto";font-style:normal;font-weight:100 900;font-display:swap;src:url("fonts/roboto-latin-wght-normal.woff2") format("woff2")}
@font-face{font-family:"Figtree";font-style:normal;font-weight:300 900;font-display:swap;src:url("fonts/figtree-latin-wght-normal.woff2") format("woff2")}
@font-face{font-family:"Mulish";font-style:normal;font-weight:200 1000;font-display:swap;src:url("fonts/mulish-latin-wght-normal.woff2") format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/poppins-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:500;font-display:swap;src:url("fonts/poppins-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:600;font-display:swap;src:url("fonts/poppins-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:700;font-display:swap;src:url("fonts/poppins-latin-700-normal.woff2") format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:800;font-display:swap;src:url("fonts/poppins-latin-800-normal.woff2") format("woff2")}
body.store-font-nunito{--store-font:"Nunito",Arial,sans-serif}
body.store-font-roboto{--store-font:"Roboto",Arial,sans-serif}
body.store-font-poppins{--store-font:"Poppins",Arial,sans-serif}
body.store-font-figtree{--store-font:"Figtree",Arial,sans-serif}
body.store-font-mulish{--store-font:"Mulish",Arial,sans-serif}
body:is(.store-font-nunito,.store-font-roboto,.store-font-poppins,.store-font-figtree,.store-font-mulish),body:is(.store-font-nunito,.store-font-roboto,.store-font-poppins,.store-font-figtree,.store-font-mulish) :where(*:not(svg):not(svg *)){font-family:var(--store-font)!important}
/* Prévia do editor acompanha a escolha antes de salvar. */
.storefront-preview-canvas[data-store-font="nunito"],.storefront-preview-canvas[data-store-font="nunito"] *{font-family:"Nunito",Arial,sans-serif!important}
.storefront-preview-canvas[data-store-font="roboto"],.storefront-preview-canvas[data-store-font="roboto"] *{font-family:"Roboto",Arial,sans-serif!important}
.storefront-preview-canvas[data-store-font="poppins"],.storefront-preview-canvas[data-store-font="poppins"] *{font-family:"Poppins",Arial,sans-serif!important}
.storefront-preview-canvas[data-store-font="figtree"],.storefront-preview-canvas[data-store-font="figtree"] *{font-family:"Figtree",Arial,sans-serif!important}
.storefront-preview-canvas[data-store-font="mulish"],.storefront-preview-canvas[data-store-font="mulish"] *{font-family:"Mulish",Arial,sans-serif!important}
/* Seletor de fonte no editor: cada opção escrita na própria fonte. */
.storefront-font-options{display:grid;gap:.5rem}
.storefront-font-option[data-font="nunito"] strong{font-family:"Nunito",Arial,sans-serif}
.storefront-font-option[data-font="roboto"] strong{font-family:"Roboto",Arial,sans-serif}
.storefront-font-option[data-font="poppins"] strong{font-family:"Poppins",Arial,sans-serif}
.storefront-font-option[data-font="figtree"] strong{font-family:"Figtree",Arial,sans-serif}
.storefront-font-option[data-font="mulish"] strong{font-family:"Mulish",Arial,sans-serif}
.storefront-font-option{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.7rem;border:1px solid #c8d5e1;background:#fff;padding:.65rem .8rem;cursor:pointer}
.storefront-font-option:has(input:checked){border-color:#0b2745;box-shadow:inset 3px 0 0 #d4a72c}
.storefront-font-option input{width:18px;height:18px;margin:0;accent-color:#0b2745}
.storefront-font-option strong{display:block;color:#0b2745;font-size:1.05rem;font-weight:700}
.storefront-font-option small{display:block;margin-top:.1rem;color:#586f86;font-size:.75rem}
.storefront-font-editor.is-locked .storefront-font-option{cursor:not-allowed;opacity:.6}

/* Avatar ilustrado do comprador (partes de react-nice-avatar, MIT): posicao das pecas em classes, sem style. */
.na{position:relative;display:inline-block;overflow:hidden;border-radius:50%;flex:0 0 auto;aspect-ratio:1}
.na>.na-inner{position:absolute;bottom:0;left:0;width:100%;height:90%}
.na svg{display:block}
.na .na-detail{position:absolute;right:-3%;top:30%;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}
.na .na-face-default{width:100%;height:100%;left:0;top:0;position:absolute}
.na .na-hair-mohawk{position:absolute;bottom:40.8%;width:97.6%;height:63.5%;left:-1.8%}
.na .na-hair-normal{position:absolute;bottom:20%;width:94%;height:81%;left:-0.5%}
.na .na-hair-thick{position:absolute;bottom:40.2%;width:93.5%;height:64%}
.na .na-hair-womanLong{position:absolute;bottom:-2.2%;width:97%;height:100%}
.na .na-hair-womanShort{position:absolute;bottom:25%;width:92%;height:75%;left:-0.8%}
.na .na-hat-beanie{position:absolute;bottom:34%;width:49%;height:85%;left:22%}
.na .na-hat-turban{position:absolute;bottom:33%;left:15.8%;width:64%;height:84%}
.na .na-ear-big{position:absolute;width:16%;height:15%;top:13%;left:19%}
.na .na-ear-small{position:absolute;width:16%;height:15%;top:13%;left:19.8%}
.na .na-eyebrow-up{position:absolute;width:80%;height:13%;top:0}
.na .na-eyebrow-upWoman{position:absolute;width:80%;height:13%;top:0}
.na .na-eyes-circle{width:100%;height:12%;position:absolute;top:7%}
.na .na-eyes-oval{width:100%;height:12%;position:absolute;top:6%}
.na .na-eyes-smile{width:100%;height:14%;position:absolute;top:6%}
.na .na-glasses-round{width:100%;height:20%;position:absolute;top:1.5%;left:-3%}
.na .na-glasses-square{width:100%;height:22%;position:absolute;top:0.5%;left:-3%}
.na .na-nose-long{width:10%;height:10%;position:absolute;top:15%;left:46%}
.na .na-nose-round{width:10%;height:10%;position:absolute;top:15%;left:46%}
.na .na-nose-short{width:10%;height:10%;position:absolute;top:15%;left:46%}
.na .na-mouth-laugh{width:50%;height:19%;position:absolute;top:23%;right:23%}
.na .na-mouth-peace{width:50%;height:19%;position:absolute;top:23%;right:23%}
.na .na-mouth-smile{width:50%;height:17%;position:absolute;top:23%;right:23%}
.na .na-shirt-hoody{position:absolute;bottom:-2%;width:98%;height:26%}
.na .na-shirt-polo{position:absolute;bottom:-2%;width:98%;height:26%;left:-0.2%}
.na .na-shirt-short{position:absolute;bottom:-2.5%;width:100%;height:26%}
.na .na-bg{position:absolute;inset:0;width:100%;height:100%}
.na.na-sm{width:32px}.na.na-md{width:48px}.na.na-lg{width:96px}.na.na-xl{width:160px}

/* Minha conta em seções: menu lateral com avatar no desktop, faixa de atalhos rolável no celular. */
.customer-shell{display:grid;grid-template-columns:240px minmax(0,1fr);align-items:start;gap:2rem;max-width:1080px;margin:0 auto;padding:2rem 1.25rem 4rem}
.customer-shell>.customer-main{max-width:none;margin:0;padding:0;gap:1.1rem;min-width:0}
.customer-shell>.customer-main:focus{outline:0}
.customer-sidebar{position:sticky;top:1.25rem;display:grid;gap:1rem;border:1px solid #d3dde7;background:#fff;padding:1.25rem 1rem}
.customer-identity{display:grid;justify-items:center;gap:.7rem;border-bottom:1px solid #e3eaf1;padding-bottom:1rem;color:inherit;text-align:center;text-decoration:none}
.customer-identity>span{display:grid;gap:.15rem;min-width:0;max-width:100%}
.customer-identity strong{overflow:hidden;color:#0b213c;font-size:.95rem;text-overflow:ellipsis;white-space:nowrap}
.customer-identity small{overflow:hidden;color:#63788e;font-size:.74rem;text-overflow:ellipsis;white-space:nowrap}
.customer-identity .na{box-shadow:0 0 0 3px #fff,0 0 0 4px #d3dde7;transition:box-shadow .2s ease}
.customer-identity:hover .na,.customer-identity:focus-visible .na{box-shadow:0 0 0 3px #fff,0 0 0 5px var(--store-accent,#dcae28)}
.customer-identity:focus-visible{outline:0}
.customer-nav{display:grid;gap:.15rem}
.customer-nav a{display:flex;align-items:center;justify-content:space-between;gap:.5rem;border-left:3px solid transparent;padding:.6rem .75rem;color:#294760;font-size:.86rem;font-weight:700;text-decoration:none}
.customer-nav a:hover{background:#f4f7fa;color:#0b213c}
.customer-nav a[aria-current="page"]{border-left-color:var(--store-accent,#dcae28);background:color-mix(in srgb,var(--store-accent,#dcae28) 10%,#fff);color:#0b213c;font-weight:800}
.customer-nav a:focus-visible{outline:2px solid var(--store-accent,#dcae28);outline-offset:-2px}
.customer-nav-badge{display:inline-grid;place-items:center;min-width:1.35rem;height:1.35rem;border-radius:999px;background:var(--store-accent,#dcae28);padding:0 .35rem;color:#1d1402;font-size:.7rem;font-weight:850}
.customer-heading{display:grid;gap:.3rem}
.customer-heading>span{color:#63788e;font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.customer-heading h1{margin:0;color:#0b213c;font-size:clamp(1.5rem,2.6vw,1.9rem);font-weight:850;letter-spacing:-.025em}
.customer-heading p{margin:0;color:#586f86;font-size:.9rem}
.customer-page .customer-card{border:1px solid #d3dde7;background:#fff}
.customer-page .customer-card>h2{margin:0;border-bottom:1px solid #e3eaf1;padding:.9rem 1.25rem;color:#0b213c;font-size:1rem;font-weight:800;letter-spacing:-.015em}
.customer-page .customer-card>.customer-muted{margin:0;padding:1rem 1.25rem;color:#586f86;font-size:.85rem;line-height:1.5}
.customer-page .customer-consents{border-top:0}
.customer-page .customer-rights{border-top:1px solid #d3dde7}
.customer-shell .customer-main .button{min-height:40px;padding:.5rem 1.1rem;font-size:.86rem}
.customer-page .customer-rights>h2{margin:-1.25rem -1.25rem 0;border-bottom:1px solid #e3eaf1;padding:.9rem 1.25rem;font-size:1rem}
.customer-page .customer-rights>.customer-muted{padding:0}
.customer-alert{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;border:1px solid color-mix(in srgb,var(--store-accent,#c99332) 45%,#fff);border-left:4px solid var(--store-accent,#c99332);background:color-mix(in srgb,var(--store-accent,#c99332) 9%,#fff);padding:.9rem 1.1rem}
.customer-alert>div:first-child{display:grid;gap:.15rem}
.customer-alert strong{color:#3b2c09;font-size:.92rem}
.customer-alert span{color:#5d4a1a;font-size:.8rem}
.customer-actions{display:flex;flex-wrap:wrap;gap:.45rem}
.customer-actions .button{min-height:38px;padding:.45rem 1rem;font-size:.85rem}
.customer-pay-form{display:contents}

.customer-order-row{display:flex;justify-content:space-between;gap:1rem;padding:.95rem 1.25rem;color:inherit;text-decoration:none}
.customer-order-row:hover{background:#f7f9fb}
.customer-order-row:focus-visible{outline:2px solid var(--store-accent,#dcae28);outline-offset:-2px}
.customer-order-row>span{display:grid;gap:.2rem;min-width:0}
.customer-order-row>span:last-child{flex:none;justify-items:end;align-content:start;text-align:right}
.customer-order-row strong{color:#0b213c;font-size:.9rem}
.customer-order-row small{overflow:hidden;color:#63788e;font-size:.76rem;text-overflow:ellipsis}
.customer-order-row em{color:var(--store-brand,#0b2745);font-size:.74rem;font-style:normal;font-weight:800;text-decoration:underline;text-underline-offset:2px}
.customer-status{display:inline-block;border-radius:999px;padding:.15rem .6rem;font-size:.7rem;font-weight:800;white-space:nowrap}
.customer-status.is-a-pagar{background:#fdf1d6;color:#7a4d00}
.customer-status.is-andamento{background:#e3eefb;color:#174a86}
.customer-status.is-concluidos{background:#e1f4ea;color:#065f3a}
.customer-status.is-cancelados{background:#eef1f4;color:#586f86}
.customer-heading p .customer-status{font-size:.78rem}
.customer-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.customer-shortcut{display:grid;gap:.25rem;border:1px solid #d3dde7;background:#fff;padding:1rem 1.1rem;color:inherit;text-decoration:none;transition:border-color .2s ease,transform .2s ease}
.customer-shortcut strong{color:#0b213c;font-size:.92rem}
.customer-shortcut span{color:#63788e;font-size:.78rem}
.customer-shortcut:hover{border-color:var(--store-accent,#dcae28);transform:translateY(-1px)}
.customer-shortcut:focus-visible{outline:2px solid var(--store-accent,#dcae28);outline-offset:2px}
.customer-filters{display:flex;gap:.4rem;overflow-x:auto;scrollbar-width:none;padding-bottom:.1rem}
.customer-filters::-webkit-scrollbar{display:none}
.customer-filters a{flex:none;border:1px solid #d3dde7;border-radius:999px;background:#fff;padding:.4rem .85rem;color:#294760;font-size:.8rem;font-weight:700;text-decoration:none}
.customer-filters a span{color:#8196aa;font-weight:800}
.customer-filters a:hover{border-color:#9fb2c4}
.customer-filters a[aria-current="page"]{border-color:#0b213c;background:#0b213c;color:#fff}
.customer-filters a[aria-current="page"] span{color:#c8d5e1}
.customer-filters a:focus-visible{outline:2px solid var(--store-accent,#dcae28);outline-offset:2px}
.customer-order-list{display:grid;gap:.75rem;margin:0;padding:0;list-style:none}
.customer-order-list .customer-order-pay{margin:0;border-top:1px solid #e3eaf1;border-left:0;padding:.7rem 1.25rem}
.customer-order-list .customer-order-pay>span{color:#3b2c09;font-size:.78rem;font-weight:700}
.customer-page .customer-empty{border:1px dashed #c8d5e1;background:#fff;padding:1.5rem 1.25rem;text-align:center}
.customer-page .customer-empty a{color:var(--store-brand,#0b4b7d);font-weight:800}
.customer-back{justify-self:start;color:var(--store-brand,#0b4b7d);font-size:.82rem;font-weight:800;text-decoration:none}
.customer-back:hover{text-decoration:underline;text-underline-offset:3px}
.customer-cancelled{margin:0;border-left:3px solid #9fb2c4;background:#f4f7fa;padding:.7rem .9rem;color:#294760;font-size:.85rem;font-weight:700}
.customer-timeline{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin:0;padding:0;list-style:none;counter-reset:step}
.customer-timeline li{position:relative;display:grid;justify-items:center;gap:.45rem;color:#8196aa;font-size:.74rem;font-weight:700;text-align:center}
.customer-timeline li>span{position:relative;z-index:1;width:1.1rem;height:1.1rem;border:2px solid #c8d5e1;border-radius:50%;background:#fff}
.customer-timeline li:not(:first-child):before{content:"";position:absolute;top:calc(.55rem - 1px);right:50%;width:100%;height:2px;background:#c8d5e1}
.customer-timeline li.is-done,.customer-timeline li.is-current{color:#0b213c}
.customer-timeline li.is-done>span,.customer-timeline li.is-current>span{border-color:var(--store-brand,#0b2745);background:var(--store-brand,#0b2745)}
.customer-timeline li.is-current>span{box-shadow:0 0 0 4px color-mix(in srgb,var(--store-brand,#0b2745) 18%,transparent)}
.customer-timeline li.is-done:before,.customer-timeline li.is-current:before{background:var(--store-brand,#0b2745)}
.customer-detail-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem}
.customer-detail-grid .customer-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
.customer-facts .is-wide{grid-column:1/-1}
.customer-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem 1.25rem;margin:0;padding:1rem 1.25rem}
.customer-summary dt{color:#63788e;font-size:.7rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.customer-summary dd{margin:.2rem 0 0;color:#0b213c;font-size:.88rem}
.customer-items{display:grid;margin:0;padding:0;list-style:none}
.customer-items li{display:grid;grid-template-columns:1.6rem 56px minmax(0,1fr) auto;align-items:center;gap:.9rem;border-bottom:1px solid #eef2f6;padding:.9rem 1.25rem}
.customer-item-number{display:grid;place-items:center;width:1.6rem;height:1.6rem;border-radius:50%;background:#eef2f6;color:#294760;font-size:.74rem;font-weight:850}
.customer-item-thumb{display:block;width:56px;height:56px;border:1px solid #e3eaf1;background:#f4f7fa;object-fit:cover}
.customer-item-info{display:grid;gap:.2rem;min-width:0}
.customer-item-info strong{color:#0b213c;font-size:.9rem}
.customer-item-info small{color:#63788e;font-size:.74rem}
.customer-item-price{display:grid;justify-items:end;gap:.15rem;text-align:right;white-space:nowrap}
.customer-item-price span{color:#63788e;font-size:.78rem}
.customer-item-price strong{color:#0b213c;font-size:.92rem}
.customer-totals{display:grid;gap:.45rem;margin:0;padding:1rem 1.25rem}
.customer-totals div{display:flex;justify-content:space-between;gap:1rem;color:#294760;font-size:.86rem}
.customer-totals dd{margin:0;white-space:nowrap}
.customer-totals .is-total{border-top:1px solid #d8e1ea;padding-top:.6rem;color:#0b213c;font-size:1rem;font-weight:850}
.customer-detail-grid .customer-card>table{width:calc(100% - 2.5rem);margin:.5rem 1.25rem 1rem}
.customer-facts{display:grid;gap:.8rem;margin:0;padding:1rem 1.25rem}
.customer-facts dt{color:#63788e;font-size:.7rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.customer-facts dd{margin:.15rem 0 0;color:#0b213c;font-size:.84rem;line-height:1.45}
.customer-facts a{color:var(--store-brand,#0b4b7d);font-weight:800}
.customer-page .customer-order-note{padding:0}
.avatar-page-grid{display:grid;grid-template-columns:minmax(0,1fr) 260px;align-items:start;gap:1.5rem}
.avatar-recommendations{position:sticky;top:1.25rem;padding:1.25rem}
.avatar-recommendations h2{margin:0 0 1rem;font-size:.95rem}
.avatar-recommendations ul{display:grid;gap:.85rem;margin:0;padding:0;list-style:none}
.avatar-recommendations li a{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:.65rem;color:inherit;text-decoration:none}
.avatar-recommendations li a:hover strong{text-decoration:underline}
.avatar-recommendation-thumb{display:grid;width:48px;height:48px;place-items:center;overflow:hidden;background:var(--store-media,#eef2f6)}
.avatar-recommendation-thumb img{width:100%;height:100%;object-fit:cover}
.avatar-recommendations strong{overflow:hidden;font-size:.82rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap}
.avatar-recommendation-price{grid-column:2;color:var(--store-muted,#63788e);font-size:.78rem}
.avatar-editor{display:grid;grid-template-columns:220px minmax(0,1fr);align-items:start;gap:1.5rem;padding:1.25rem}
.avatar-editor-stage{position:sticky;top:1.25rem;display:grid;justify-items:center;gap:1rem}
.avatar-editor-stage [data-avatar-preview]{display:grid;place-items:center;transition:opacity .15s ease}
.avatar-editor-stage [data-avatar-preview].is-loading{opacity:.55}
.avatar-editor-stage-actions{display:grid;gap:.45rem;width:100%}
.avatar-editor-stage-actions .button{width:100%}
.avatar-editor-traits{display:grid;gap:1rem}
.avatar-trait{display:grid;gap:.45rem;margin:0;border:0;padding:0}
.avatar-trait legend{margin-bottom:.45rem;padding:0;color:#294760;font-size:.74rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.avatar-choices{display:flex;flex-wrap:wrap;gap:.35rem}
.avatar-choices label{position:relative;cursor:pointer}
.avatar-choices input,.avatar-swatches input{position:absolute;opacity:0;pointer-events:none}
.avatar-choices span{display:inline-block;border:1px solid #d3dde7;border-radius:999px;background:#fff;padding:.35rem .8rem;color:#294760;font-size:.8rem;font-weight:700}
.avatar-choices label:hover span{border-color:#9fb2c4}
.avatar-choices input:checked+span{border-color:#0b213c;background:#0b213c;color:#fff}
.avatar-choices input:focus-visible+span,.avatar-swatches input:focus-visible+svg{outline:2px solid var(--store-accent,#dcae28);outline-offset:2px}
.avatar-swatches{display:flex;flex-wrap:wrap;gap:.45rem}
.avatar-swatches label{position:relative;display:grid;cursor:pointer}
.avatar-swatches svg{width:1.9rem;height:1.9rem;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(11,33,60,.15),0 0 0 1px #d3dde7}
.avatar-swatches input:checked+svg{box-shadow:0 0 0 2px #fff,0 0 0 4px #0b213c}
@media(max-width:860px){
  .customer-shell{grid-template-columns:minmax(0,1fr);gap:1.25rem;padding:1.25rem 1rem 3rem}
  .customer-sidebar{position:static;gap:.75rem;min-width:0;padding:1rem}
  .customer-identity{grid-template-columns:auto minmax(0,1fr);justify-items:start;border-bottom:0;padding-bottom:0;text-align:left}
  .customer-identity .na.na-lg{width:56px}
  .customer-nav{display:flex;gap:.4rem;overflow-x:auto;scrollbar-width:none;margin:0 -1rem;padding:0 1rem}
  .customer-nav::-webkit-scrollbar{display:none}
  .customer-nav a{flex:none;border:1px solid #d3dde7;border-left:1px solid #d3dde7;border-radius:999px;padding:.4rem .85rem;font-size:.8rem}
  .customer-nav a[aria-current="page"]{border-color:#0b213c;background:#0b213c;color:#fff}
  .customer-detail-grid,.customer-shortcuts{grid-template-columns:1fr}
  .avatar-page-grid{grid-template-columns:minmax(0,1fr)}
  .avatar-recommendations{position:static}
  .avatar-editor{grid-template-columns:minmax(0,1fr);padding:1rem}
  .avatar-editor-stage{position:sticky;top:0;z-index:2;background:inherit;padding:.75rem 0;border-bottom:1px solid var(--store-line,#d3dde7)}
  .avatar-editor-stage-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
  .customer-timeline{grid-template-columns:1fr;gap:.9rem;justify-items:start}
  .customer-timeline li{grid-template-columns:1.1rem auto;justify-items:start;align-items:center;gap:.7rem;text-align:left}
  .customer-timeline li:not(:first-child):before{top:auto;right:auto;bottom:50%;left:calc(.55rem - 1px);width:2px;height:calc(100% + .9rem)}
  .customer-order-row{flex-direction:column;gap:.5rem;padding:.9rem 1rem}
  .customer-summary,.customer-detail-grid .customer-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .customer-items li{grid-template-columns:1.6rem 44px minmax(0,1fr);padding:.8rem 1rem}
  .customer-item-thumb{width:44px;height:44px}
  .customer-item-price{grid-column:3;justify-items:start;text-align:left}
  .customer-totals{padding:1rem}
  .customer-heading h1{overflow-wrap:anywhere}
  .customer-order-row>span:last-child{justify-items:start;text-align:left}
}
@media(prefers-reduced-motion:reduce){.customer-shortcut,.customer-identity .na{transition:none}.customer-shortcut:hover{transform:none}}

/* Entrar/criar conta: apresentação da conta ao lado do formulário; no celular, só o formulário. */
.customer-main.customer-auth{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:start;gap:2.5rem;max-width:980px;padding-top:3rem}
.customer-auth-intro{position:sticky;top:2rem;display:grid;gap:1.25rem;padding-top:1rem}
.customer-auth-kicker{color:var(--store-accent,#c99332);font-size:.74rem;font-weight:850;letter-spacing:.12em;text-transform:uppercase}
.customer-auth-intro h2{margin:0;color:#0b213c;font-size:clamp(1.6rem,2.6vw,2.2rem);font-weight:850;line-height:1.1;letter-spacing:-.03em}
.customer-auth-intro ul{display:grid;gap:1rem;margin:0;padding:0;list-style:none}
.customer-auth-intro li{display:grid;grid-template-columns:2.5rem minmax(0,1fr);align-items:start;gap:.85rem}
.customer-auth-intro svg{width:2.5rem;height:2.5rem;border-radius:var(--store-radius-md,8px);background:color-mix(in srgb,var(--store-accent,#c99332) 14%,#fff);padding:.55rem;fill:none;stroke:var(--store-brand,#0b2745);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.customer-auth-intro li span{display:grid;gap:.15rem;color:#586f86;font-size:.84rem;line-height:1.45}
.customer-auth-intro li strong{color:#0b213c;font-size:.92rem}
.customer-auth-card .checkout-heading h1{font-size:clamp(1.6rem,2.4vw,2rem)}
.customer-auth-alt{margin:0;color:#586f86;font-size:.82rem;text-align:center}
.customer-auth-alt a,.customer-auth .customer-footnote a{color:var(--store-brand,#0b4b7d);font-weight:800}
.customer-auth .customer-footnote{text-align:center}
@media(max-width:860px){
  .customer-main.customer-auth{grid-template-columns:minmax(0,1fr);gap:1.25rem;max-width:560px;padding-top:1.5rem}
  .customer-auth-intro{position:static;order:2;padding-top:0}
  .customer-auth-intro h2{font-size:1.25rem}
}
/* Área do cliente com os mesmos cantos discretos da loja: cartão, campo e botão falam a mesma língua. */
.customer-page{--store-radius-sm:0;--store-radius-md:0;--store-radius-lg:0}
.customer-page :is(.customer-panel,.customer-card,.customer-sidebar,.customer-shortcut,.customer-alert,.customer-empty,.privacy-notice){border-radius:var(--store-radius-lg);overflow:hidden}
.customer-page :is(.avatar-editor,.avatar-recommendations){overflow:visible}
.customer-page .customer-alert{overflow:visible}
.customer-page .customer-form input:not([type="checkbox"]),.customer-page .button{border-radius:var(--store-radius-md)}
.customer-page .customer-item-thumb{border-radius:var(--store-radius-sm)}

/* Configurações da conta: a mesma grade de seis colunas do cadastro, no painel do afiliado e na gaveta da central. */
.account-settings{max-width:820px}
.account-form{display:grid;gap:.85rem;margin:0 0 1.75rem;border:1px solid #c8d5e1;background:#fff;padding:1.1rem 1.2rem}
.account-block{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.85rem 1rem;margin:0;border:0;padding:0}
.account-block>legend{margin-bottom:.85rem;padding:0;color:#9b7300;font-size:.66rem;font-weight:850;letter-spacing:.14em;text-transform:uppercase}
.account-block label{display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:.35rem;color:#3d4b5a;font-size:.72rem;font-weight:800}
/* A marca "opcional" fica na linha do rótulo; o campo ocupa a linha de baixo inteira, alinhado aos vizinhos. */
.account-block label>:is(input,select,textarea,.secret-field,.unit-field){grid-column:1/-1}
.account-block label>.field-optional{margin-left:0}
.account-block :is(input,select){min-height:40px;width:100%;border:1px solid #c8d1da;background:#fff;padding:.5rem .7rem;font-family:inherit;font-size:.85rem}
.account-block :is(input,select):focus{border-color:#0b2745;outline:2px solid rgba(11,39,69,.2);outline-offset:1px}
.account-block .span-1{grid-column:span 1}
.account-block .span-2{grid-column:span 2}
.account-block .span-3{grid-column:span 3}
.account-block .span-6{grid-column:1/-1}
.account-form .form-result{min-height:1.1rem;margin:0;font-size:.8rem}
.account-form .form-result.success{color:#067647;font-weight:700}
.account-form .form-result.error{color:#9f2d24;font-weight:700}
.account-form>.button{justify-self:start}
@media(max-width:720px){.account-block{grid-template-columns:minmax(0,1fr)}.account-block :is(.span-1,.span-2,.span-3,.span-6){grid-column:1/-1}}

/* Endereço de despacho (Logística): resumo numa linha, formulário ao abrir. */
.shipping-origin{margin:0 0 1.1rem;border:1px solid #c8d5e1;background:#fff}
.shipping-origin>summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .8rem;cursor:pointer;padding:.75rem 1rem;color:#0b2745;font-size:.85rem}
.shipping-origin>summary span{color:#5a6672;font-size:.78rem}
.shipping-origin:not([open])>summary span{color:#5a6672}
.shipping-origin>.account-form{margin:0;border:0;border-top:1px solid #c8d5e1}

/* Integrações configuráveis: o formulário ocupa a largura do card, abaixo do resumo. */
.integration-card>.integration-config{grid-column:1/-1;grid-row:auto;border-top:1px solid var(--line);padding-top:.75rem}
.integration-config>summary{cursor:pointer;color:#0b2745;font-size:.82rem;font-weight:800}
/* Passo a passo das integrações: painel complementar à esquerda da gaveta, no padrão das imagens do produto. */
.integrations-drawer,.domain-drawer{overflow:visible}
.integration-guide-open{justify-self:start;margin-top:.2rem}
/* Painel do endereço de despacho: mais estreito que a gaveta de Integrações, para ficar claro que está por cima dela. */
.admin-page .origin-drawer{width:min(760px,calc(100% - 1rem))}
.admin-page .origin-drawer .account-form{margin:0}
.integration-checklist li:has(.integration-item-action){flex-wrap:wrap}
.integration-item-action{flex-basis:100%;justify-content:center;min-height:32px;margin-top:.35rem;font-size:.76rem}
.integration-card.is-guided{outline:2px solid #dcae28;outline-offset:-2px}
.integration-guide-panel{position:absolute;z-index:3;top:0;bottom:0;right:100%;display:grid;width:min(460px,40vw);grid-template-rows:auto auto minmax(0,1fr);gap:.8rem;border:1px solid #0b2745;border-right:0;background:#f8fafc;padding:1rem;box-shadow:-24px 0 48px rgba(7,27,48,.2)}
.integration-guide-panel{opacity:1;translate:0 0;transition:opacity .22s ease,translate .24s cubic-bezier(.2,.8,.2,1),display .24s allow-discrete}
.integration-guide-panel[hidden]{display:none;opacity:0;translate:2rem 0}
@starting-style{.integration-guide-panel:not([hidden]){opacity:0;translate:2rem 0}}
@media(prefers-reduced-motion:reduce){.integration-guide-panel{transition:none}.integration-guide-panel[hidden]{translate:0 0}}
.integration-guide-panel header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}
.integration-guide-panel header>div{display:grid;min-width:0;gap:.15rem;border-left:3px solid #dcae28;padding-left:.6rem}
.integration-guide-panel header strong{color:#0b2745;font-size:1.05rem}
.integration-guide-panel header button{border:0;background:transparent;font-size:1.5rem;cursor:pointer}
.integration-guide-tabs{display:grid;grid-template-columns:1fr 1fr;border:1px solid #0b2745}
.integration-guide-tabs button{min-height:36px;border:0;background:#fff;color:#0b2745;font:inherit;font-size:.8rem;font-weight:800;cursor:pointer}
.integration-guide-tabs button[aria-selected="true"]{background:#0b2745;color:#fff}
.integration-guide-body{min-height:0;overflow-y:auto;padding-right:.25rem}
.integration-guide-body ol{display:grid;gap:.75rem;margin:0;padding-left:1.35rem;color:#243a52;font-size:.88rem;line-height:1.5;counter-reset:none}
.integration-guide-body li::marker{color:#9b7300;font-weight:850}
.integration-guide-note{margin:.9rem 0 0;border-left:3px solid #dcae28;background:#fbf6e6;padding:.6rem .75rem;color:#5a4a12;font-size:.82rem;line-height:1.45}
.integration-guide-body>.integration-guide-note:first-child{margin-top:0}
@media(max-width:1180px){.integration-guide-panel{right:auto;left:0;width:min(420px,92%);border-right:1px solid #0b2745;box-shadow:0 12px 32px rgba(11,39,69,.28)}}
.integration-config-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.85rem 1.1rem;margin-top:.85rem}
.integration-field{display:grid;align-content:start;gap:.3rem}
.integration-field>label{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem;color:#3d4b5a;font-size:.72rem;font-weight:800}
.integration-field :is(input:not([type="checkbox"]),select){min-height:38px;width:100%;border:1px solid #c8d1da;background:#fff;padding:.45rem .65rem;font-family:inherit;font-size:.82rem}
.integration-field>small{color:var(--muted);font-size:.7rem;line-height:1.35}
.integration-source{font-size:.64rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.integration-source.is-panel,.integration-source.is-server{color:var(--green)}
.integration-source.is-none{color:var(--red)}
.integration-field>.integration-clear{display:flex;align-items:center;gap:.35rem;font-weight:700}
.integration-config-form>.form-result{grid-column:1/-1}
.integration-config-form>.button{grid-column:1/-1;justify-self:start}

/*
 * Central: nada arredondado. Regra do operador para o painel principal; vale para todo elemento e pseudo-elemento
 * (bolinha do interruptor, número de passo, marca de diálogo). A prévia da loja roda num iframe e não é atingida.
 * O seletor do "Pular para a seção" repete a especificidade da regra original, que também usa !important.
 */
body.admin-page *,body.admin-page *::before,body.admin-page *::after{border-radius:0!important}
body.admin-page .affiliate-storefront-form .preview-jump{border-radius:0!important}

/* Unidade dentro do campo (%, g, cm, dias), criada pelo app.js a partir de data-unit. */
.unit-field{position:relative;display:block}
.unit-field>input{width:100%;padding-right:3.1rem!important}
.unit-field::after{content:attr(data-unit);position:absolute;top:50%;right:.7rem;transform:translateY(-50%);color:#5a6672;font-size:.78rem;font-weight:700;pointer-events:none}

/* Olho de mostrar/esconder dentro do campo de senha ou token (criado pelo app.js). */
.secret-field{position:relative;display:block}
.secret-field>input{padding-right:2.6rem!important}
.secret-toggle{position:absolute;top:50%;right:.35rem;display:grid;width:30px;height:30px;place-items:center;transform:translateY(-50%);border:0;background:transparent;color:#5a6672;cursor:pointer}
.secret-toggle:hover,.secret-toggle[aria-pressed="true"]{color:#0b2745}
.secret-toggle:focus-visible{outline:2px solid #0b2745;outline-offset:1px}
.secret-toggle svg{width:18px;height:18px}
.secret-toggle[aria-pressed="true"] svg{opacity:.55}

/* Categoria do produto no cadastro: o atalho "Gerenciar categorias" fica na linha do rótulo, fora do fluxo,
   para o select de Categoria ter a mesma altura e o mesmo topo do select de Tipo. */
.product-category-field{position:relative;display:grid;min-width:0}
/* Rótulo com ou sem o "!" de ajuda ocupa a mesma linha (18px): Tipo, Categoria e os demais controles caem no mesmo topo e na mesma altura. */
.operational-dialog .form-grid label:not(.check-label,.product-image-picker){grid-template-rows:minmax(18px,auto);align-content:start}
.product-category-manage,.product-category-note{position:absolute;top:0;right:0;display:inline-flex;height:18px;align-items:center;gap:.3rem;white-space:nowrap}
.product-category-manage{border:0;background:transparent;padding:0;color:var(--gold-dark);font-size:.68rem;font-weight:800;text-decoration:underline;text-underline-offset:3px}
.product-category-manage:after{position:absolute;inset:-.65rem -.4rem;content:""}
.product-category-manage:hover{color:#0b2745}
.product-category-manage:focus-visible{outline:2px solid #dcae28;outline-offset:2px}
.product-category-manage svg{width:14px;height:14px;flex:none}
.product-category-note{color:#63788e;font-size:.66rem}
.product-category-result{grid-column:1/-1;min-height:1rem;color:#63788e;font-size:.72rem}
.product-category-result.error{color:var(--red)}
.catalog-category small{color:#63788e}

/* Painel derivado "Categorias": metade da largura do cadastro de produto, empilhado por cima dele. */
.product-categories-dialog{width:min(380px,calc((100% - 1rem) / 2))}
.product-categories-dialog::backdrop{background:rgba(4,18,34,.32)}
.product-categories-dialog .dialog-head{gap:1rem}
/* .dialog-head button tira a borda e aumenta a fonte (feito para o ×); o Voltar segue o padrão das gavetas. */
.product-categories-dialog .dialog-head .settings-close{border:1px solid #9eafbf;background:#fff;font-size:.75rem}
.product-categories-dialog .dialog-head .settings-close:hover{border-color:#0b2745;background:#eaf1f7}
.product-categories-body{display:grid;min-height:0;align-content:start;gap:1rem;overflow-y:auto;padding:1rem 1.25rem 1.5rem}
.product-categories-create{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.6rem;border-left:3px solid #dcae28;padding:.75rem}
.product-categories-create label{display:grid;gap:var(--field-gap,.35rem);color:#0b2745;font-size:.74rem;font-weight:800}
.product-categories-create :is(input,.button){height:40px;min-height:40px}
.product-categories-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem;border-bottom:1px solid #c8d5e1;padding-bottom:.45rem}
.product-categories-heading h3{margin:0;font-size:var(--title-panel-size,.95rem)}
.product-categories-heading output{min-width:1.6rem;border:1px solid #bdcbd8;background:#eaf1f7;padding:.1rem .4rem;color:#0b2745;font-size:.7rem;font-weight:800;text-align:center;font-variant-numeric:tabular-nums}
.product-categories-list{display:grid;margin:-1rem 0 0;padding:0;list-style:none}
.product-categories-list li{display:grid;min-height:52px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem;border-bottom:1px solid #d8e1ea;padding:.45rem 0}
.product-categories-list span{display:grid;min-width:0;gap:.1rem}
.product-categories-list strong{overflow-wrap:anywhere;color:#0b213c;font-size:.8rem}
.product-categories-list small{color:#63788e;font-size:.7rem}
.product-category-delete{min-height:32px;border:1px solid #c8d5e1;background:#fff;padding:.3rem .65rem;color:var(--red);font-size:.7rem;font-weight:800}
.product-category-delete:hover:not(:disabled){border-color:var(--red);background:var(--red);color:#fff}
.product-category-delete:focus-visible{outline:2px solid #dcae28;outline-offset:2px}
.product-category-delete:disabled{cursor:progress;opacity:.5}
.product-categories-list:empty{display:none}
.product-categories-empty{margin:0;color:#63788e;font-size:.76rem}
@media(max-width:480px){.product-categories-dialog .dialog-head .settings-close kbd{display:none}}
@media(max-width:760px){.product-categories-dialog{width:calc(100% - 5rem)}}

/* Uma rolagem só com painel aberto: a página atrás fica parada e o painel rola apenas o próprio conteúdo
   (o corpo do formulário ou da lista), nunca a caixa inteira. */
html:has(body:is(.admin-page,.affiliate-page) dialog:modal){overflow:hidden}
.operational-dialog{overflow:hidden}
.product-image-picker{position:relative}

/* Loja no celular. A maioria dos compradores compra pelo telefone: tudo aqui vive em media query de toque
   ou de tela estreita, então o desktop (sem toque, >=761px) não muda.
   - campo com fonte < 16px faz o iOS dar zoom ao focar; por isso todo campo da loja vai a 16px no toque;
   - alvo de toque >= 44px (WCAG 2.5.5 / HIG);
   - a sacola não espreme a página no celular: vira bottom sheet com fundo escurecido;
   - o cabeçalho gruda só com marca, busca e sacola; a faixa de atalhos rola junto (top negativo = altura da nav). */
@media (max-width:760px),(hover:none) and (pointer:coarse){
  body:is(.storefront-page,.checkout-page) :is(input:not([type=checkbox],[type=radio],[type=range],[type=hidden],[type=color],[type=file]),select,textarea){font-size:16px}
  body:is(.storefront-page,.checkout-page) :is(input:not([type=checkbox],[type=radio],[type=range],[type=hidden],[type=color],[type=file]),select){min-height:44px}
  body.storefront-page :is(.button,.store-header-search button,.product-rail-controls button,.list-pagination button,.list-pagination select){min-height:44px}
  body.storefront-page :is(.store-account-link,.store-cart-button){min-width:44px;min-height:44px}
  body.storefront-page .store-header nav a{display:inline-flex;min-height:44px;align-items:center}
  body.storefront-page .product-rail-controls button{min-width:44px}
  body.storefront-page :is(.catalog-filters button[type=reset],.store-partner-link,.affiliate-cta-login,.product-breadcrumb a){display:inline-flex;min-height:44px;align-items:center}
  body.storefront-page .catalog-filters input[type=range]{min-height:44px}
  body.storefront-page .cart-peek>header button{width:44px;min-width:44px;height:44px;min-height:44px}
  body.storefront-page .cart-peek-close{justify-content:center;padding:0}
  body.storefront-page .cart-peek-close>span{display:none}
  body.storefront-page .cart-peek-quantity{grid-template-columns:44px 44px 44px}
  body.storefront-page .cart-peek-quantity button{min-height:44px;font-size:1.15rem}
  body.storefront-page .cart-peek-remove{display:inline-flex;min-height:44px;align-items:center;border-bottom:0;font-size:.8rem;text-decoration:underline;text-underline-offset:3px}
  body.storefront-page .cart-peek-clear{min-height:44px;padding-inline:.75rem}
  body.storefront-page .cart-peek .cart-checkout-link{min-height:48px}
  body.storefront-page .product-purchase-panel .button{min-height:48px}
  body.checkout-page :is(.button,.password-toggle,.customer-nav a){min-height:44px}
  body.checkout-page .password-toggle{min-width:44px}
  body.checkout-page :is(.checkout-back,.checkout-brand,.checkout-account a,.customer-auth-alt a,.cart-remove,.checkout-edit-cart){display:inline-flex;min-height:44px;align-items:center}
  body.checkout-page .checkout-edit-cart{justify-content:center}
  body.checkout-page .cart-quantity button{min-width:44px;min-height:44px}
  body.checkout-page .consent-check{min-height:44px;align-items:center}
  body.checkout-page summary{min-height:44px}
  body:is(.storefront-page,.checkout-page){padding-right:env(safe-area-inset-right);padding-left:env(safe-area-inset-left)}
  body.storefront-page .store-footer{padding-bottom:calc(2rem + env(safe-area-inset-bottom))}
  body.checkout-page main{padding-bottom:calc(2.5rem + env(safe-area-inset-bottom))}
  /* Os campos do filtro lateral têm seletor mais forte (.catalog-section>.catalog-filters); repetido aqui para valer no tablet. */
  body.storefront-page .catalog-section>.catalog-filters select{min-height:44px;font-size:16px}
  body.storefront-page .catalog-section>.catalog-filters button[type=reset]{display:inline-flex;min-height:44px;align-items:center}
  body.storefront-page .store-brand{display:grid;min-height:44px;align-content:center}
  body.storefront-page .store-header nav a,body.checkout-page :is(.checkout-back,.customer-switch a,.customer-auth-alt a){min-width:44px;justify-content:center}
  body.storefront-page .product-back-link{display:inline-flex;min-height:44px;align-items:center}
}
@media (max-width:720px){body.storefront-page .product-back-link{display:none}}
/* Tablet em pé (761-900px): o texto "Minha conta" estourava o cabeçalho; fica só o ícone, com o nome acessível preservado. */
@media (min-width:761px) and (max-width:900px){
  body.storefront-page .store-account-link span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}
@media (max-width:760px){
  /* Linha 1: marca (rola para fora). Linha 2: busca + conta + sacola. Linha 3: atalhos. O top negativo é a altura da
     linha 1 (padding 8px + marca 46px + gap 8px), então ao rolar ficam grudados só busca, sacola e atalhos. */
  body.storefront-page .store-header-main:has(>.store-header-search){grid-template-rows:46px auto;row-gap:8px;padding-top:8px}
  body.storefront-page .store-header-main:has(>.store-header-search)>.store-brand{grid-column:1/-1;grid-row:1;height:46px;min-height:0;overflow:hidden}
  body.storefront-page .store-header-main:has(>.store-header-search)>.store-header-search{grid-column:1;grid-row:2;width:100%}
  body.storefront-page .store-header-main:has(>.store-header-search)>.store-header-actions{grid-column:2;grid-row:2;align-self:center}
  body.storefront-page .store-header:has(>.store-header-main>.store-header-search){top:-62px}
  body.storefront-page .store-header>nav{padding-block:0}
  body.storefront-page .store-section{scroll-margin-top:128px}
  body.storefront-page .store-header-search :is(input,button){height:44px}
  body.storefront-page .store-hero:not(:has(img,video)){min-height:0}
  /* Catálogo e destaques em duas colunas: cards legíveis e "Adicionar" ao alcance do polegar. A página do produto
     continua a um toque pela foto e pelo nome, então o "Ver detalhes" sai e o "Adicionar" ocupa a largura toda. */
  body.storefront-page .product-grid:not(.product-rail){grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
  body.storefront-page .product-grid.product-rail{grid-auto-columns:calc((100% - .75rem) / 2.2)}
  body.storefront-page .product-grid .product-body{padding:.75rem}
  body.storefront-page .product-grid .product-body h3{font-size:1rem;line-height:1.25}
  body.storefront-page .product-grid .product-body>p{display:-webkit-box;overflow:hidden;font-size:.875rem;-webkit-line-clamp:2;-webkit-box-orient:vertical}
  body.storefront-page .product-grid .product-actions .button.ghost{display:none}
  body.storefront-page .product-grid .product-actions .button{width:100%;padding-inline:.5rem}
  /* Filtros em gaveta: o título vira botão (app.js marca data-filters-collapsible) e só ele aparece fechado. */
  body.storefront-page .catalog-filters[data-filters-collapsible]:not(.is-open)>:not(.catalog-filter-title){display:none}
  body.storefront-page .catalog-filters[data-filters-collapsible] .catalog-filter-title{display:flex;min-height:48px;align-items:center;justify-content:space-between;cursor:pointer;user-select:none}
  body.storefront-page .catalog-filters[data-filters-collapsible] .catalog-filter-title::after{width:.55rem;height:.55rem;margin-right:.25rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;content:"";transform:translateY(-25%) rotate(45deg);transition:transform .18s ease}
  body.storefront-page .catalog-filters[data-filters-collapsible].is-open .catalog-filter-title::after{transform:translateY(25%) rotate(-135deg)}
  body.storefront-page .catalog-filters[data-filters-collapsible] .catalog-filter-title:focus-visible{outline:2px solid var(--store-accent);outline-offset:-4px}
  /* Sacola: bottom sheet com fundo escurecido; a página atrás não encolhe nem rola. */
  body.storefront-page.cart-peek-open .storefront-surface{width:100%}
  html:has(body.storefront-page.cart-peek-open){overflow:hidden}
  body.storefront-page.cart-peek-open::after{position:fixed;z-index:19;inset:0;background:rgba(4,18,34,.48);content:""}
  body.storefront-page .cart-peek{top:auto;right:0;bottom:0;left:0;width:100%;max-width:none;height:auto;max-height:min(86dvh,680px);overflow:hidden;border-top:1px solid var(--store-line);border-left:0;border-radius:14px 14px 0 0;box-shadow:0 -14px 36px rgba(4,18,34,.24);transform:translateY(100%)}
  body.storefront-page .cart-peek.is-visible{transform:translateY(0)}
  body.storefront-page .cart-peek>header{height:auto;min-height:60px;padding:.5rem max(1rem,env(safe-area-inset-right)) .5rem max(1rem,env(safe-area-inset-left))}
  body.storefront-page .cart-peek-line{grid-template-columns:64px minmax(0,1fr);padding:.75rem 1rem}
  body.storefront-page .cart-peek-media{width:64px}
  body.storefront-page .cart-peek-copy{grid-template-columns:auto 1fr;align-items:center;column-gap:.75rem}
  body.storefront-page .cart-peek-copy>:is(strong,small){grid-column:1/-1}
  body.storefront-page .cart-peek-copy>strong{font-size:.95rem}
  body.storefront-page .cart-peek-copy>small{font-size:.8rem}
  body.storefront-page .cart-peek-quantity{grid-row:3;grid-column:1;margin-top:.2rem}
  body.storefront-page .cart-peek-remove{grid-row:3;grid-column:2;justify-self:end}
  body.storefront-page .cart-peek>footer{padding:.75rem 1rem calc(.75rem + env(safe-area-inset-bottom))}
  /* Página do produto: preço e "Adicionar à sacola" logo abaixo do nome, antes da descrição longa. */
  body.storefront-page .product-detail-page{row-gap:0}
  body.storefront-page .product-detail-page>.product-page-information{display:contents}
  body.storefront-page .product-detail-page>.product-page-gallery{order:1;margin-bottom:1.25rem}
  body.storefront-page .product-detail-page>.product-page-information>*{order:4}
  body.storefront-page .product-detail-page>.product-page-information>:is(.product-page-category,h1,.product-page-sku){order:2}
  body.storefront-page .product-detail-page>.product-purchase-panel{order:3;margin-block:1rem 1.5rem}
}
/* Fim: loja no celular. */

/* Painel do afiliado: Domínio próprio (gaveta #dominio-proprio-drawer, etiqueta da aba Minha loja). Só desktop, como o resto do painel. */
.affiliate-domain-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:1.5rem;align-items:start;max-width:1180px}
.affiliate-domain-guide-open{justify-self:start}
.affiliate-domain-main{display:grid;gap:1rem;min-width:0}
.affiliate-domain-lead{max-width:62ch;margin:0;color:#3d4b5a;line-height:1.55}
.affiliate-domain-notice{margin:0;border:1px solid #c8d5e1;border-left:3px solid #dcae28;background:#f8fafc;padding:.75rem 1rem;color:#0b2745;font-weight:700}
.affiliate-domain-card{display:grid;gap:.55rem;border:1px solid #c8d5e1;background:#fff;padding:1.1rem 1.2rem}
.affiliate-domain-card-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.2rem 1rem}
.affiliate-domain-card-head>span{grid-column:1/-1;color:#9b7300;font-size:.66rem;font-weight:850;letter-spacing:.14em;text-transform:uppercase}
.affiliate-domain-card-head>strong{overflow-wrap:anywhere;color:#0b213c;font-size:1.25rem}
.affiliate-domain-status{font-style:normal;font-weight:800}
.affiliate-domain-status.is-live{color:#067647}
.affiliate-domain-status.is-wait{color:#8a6400}
.affiliate-domain-status.is-error,.affiliate-domain-status.is-off{color:#9f2d24}
.affiliate-domain-message{margin:0;color:#3d4b5a;line-height:1.5}
.affiliate-domain-card small{color:#63788e}
.affiliate-domain-link{margin:0;font-weight:700}
.affiliate-domain-link a{color:#0b4b7d}
.affiliate-domain-actions{display:flex;gap:.6rem;margin-top:.35rem}
.affiliate-domain-card .form-result{min-height:1.1rem;margin:0;font-size:.8rem}
.affiliate-domain-card .form-result.success{color:#067647;font-weight:700}
.affiliate-domain-card .form-result.error{color:#9f2d24;font-weight:700}
.affiliate-domain-form{margin:0}
.affiliate-domain-hint{margin:0;color:#63788e;font-size:.78rem}
.affiliate-domain-record{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem 1rem;border:1px solid #c8d5e1;background:#fff;padding:1rem 1.2rem}
.affiliate-domain-record>.eyebrow,.affiliate-domain-record>.affiliate-domain-hint{grid-column:1/-1;margin:0}
.affiliate-domain-record>.affiliate-domain-copy{margin:0}
.affiliate-domain-record>.affiliate-domain-copy:last-child{grid-column:1/-1}
.affiliate-domain-guide :not(.integration-webhook)>code{border:1px solid #c8d5e1;background:#eaf1f7;padding:.05rem .3rem;color:#0b213c;font-size:.82em}
/* Passo a passo do domínio: subpainel à esquerda da gaveta, o mesmo componente do guia das Integrações da central
   (posição, animação e Esc vêm de .integration-guide-panel). Três abas: registro.br, outros provedores, problemas. */
.affiliate-domain-guide .integration-guide-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}
.affiliate-domain-guide .integration-guide-tabs button{padding:0 .4rem}
.affiliate-domain-guide .integration-guide-tabs button:focus-visible,.affiliate-domain-guide .integration-guide-body:focus-visible{outline:2px solid #dcae28;outline-offset:-2px}
.affiliate-domain-guide .integration-guide-body[hidden]{display:none}
.affiliate-domain-guide .integration-guide-note+ol{margin-top:.9rem}
.affiliate-domain-guide .integration-guide-body li strong{color:#0b213c}
.affiliate-domain-copy{margin-top:.5rem}
.affiliate-domain-copy .button[hidden]{display:none}
.product-commission-field{display:grid;gap:.35rem;align-content:start}
.product-commission-field [hidden]{display:none}
.product-commission-hint{color:#63788e;font-size:.78rem}
.product-commission-locked{display:grid;gap:.25rem;justify-items:start}
.product-commission-locked small{color:#63788e;font-size:.78rem}
/* Central: coluna Domínio da lista de afiliados. */
.affiliate-domain-cell{display:grid;gap:.25rem;min-width:0}
.affiliate-domain-cell>a,.affiliate-domain-cell>span{overflow-wrap:break-word}
.affiliate-domain-cell small{color:#63788e}
/* Comissões: selo "Definir comissão" no produto recém-cadastrado (topo da lista por produto) e na coluna do Catálogo. */
.product-rate-row .status{margin-top:.2rem;padding:.12rem .38rem;font-size:.58rem}
/* Painel do afiliado: perfil da loja em faixa no topo (antes do seletor de período); Pedidos recentes ocupa a largura toda. */
.affiliate-profile-strip{display:flex;align-items:center;gap:1.25rem;min-height:3.25rem;border-bottom:1px solid #c8d5e1;background:#f8fafc;padding:.45rem 1.75rem}
.affiliate-profile-strip-logo{display:flex;flex:0 0 auto;align-items:center;height:2.25rem;max-width:16rem;margin:0}
/* Logo clara (feita para fundo escuro) some na faixa clara: o app.js detecta e põe o azul da paleta atrás. */
.affiliate-profile-strip-logo.is-light-logo{height:2.6rem;background:#0b2745;padding:.3rem .65rem}
.affiliate-profile-strip-logo img{display:block;max-width:100%;max-height:100%;object-fit:contain}
.affiliate-profile-strip-name{flex:0 1 auto;min-width:0;max-width:16rem;overflow:hidden;color:#0b2745;font-size:.95rem;font-weight:850;letter-spacing:-.015em;text-overflow:ellipsis;white-space:nowrap}
.affiliate-profile-strip dl{display:flex;min-width:0;margin:0}
.affiliate-profile-strip dl>div{display:grid;min-width:0;align-content:center;border-left:1px solid #c8d5e1;padding:0 1.25rem}
.affiliate-profile-strip dt{color:#63788e;font-size:.62rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase}
.affiliate-profile-strip dd{margin:.1rem 0 0;color:#0b2745;font-size:.82rem;font-weight:750;overflow-wrap:anywhere}
.affiliate-page[data-affiliate-section="minha-loja"] .affiliate-profile-strip{display:none}
.affiliate-page[data-affiliate-section="pedidos"] #resumo>#pedidos{display:block;margin-top:0}
/* Editor da loja: "Ver minha loja" e "Salvar loja" à esquerda do cabeçalho da prévia, fixos no topo
   da coluna enquanto a configuração rola ao lado; o aviso do salvar fica logo abaixo dos botões.
   A descrição ("Prévia da página" + nome da loja) vai à direita, alinhada à direita. */
.affiliate-live-preview>.preview-heading{position:sticky;top:0;z-index:3;background:#f1f6fa}
.preview-heading .affiliate-storefront-actions{display:flex;flex:0 1 auto;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:.35rem .5rem;min-width:0}
.preview-heading .affiliate-storefront-actions .form-result{order:1;flex:1 0 100%;min-width:0;min-height:0;margin:0;font-size:.75rem;line-height:1.3;text-align:left}
.preview-heading .affiliate-storefront-actions .button{flex:none}
.preview-heading>.preview-heading-label{min-width:0;justify-items:end;text-align:right}
.preview-heading>.preview-heading-label strong{max-width:100%;overflow-wrap:anywhere}
/* Editor do afiliado: a faixa de período fica acima do #resumo, que ocupa só o resto da janela.
   Com altura de janela cheia o rodapé do editor (≈18px) ficava cortado abaixo da tela. */
body.affiliate-page[data-affiliate-section="minha-loja"] .workspace{display:flex;flex-direction:column}
body.affiliate-page[data-affiliate-section="minha-loja"] .workspace>:not(#resumo){flex:none}
body.affiliate-page[data-affiliate-section="minha-loja"] #resumo{flex:1 1 auto;height:auto;min-height:0}
/* Polimento de limites (auditoria impeccable). */
/* Rodapé fixo do cadastro de produto: o recuo negativo acompanha o padding real do formulário
   (.9rem no painel). Com -1.5rem o "Salvar" ficava ~10px abaixo da borda da janela. */
.admin-page .operational-dialog .form-actions{bottom:-.9rem;margin-bottom:-.9rem}
/* Barras de lista: CSV/Excel/PDF assentam na mesma linha de base da busca e do "Organizar por". */
.admin-page .catalog-toolbar .list-export{align-items:flex-end;padding-bottom:.55rem}
/* Afiliados: Vitrine e Domínio podem quebrar linha; sem isso a tabela passa da tela em 1093px
   e esconde as ações de Acessos atrás da rolagem lateral. */
.affiliate-table-wrap [data-list="affiliates"] td:is(:nth-child(2),:nth-child(3)),[data-list="affiliates"] .affiliate-table-wrap td:is(:nth-child(2),:nth-child(3)){white-space:normal}
.affiliate-domain-cell>button{justify-self:start}
/* Pedidos: o selo de etapa mais longo ("Aguardando pagamento") cabe na coluna em vez de vazar 16px. */
.orders-table-wrap .order-stage{grid-template-columns:224px minmax(140px,max-content)}
/* Selo de status + Editar/Arquivar: o centro do texto dos links acompanha o do selo (24px × 18px). */
.admin-page .table-wrap td .status+.row-actions>.link-button{margin-top:-.1875rem}
/* Novo fechamento: botão na mesma altura dos campos da linha. */
.admin-page .commission-close-panel .commission-close-form .button{height:34px;min-height:34px;padding-block:0}
/* Afiliados em tela estreita: o selo "Novo cadastro" desce para baixo do nome e o e-mail quebra
   antes do "@" (<wbr>), em vez de alargar a tabela. Com espaço, a linha segue igual. */
[data-list="affiliates"] .affiliate-table-wrap td:first-child{white-space:normal}
.admin-page [data-list="affiliates"] .table-wrap td>strong.affiliate-name-line{flex-wrap:wrap;row-gap:.25rem}
/* Pendências do audit (2ª rodada). */
/* Pedidos e Logística em 1093px: nomes, entrega e serviço quebram por palavra e o status desce o selo
   para baixo do seletor quando falta largura; a tabela cabe sem rolagem lateral. Com espaço, nada muda. */
.orders-table-wrap td:is(:nth-child(3),:nth-child(4),:nth-child(5)),.logistics-table-wrap td:is(:nth-child(2),:nth-child(3),:nth-child(4)){white-space:normal;overflow-wrap:break-word}
.orders-table-wrap .order-stage{display:flex;flex-wrap:wrap;align-items:center;width:auto;gap:.35rem .55rem}
.orders-table-wrap .order-stage>div{flex:none}
.logistics-table-wrap .tracking-code{min-width:96px}
.logistics-table-wrap .tracking-url{min-width:150px}
/* Barra de lista sem espaço para tudo numa linha: os números ocupam a 1ª linha inteira e busca,
   ordenação e exportação dividem a 2ª. Antes a exportação descia sozinha e deixava um vão à esquerda. */
@container toolbar (min-width:761px) and (max-width:1000px){
  .catalog-toolbar:has(>.list-export){grid-template-columns:minmax(160px,1fr) auto auto}
  .catalog-toolbar:has(>.list-export)>dl{grid-column:1/-1;grid-row:1;border-bottom:1px solid #c8d5e1}
  .catalog-toolbar:has(>.list-export)>dl>div{flex:1 1 0}
  .catalog-toolbar:has(>.list-export)>dl>div:last-child{border-right:0}
  .catalog-toolbar:has(>.list-export)>:is(.catalog-search,.list-sort,.list-export){grid-row:2;grid-column:auto;border-top:0}
  .catalog-toolbar:has(>.list-export)>.catalog-search{border-left:0}
  .catalog-toolbar:has(>.list-export)>.list-export{border-left:1px solid #c8d5e1}
}
@container toolbar (min-width:761px){
  .catalog-toolbar.is-stacked:has(>.list-export){grid-template-columns:minmax(160px,1fr) auto auto}
  .catalog-toolbar.is-stacked:has(>.list-export)>dl{grid-column:1/-1;grid-row:1;border-bottom:1px solid #c8d5e1}
  .catalog-toolbar.is-stacked:has(>.list-export)>dl>div{flex:1 1 0}
  .catalog-toolbar.is-stacked:has(>.list-export)>dl>div:last-child{border-right:0}
  .catalog-toolbar.is-stacked:has(>.list-export)>:is(.catalog-search,.list-sort,.list-export){grid-row:2;grid-column:auto;border-top:0}
  .catalog-toolbar.is-stacked:has(>.list-export)>.catalog-search{border-left:0}
  .catalog-toolbar.is-stacked:has(>.list-export)>.list-export{border-left:1px solid #c8d5e1}
}
/* Botões de ação dos painéis na grade: os de formulário de endereço/conta na altura dos campos (40px);
   os que não dividem linha com campo, 38px. Antes saíam 38,98px do padding + linha. */
.admin-page :is(.account-form,.shipping-origin form)>.button,.affiliate-page .account-form>.button{height:40px;min-height:40px;padding-block:0}
.admin-page .operational-dialog .form-actions .button,.admin-page .network-rule-form>.button,.affiliate-page .affiliate-domain-actions .button,.affiliate-page .affiliate-domain-copy .button,.preview-heading .affiliate-storefront-actions .button{height:38px;min-height:38px;padding-block:0}
/* Catálogo: "Sem categoria" no mesmo corpo e linha de base das outras colunas. */
.admin-page .table-wrap td.catalog-category small{display:inline;margin:0;font-size:inherit;line-height:inherit}
/* Cartões de Categorias e Domínio próprio: o aviso vazio não soma espaço embaixo. */
.product-categories-create,.affiliate-domain-card{position:relative}
.product-categories-create .product-category-result:empty,.affiliate-domain-card .form-result:empty{position:absolute;min-height:0}
/* Configurações › Comissões: o formulário ocupa a largura do painel. */
.settings-panel .network-rule-form{max-width:none}
/* Pagamentos: referência inteira, quebrando nos hífens. */
.payments-table-wrap .payment-reference{max-width:240px;overflow:visible;white-space:normal;text-overflow:clip;overflow-wrap:anywhere}
/* Loja: selo "Destaques de <loja>" quebra dentro da margem do topo em vez de encostar na borda. */
.storefront-page .store-hero-copy>.status{max-width:100%;white-space:normal;overflow-wrap:anywhere}
/* Faixas laterais dos componentes novos viram borda inteira de 1px (painel de categorias, aviso do domínio). */
.product-categories-dialog .dialog-head>div{border-left:0;padding-left:0}
.product-categories-create{border:1px solid #c8d5e1;background:#f8fafc}
.affiliate-domain-notice{border:1px solid #c8d5e1}
/* Liberação de comissões (Comissões › Saldos) e carteira do afiliado (Repasses). Bloco próprio, migration 022. */
.commission-release-notice{margin:.6rem 0 0;border:1px solid #c8d5e1;background:#f8fafc;padding:.5rem .75rem;color:#294760;font-size:.74rem;line-height:1.45}
.balances-table-wrap td.release-awaiting-cell{font-weight:400;white-space:nowrap}
.release-awaiting-cell .release-amount{font-weight:800;font-variant-numeric:tabular-nums}
.release-toggle{display:inline-flex;align-items:center;gap:.3rem;margin-left:.6rem;border:0;border-radius:0;background:transparent;padding:0;color:#0b4b7d;font:inherit;font-size:.68rem;font-weight:700;cursor:pointer}
.release-toggle:before{width:5px;height:5px;border-right:2px solid #7e96ae;border-bottom:2px solid #7e96ae;content:"";transform:rotate(-45deg);transition:transform .18s ease}
.release-toggle[aria-expanded="true"]:before{border-color:#9b7300;transform:rotate(45deg)}
.release-toggle:hover{color:#0b2745}
.release-toggle:focus-visible{outline:2px solid #dcae28;outline-offset:2px}
.balances-table-wrap td:last-child .release-all-button{height:30px;min-height:30px;padding:0 .7rem;border-radius:0;font-size:.68rem;white-space:nowrap;font-variant-numeric:tabular-nums}
tr:has(>td [aria-expanded="true"].release-toggle){background:rgba(220,174,40,.08)}
.commission-release-row>td{padding:0!important;background:#f7f9fc}
.commission-release-panel{border-top:2px solid #dcae28;padding:.7rem .9rem .85rem}
.commission-release-heading{margin:0 0 .5rem;color:#0b2745;font-size:.76rem;font-weight:800}
.commission-release-table{width:100%;border-collapse:collapse;background:#fff}
.commission-release-table :where(th,td){border-bottom:1px solid #e1e8ef;padding:.4rem .6rem;font-size:.72rem;text-align:left;font-weight:400}
.commission-release-table th{color:#294760;font-weight:800}
.commission-release-table td:nth-child(4){font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.commission-release-table td:last-child{text-align:right}
.commission-release-table .link-button{margin:0;font-size:.68rem}
.affiliate-wallet{margin:.75rem 0 1rem;border:1px solid #bdcbd8;border-radius:0;background:#fff;padding:1rem 1.15rem}
.affiliate-wallet-figures{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem 1rem;margin:0}
.affiliate-wallet-figures>div{display:grid;gap:.15rem;border-left:1px solid #c8d5e1;padding-left:.75rem}
.affiliate-wallet-figures>div.is-available{border-left-color:#dcae28}
.affiliate-wallet-figures>div.is-debit{border-left-color:var(--red)}
.affiliate-wallet-figures>div.is-debit dd{color:var(--red)}
.affiliate-wallet-debits{display:grid;gap:.5rem;margin-top:.75rem}
.affiliate-wallet-debits h3{margin:0;color:#0b2745;font-size:.9rem}
.affiliate-wallet-debits td small,.debits-table-wrap td small{display:block;color:#5a6672;font-size:.7rem}
.affiliate-wallet-figures dt{color:#294760;font-size:.72rem;font-weight:800}
.affiliate-wallet-figures dd{margin:0;color:#0b2745;font-size:1.15rem;font-weight:800;font-variant-numeric:tabular-nums}
.affiliate-wallet-figures small{color:#5a6672;font-size:.68rem}
.affiliate-wallet-action{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1rem;margin-top:.9rem;border-top:1px solid #e1e8ef;padding-top:.8rem}
.affiliate-wallet-action .button{border-radius:0}
.affiliate-wallet-note{margin:0;color:#4a5d72;font-size:.74rem;line-height:1.45}
.affiliate-wallet-action .form-result{flex-basis:100%;margin:0}
.affiliate-wallet-action .form-result:empty{display:none}

/*
 * Integrações > Domínios dos afiliados: linha informativa no resumo (contagem, retorno do worker), abas de etapas
 * no guia (três em vez de Teste/Produção) e grupo opcional recolhido (Cloudflare). Cantos retos herdados do admin.
 */
.integration-checklist .is-info strong{color:var(--ink);font-weight:700}
.integration-guide-tabs:has(>:nth-child(3)){grid-template-columns:repeat(3,minmax(0,1fr))}
.integration-guide-tabs:has(>:nth-child(3)) button{padding:0 .4rem;line-height:1.2}
.integration-subgroup{grid-column:1/-1;border:1px solid var(--line);background:#f8fafc;padding:.6rem .8rem}
.integration-subgroup>summary{cursor:pointer;color:#0b2745;font-size:.76rem;font-weight:800}
.integration-subgroup-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.85rem 1.1rem;margin-top:.75rem}

/* Demonstração do produto (migration 023). Cadastro: bloco "Demonstração (opcional)" no formulário do Catálogo. Loja: "Acesso à demonstração" na página do produto, na paleta da loja. */
.product-demo-warning{margin:0;border-left:2px solid #dcae28;background:#f8fafc;padding:.45rem .65rem;color:#0b213c;font-size:.75rem;line-height:1.4}
.product-demo-warning[hidden]{display:none}
.product-demo{display:grid;gap:.75rem;margin-top:1.5rem;border:1px solid var(--store-line);background:var(--store-surface);padding:1.1rem}
.product-page-information .product-demo h2{margin:0}
.product-demo>p{margin:0;color:var(--store-muted);font-size:.82rem;line-height:1.5}
.product-demo-link{justify-self:start;min-height:44px;border:1px solid var(--store-brand);background:transparent;color:var(--store-brand)}
.product-demo-link:hover{background:var(--store-brand);color:var(--store-on-brand)}
.product-demo-credentials{display:grid;gap:.5rem;margin:0}
.product-demo-credentials div{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:.6rem;font-size:.82rem}
.product-demo-credentials dt{font-weight:850}
.product-demo-credentials dd{display:flex;min-width:0;align-items:center;gap:.5rem;margin:0}
.product-demo-credentials code{min-width:0;flex:1;overflow-wrap:anywhere;border:1px solid var(--store-line);background:var(--store-page);padding:.4rem .55rem;color:var(--store-ink);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.82rem}
.product-demo-copy{min-height:36px;flex:0 0 auto;border:1px solid var(--store-line);background:var(--store-surface);padding:0 .7rem;color:var(--store-brand);font-size:.75rem;font-weight:800;cursor:pointer}
.product-demo-copy:hover{border-color:var(--store-brand)}
@media(max-width:720px){.product-demo-link{justify-self:stretch;min-height:48px}.product-demo-copy{min-height:44px}}
/* Fim: demonstração do produto. */
/* Diálogo com terceira saída (ex.: Excluir definitivamente ao lado de Mover para a lixeira). */
.app-dialog-actions{flex-wrap:wrap}.app-dialog-alternate{border:1px solid #a3261b;background:#fff;color:#a3261b}.app-dialog-alternate:hover{background:#fdecea}.app-dialog-alternate[hidden]{display:none}
/* Subcategoria no painel de categorias: recuada sob a principal. */
.product-categories-create.has-parent{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}
.product-categories-create select{height:40px;min-height:40px}
.product-categories-list li.is-subcategory{padding-left:1.25rem;border-left:2px solid #dcae28}
.product-categories-list li.is-subcategory strong::before{content:"› ";color:#8a6a1c}
/* Menu de categorias do topo da loja: o painel de subcategorias fica fora da barra (que rola) e o JS o põe sob a categoria. */
.storefront-page .store-header nav .store-nav-category{display:inline-flex;align-items:center;gap:.2rem}
.store-subcategory-panel{position:absolute;z-index:30;display:grid;min-width:200px;max-width:min(320px,calc(100vw - 16px));border:1px solid var(--store-line,#c8d5e1);border-top:3px solid var(--store-accent,#d4a72c);border-radius:var(--store-radius-md,8px);overflow:hidden;background:var(--store-surface,#fff);padding:.25rem 0;box-shadow:0 14px 32px rgba(11,39,69,.18)}
.store-subcategory-panel[hidden]{display:none}
.storefront-page .store-subcategory-panel a,.storefront-page .store-subcategory-panel a:visited{display:flex;min-height:32px;align-items:center;padding:.3rem .75rem;color:var(--store-ink,#0b2745);font-size:.76rem;font-weight:600;text-decoration:none}
.storefront-page .store-subcategory-panel a:first-child{border-bottom:1px solid var(--store-line,#e3e9f0);font-weight:800}
.storefront-page .store-subcategory-panel a:hover,.storefront-page .store-subcategory-panel a:focus-visible{background:color-mix(in srgb,var(--store-ink,#0b2745) 10%,var(--store-surface,#eef3f8));outline:none}
@media(pointer:coarse){.storefront-page .store-subcategory-panel a{min-height:44px}}
.module-trash-open{display:inline-flex;align-items:center;gap:.4rem}.module-trash-open svg{width:16px;height:16px}.module-trash-open span{min-width:1.3rem;border:1px solid #c8d5e1;padding:0 .3rem;font-size:.7rem;text-align:center}
/* Lixeira do módulo como gaveta lateral (mesmo padrão de Integrações). */
.admin-page .trash-drawer{width:min(760px,calc(100% - 1rem))}
.trash-drawer .module-trash-note{margin:0 0 .9rem;border-left:3px solid #dcae28;background:#f8fafc;padding:.6rem .8rem;color:#405d76;font-size:.78rem}
.trash-drawer td small{display:block;color:#586f86}
.trash-drawer .row-actions{flex-wrap:wrap}
/* Gaveta Domínios dos afiliados (Painel): aprovação do apontamento feito pelo afiliado. */
.admin-page .domains-admin-drawer{width:min(860px,calc(100% - 1rem))}
.domains-admin-drawer td small{display:block;margin-top:.2rem;color:#586f86}
.domains-admin-drawer .row-actions{flex-wrap:wrap}
.domains-admin-note{margin:0 0 .9rem;border-left:3px solid #dcae28;background:#f8fafc;padding:.6rem .8rem;color:#405d76;font-size:.78rem}
.domains-admin-note .text-button{padding:0;font-size:inherit;text-decoration:underline}
/* Editor da loja: menu de categorias isolado dos atalhos, em bloco de largura total (chave + escolha das categorias). */
.storefront-category-menu-editor{display:grid;grid-column:1/-1;gap:.6rem;margin-top:.35rem;border:1px solid #d8e1ea;border-left:3px solid #dcae28;background:#f8fafc;padding:.7rem .8rem}
.storefront-category-menu-head{display:grid;gap:.2rem}.storefront-category-menu-head small,.storefront-category-menu-empty{margin:0;color:#586f86;font-size:.72rem}
.storefront-category-menu-list{display:grid;gap:.5rem;border-top:1px solid #d8e1ea;padding-top:.6rem}.storefront-category-menu-list[hidden]{display:none}
.storefront-category-menu-list>p{display:grid;gap:.15rem;margin:0;color:#0b2745;font-size:.78rem}.storefront-category-menu-list>p small{color:#586f86;font-size:.72rem;font-weight:500}
.storefront-category-menu-list ul{display:grid;gap:.15rem .9rem;margin:0;padding:0;list-style:none}
.storefront-category-menu-list ul ul{grid-template-columns:1fr;margin:.1rem 0 .25rem 1.4rem;border-left:2px solid #dcae28;padding-left:.6rem}
.storefront-category-menu-list label{display:flex;min-height:30px;align-items:center;gap:.5rem;color:#0b2745;font-size:.78rem;font-weight:700;cursor:pointer}
.storefront-category-menu-list ul ul label{font-weight:600}
.storefront-category-menu-list li.is-muted>label{opacity:.45}
/* Botões, selos e campos da loja com cantos retos (pedido do operador em 05/10/2026); cartões seguem com o raio discreto. */
.storefront-page,.customer-page,.checkout-page{--store-radius-sm:0}
/*
 * Paletas escuras (StorefrontLayout 'scheme'=>'dark', hoje a Cinema): a loja inteira fica escura, não só o cabeçalho.
 * Regras antigas da loja têm branco e azul-marinho fixos; aqui elas passam a seguir as variáveis da paleta.
 * O aviso da aplicação (.app-dialog) fica de fora: é sempre claro.
 */
.scheme-dark{color-scheme:dark;background:var(--store-page);color:var(--store-ink)}
.scheme-dark :is(h1,h2,h3,h4,legend,dt,label,summary,.section-heading h2):not(.app-dialog *):not(.button *):not(.status){color:var(--store-ink)}
.scheme-dark :is(p,small,dd,figcaption):not(.app-dialog *):not(.button *):not(.status):not(.product-availability){color:var(--store-muted)}
.scheme-dark :is(input:not([type=checkbox],[type=radio],[type=range]),select,textarea):not(.app-dialog *){border-color:var(--store-line);background:var(--store-media);color:var(--store-ink)}
.scheme-dark :is(input,textarea)::placeholder{color:var(--store-muted)}
.scheme-dark .button.ghost:not(.app-dialog *){border-color:var(--store-line);background:transparent;color:var(--store-ink)}
.scheme-dark .button.ghost:not(.app-dialog *):hover:not(:disabled){border-color:var(--store-accent);background:var(--store-brand-soft);color:var(--store-ink)}
.scheme-dark .button.dark{border-color:var(--store-line);background:var(--store-brand);color:var(--store-on-brand)}
.scheme-dark .product-media,.scheme-dark .product-media span{background:var(--store-media);color:var(--store-muted)}
.scheme-dark :is(.product-grid,.list-pagination,.catalog-empty,.catalog-filters,.order-status-form,.order-status-section){border-color:var(--store-line);background:var(--store-page)}
.scheme-dark :is(.catalog-filters label,.order-status-form label,.order-status-form .form-result){background:var(--store-surface);color:var(--store-ink)}
.scheme-dark .list-pagination :is(button,select){border-color:var(--store-line);background:var(--store-surface);color:var(--store-ink)}
.scheme-dark :is(.product-breadcrumb a,.product-breadcrumb){color:var(--store-muted)}
.scheme-dark .product-rail-controls button{border-color:var(--store-line);background:var(--store-surface);color:var(--store-ink)}
.scheme-dark .product-rail-controls button:hover:not(:disabled){border-color:var(--store-accent);background:var(--store-brand-soft)}
.scheme-dark :is(.cart-peek,.cart-peek>footer,.cart-dialog){border-color:var(--store-line);background:var(--store-surface);color:var(--store-ink)}
.scheme-dark :is(.cart-peek-line,.cart-peek-quantity,.cart-peek-quantity output){border-color:var(--store-line)}
.scheme-dark :is(.cart-peek-media,.cart-peek-quantity button){background:var(--store-media);color:var(--store-ink)}
.scheme-dark :is(.customer-panel,.customer-card,.customer-empty,.privacy-notice){border-color:var(--store-line);background:var(--store-surface);color:var(--store-ink)}
.scheme-dark :is(.customer-switch a){color:var(--store-muted)}
.scheme-dark :is(.customer-switch a[aria-current="page"]){color:var(--store-ink)}
.scheme-dark .customer-auth-intro li svg{background:var(--store-brand-soft);color:var(--store-accent)}
.scheme-dark :is(.checkout-page-form fieldset,.checkout-summary,.checkout-confirmation){border-color:var(--store-line);background:var(--store-surface)}
.scheme-dark a:not(.button):not(.store-brand):not(.app-dialog *){color:inherit}
.scheme-dark .product-media span{background:transparent}
.scheme-dark .customer-auth-intro :is(strong,h2){color:var(--store-ink)}
.scheme-dark :is(.customer-order-pay,.customer-alert){border-color:color-mix(in srgb,var(--store-accent,#c99332) 45%,var(--store-line));background:color-mix(in srgb,var(--store-accent,#c99332) 16%,var(--store-surface))}
.scheme-dark .customer-order-list .customer-order-pay{border-top-color:color-mix(in srgb,var(--store-accent,#c99332) 45%,var(--store-line))}
.scheme-dark :is(.customer-order-pay>span,.customer-alert strong,.customer-alert span){color:var(--store-ink)}
.scheme-dark .customer-sidebar{border-color:var(--store-line);background:var(--store-surface)}
.scheme-dark .customer-nav a:hover{background:var(--store-brand-soft)}
.scheme-dark .customer-nav a[aria-current="page"]{background:color-mix(in srgb,var(--store-accent,#dcae28) 16%,var(--store-surface))}
.scheme-dark .customer-shortcut{border-color:var(--store-line);background:var(--store-surface)}
.scheme-dark .customer-shortcut strong{color:var(--store-ink)}
.scheme-dark :is(.cart-remove,.cart-peek-remove){color:var(--store-ink)}
.checkout-page.scheme-dark .cart-remove{color:var(--store-ink)}
.scheme-dark .checkout-account strong{color:var(--store-ink)}
.scheme-dark .customer-identity strong{color:var(--store-ink)}
.scheme-dark :is(.customer-timeline li.is-done,.customer-timeline li.is-current){color:var(--store-ink)}
.scheme-dark :is(.customer-panel>h2,.customer-card>h2,.customer-heading h1,.privacy-notice summary,.privacy-notice dt,.customer-order-row strong,.customer-summary dd,.customer-item-info strong,.customer-item-price strong,.customer-totals .is-total,.customer-facts dd){color:var(--store-ink)}
.scheme-dark .password-toggle{border-color:var(--store-line);background:transparent;color:var(--store-ink)}
/* O aviso do catálogo vazio só aparece sem itens: .empty-state (display:grid) vencia o atributo hidden em todas as paletas. */
.catalog-empty[hidden]{display:none}
/* Destaque usado como texto sobre fundo da página: paletas de destaque claro (âmbar) ou escuras definem --store-accent-text legível; as demais seguem o destaque. */
.storefront-page .product-body>small,.product-page-category,.checkout-page :is(.checkout-heading span,.checkout-summary-heading span),.customer-auth-kicker,.storefront-page .catalog-section>.catalog-filters>.button,.product-back-link:hover{color:var(--store-accent-text,var(--store-accent))}
.scheme-dark :is(.product-body>small,.product-page-category,.customer-auth-kicker,.checkout-heading span,.checkout-summary-heading span){color:var(--store-accent-text,var(--store-accent))}
/* Navegação do editor: lista ordenável (setas), no mesmo desenho das Seções públicas; Início fixo no topo. */
.storefront-nav-order{display:grid;grid-column:1/-1;margin:0;border:1px solid #d8e1ea;padding:0;list-style:none}
.storefront-nav-order li{display:grid;min-height:46px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.5rem;border-top:1px solid #d8e1ea;padding-left:.6rem}
.storefront-nav-order li:first-child{border-top:0}
.storefront-nav-order li>label{display:flex;min-width:0;align-items:center;gap:.55rem;font-size:.75rem;font-weight:750}
.storefront-nav-order li.is-fixed{background:#f8fafc}.storefront-nav-order li.is-fixed>small{padding-right:.7rem;color:#586f86;font-size:.7rem}
.storefront-nav-order-name{display:grid;gap:.1rem;color:#0b2745;font-size:.75rem;font-weight:750}.storefront-nav-order-name small{color:#586f86;font-size:.68rem;font-weight:500}
.storefront-nav-order li>div{display:grid;grid-template-columns:44px 44px}
.storefront-nav-order li.is-just-moved{animation:section-moved 1.2s ease-out}
.storefront-nav-order li>div button{display:grid;width:44px;height:44px;min-height:44px;place-items:center;border:1px solid #9fb1c2;border-right:0;border-bottom:0;border-radius:0;background:#fff;padding:0;color:#0b2745}
.storefront-nav-order li>div button:last-child{border-right:0}
.storefront-nav-order li>div button span{width:9px;height:9px;border-top:2px solid currentColor;border-left:2px solid currentColor;transform:translateX(2px) rotate(-45deg)}
.storefront-nav-order li>div button[data-nav-down] span{transform:translateX(-2px) rotate(135deg)}
.storefront-nav-order li>div button:hover:not(:disabled){background:#0b2745;color:#fff}
.storefront-nav-order li>div button:focus-visible{position:relative;z-index:1;outline:2px solid #dcae28;outline-offset:1px}
.storefront-nav-order li>div button:disabled{cursor:not-allowed;opacity:.32}
/* Ordem das categorias do menu: setas ao lado de cada categoria e subcategoria. */
.storefront-category-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.storefront-category-order{display:inline-grid;flex:0 0 auto;grid-template-columns:30px 30px}
.storefront-category-order button{display:grid;width:30px;height:30px;min-height:30px;place-items:center;border:1px solid #9fb1c2;border-radius:0;background:#fff;padding:0;color:#0b2745}
.storefront-category-order button+button{border-left:0}
.storefront-category-order button span{width:7px;height:7px;border-top:2px solid currentColor;border-left:2px solid currentColor;transform:translateY(2px) rotate(45deg)}
.storefront-category-order button[data-category-down] span{transform:translateY(-2px) rotate(225deg)}
.storefront-category-order button:hover:not(:disabled){background:#0b2745;color:#fff}
.storefront-category-order button:focus-visible{position:relative;z-index:1;outline:2px solid #dcae28;outline-offset:1px}
.storefront-category-order button:disabled{cursor:not-allowed;opacity:.32}
.storefront-category-menu-list ul{grid-template-columns:1fr}
/* Ficha do produto como painel lateral do Catálogo. */
.admin-page .product-drawer{width:min(980px,calc(100% - 1rem))}
.product-drawer .settings-header .affiliate-card-title-line{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}
.product-drawer .settings-header h2{margin:0}
.product-drawer-actions{display:flex;flex:0 0 auto;align-items:flex-start;gap:.5rem}
.product-drawer .product-card-stage{min-height:340px}
.product-drawer .product-card-stage :is(img,video){max-height:460px}
/* Produtos digitais no checkout: grupo à parte, sem frete; só digitais = etapa Entrega some e o aviso explica. */
.cart-group-title{display:grid;gap:.1rem;margin:.6rem 0 0;padding:.45rem 0;border-bottom:1px solid var(--store-line,#c8d5e1);color:var(--store-ink,#0b2745);font-size:.72rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase}
.cart-group-title:first-child{margin-top:0}
.cart-group-title small{color:var(--store-muted,#586f86);font-size:.72rem;font-weight:500;letter-spacing:0;text-transform:none}
.cart-digital-tag{display:inline-block;width:max-content;margin-top:.2rem;border:1px solid var(--store-line,#c8d5e1);padding:.05rem .4rem;color:var(--store-accent-text,var(--store-accent,#795900));font-size:.68rem;font-weight:800}
.checkout-digital-note,.checkout-mixed-note{display:grid;gap:.2rem;margin:0 0 1rem;border:1px solid var(--store-line,#c8d5e1);border-left:3px solid var(--store-accent,#dcae28);background:var(--store-surface,#fff);padding:.75rem .9rem;color:var(--store-muted,#405d76);font-size:.84rem}
.checkout-digital-note[hidden],.checkout-mixed-note[hidden],[data-shipping-fieldset][hidden]{display:none}
.checkout-digital-note strong{color:var(--store-ink,#0b2745)}
.checkout-mixed-note{margin:.2rem 0 .8rem}
/* Cantos retos também no checkout e na conta do cliente (botões e campos), como na vitrine. */
.checkout-page :where(button,input,select,textarea,.button),.customer-page :where(.button,button,select,textarea),.customer-page .customer-form input:not([type="checkbox"]){border-radius:0}
.checkout-page .cart-line button{border-radius:0}
/* Minha conta › Meus produtos digitais. */
.customer-search{display:grid;gap:.35rem;margin:0 0 .5rem;color:var(--store-ink,#0b2745);font-size:.8rem;font-weight:800}
.customer-search input{min-height:46px;border:1px solid var(--store-line,#c8d5e1);border-radius:0;background:var(--store-surface,#fff);padding:0 .9rem;color:var(--store-ink,#0b2745);font-size:16px}
.customer-search-count{margin:0 0 .8rem;color:var(--store-muted,#586f86);font-size:.78rem}
.customer-digital-list{display:grid;gap:.75rem;margin:0;padding:0;list-style:none}
.customer-digital-item{display:grid;grid-template-columns:96px minmax(0,1fr) auto;align-items:center;gap:1rem}
.customer-digital-item[hidden]{display:none}
.customer-digital-thumb{display:grid;width:96px;height:96px;place-items:center;overflow:hidden;background:var(--store-media,#e8eef4);color:var(--store-muted,#586f86);font-size:2rem;font-weight:900}
.customer-digital-thumb img{width:100%;height:100%;object-fit:cover}
.customer-digital-copy{display:grid;gap:.3rem;min-width:0}
.customer-digital-copy>strong{color:var(--store-ink,#0b2745);font-size:1rem}
.customer-digital-copy small{color:var(--store-muted,#586f86);font-size:.78rem}
.customer-digital-copy small a{color:inherit;font-weight:800}
.customer-digital-state{width:max-content;max-width:100%;border:1px solid var(--store-line,#c8d5e1);padding:.1rem .5rem;font-size:.72rem;font-weight:800}
.customer-digital-state.is-ready{border-color:#067647;color:#067647}
.customer-digital-state.is-waiting{color:var(--store-accent-text,var(--store-accent,#795900))}
.customer-digital-state.is-off{color:var(--store-muted,#586f86)}
.customer-digital-instructions{margin:0;color:var(--store-muted,#405d76);font-size:.82rem;white-space:normal}
@media(max-width:640px){.customer-digital-item{grid-template-columns:72px minmax(0,1fr)}.customer-digital-thumb{width:72px;height:72px}.customer-digital-item .customer-actions{grid-column:1/-1}.customer-digital-item .customer-actions .button{width:100%}}
.customer-page .button,.customer-page .customer-form input:not([type="checkbox"]){border-radius:0}
/* Pedidos: cancelamento com motivo e estorno. */
.order-cancel-flag{display:block;margin-top:.35rem;border-left:3px solid #dcae28;padding-left:.45rem;color:#7a4a12;font-size:.72rem;font-weight:800}
.order-cancel-flag.is-error{border-color:#9f2d24;color:#9f2d24}
.order-cancel-reason{display:block;margin-top:.3rem;color:#586f86;font-size:.72rem}
/* Minha conta: cancelar/solicitar cancelamento. */
.customer-cancel{margin:0 0 1rem;border:1px solid var(--store-line,#c8d5e1);background:var(--store-surface,#fff)}
.customer-cancel summary{padding:.75rem 1rem;color:var(--store-ink,#0b2745);font-size:.86rem;font-weight:800;cursor:pointer}
.customer-cancel form{border-top:1px solid var(--store-line,#c8d5e1);padding:1rem}
.customer-cancel-requested{display:grid;gap:.2rem;margin:0 0 1rem;border:1px solid var(--store-line,#c8d5e1);border-left:3px solid var(--store-accent,#dcae28);background:var(--store-surface,#fff);padding:.75rem 1rem;color:var(--store-muted,#405d76);font-size:.84rem}
.customer-cancel-requested strong{color:var(--store-ink,#0b2745)}
/* Diálogo de cancelamento: janela central compacta (não é gaveta). */
.admin-page dialog.order-cancel-dialog{width:min(540px,calc(100% - 2rem));max-height:calc((100dvh / var(--z)) - 2rem);margin:auto;border:0;border-top:4px solid #dcae28;padding:0;background:#fff;color:#0b2745;box-shadow:0 24px 60px rgba(6,22,40,.35)}
.order-cancel-dialog::backdrop{background:rgba(6,22,40,.55)}
.order-cancel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;border-bottom:1px solid #d8e1ea;padding:1rem 1.25rem}
.order-cancel-head h2{margin:.2rem 0 .4rem;font-size:1.1rem}.order-cancel-head p{margin:0;color:#405d76;font-size:.82rem;line-height:1.5}
.order-cancel-form{display:grid;align-content:start;gap:.8rem;padding:1rem 1.25rem 1.25rem}
.order-cancel-form label{display:grid;gap:.35rem;font-size:.78rem;font-weight:800}
.order-cancel-form select{height:42px;min-height:42px}.order-cancel-form textarea{min-height:84px;resize:vertical}
.order-cancel-form .button{justify-self:end;min-height:42px}

/* Atalhos do Painel: recorte da lista, volta ao Painel e ficha do pedido em gaveta. */
.list-preset{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1.1rem;margin:1rem 0 0;border:1px solid #d5e0eb;border-left:3px solid #dcae28;background:#fff;padding:.6rem .9rem;color:#0b2745;font-size:.8rem}
.list-preset[hidden]{display:none}
.list-preset>span{margin-right:auto}
.list-preset .link-button{margin:0}
.module-back{display:inline-flex;align-items:center;gap:.4rem;margin:0 0 .8rem;border:0;background:transparent;padding:0;color:#0b2745;font-size:.8rem;font-weight:800}
.module-back:hover{color:#9b7300;text-decoration:underline;text-underline-offset:4px}
.module-back[hidden]{display:none}
[data-order-row],[data-payment-row]{cursor:pointer}
.order-drawer{width:min(600px,calc(100% - 1rem))}
.order-card-body .card-block{padding:.4rem 0}
.order-card-body .card-block+.card-block{border-top:0}
.order-card-body .card-block-facts{gap:.4rem 1rem}
.order-card-status{margin:0 0 1rem;color:#63788e;font-size:.85rem}
.order-card-status.error{color:#b42318}
.order-card-status[hidden]{display:none}
.order-card-tracking{color:#9b7300;font-weight:800}

/* Afiliados: selo de status clicável, situação do domínio que abre a gaveta Domínios e Excluir bloqueado. */
button.status-toggle{border:1px solid transparent;cursor:pointer;font-family:inherit}
button.status-toggle:hover{border-color:currentColor}
button.status-toggle:focus-visible{outline:2px solid #dcae28;outline-offset:2px}
.affiliate-domain-status{justify-self:start;border:0;background:transparent;padding:0;color:#63788e;font-size:.72rem;text-align:left;cursor:pointer}
.affiliate-domain-status:hover{color:#9b7300;text-decoration:underline;text-underline-offset:3px}
.link-button.is-blocked{opacity:.45;cursor:help}

/*
 * Títulos das seções da loja (Destaques, Ofertas, Mais vendidos…): mais presença sem trocar a identidade.
 * Linha em cima e embaixo do bloco do título, na largura toda da seção, na cor de destaque da paleta da loja.
 * O operador pediu essas duas linhas (como eram antes) só que coloridas; barra vertical ao lado do título foi recusada.
 */
.storefront-page .store-section .section-heading{margin-bottom:1.25rem;border:0;border-top:2px solid var(--store-accent);border-bottom:2px solid var(--store-accent);padding:.55rem 0}
.storefront-page .store-section .section-heading>div{display:grid;gap:.2rem}
.storefront-page .store-section :is(.section-heading h2){width:auto;border:0;padding:0;color:var(--store-ink);font-size:clamp(1.45rem,2.2vw,1.9rem);font-weight:800;line-height:1.1;letter-spacing:-.03em}
.storefront-page .store-section .section-heading p{max-width:68ch;margin:0;color:var(--store-muted);font-size:.95rem;line-height:1.45}
@media(max-width:640px){
  .storefront-page .store-section .section-heading{margin-bottom:1rem;padding:.45rem 0}
  .storefront-page .store-section :is(.section-heading h2){font-size:1.3rem}
  .storefront-page .store-section .section-heading p{font-size:.88rem}
}

/* Comissões: o que ainda está no prazo de devolução mostra a data de liberação no lugar do botão. */
.release-window-note{display:flex;align-items:center;gap:.3rem;margin-top:.3rem;color:#63788e;font-size:.72rem;font-weight:700}

/* Acompanhe seu pedido: atalho para Minha conta; o resultado da volta do pagamento aparece logo abaixo. */
.storefront-page .order-status-cta{display:flex}
.storefront-page .order-status-result:empty{display:none}
.storefront-page .order-status-result{margin-top:1rem}
.storefront-page .order-status-form[hidden]{display:none}

/* Editor da loja: o topo mostra Logo ou Nome; o lado não escolhido fica esmaecido e travado. */
.brand-mode{display:inline-flex;justify-self:start;width:max-content;margin:.25rem 0 .9rem;border:1px solid #c8d5e1;background:#fff}
.brand-mode label{display:flex;align-items:center;margin:0;cursor:pointer}
.brand-mode input{position:absolute;opacity:0;pointer-events:none}
.brand-mode span{padding:.28rem .9rem;color:#405d76;font-size:.78rem;font-weight:800;line-height:1.2}
.brand-mode input:checked+span{background:#0b2745;color:#fff}
.brand-mode input:focus-visible+span{outline:2px solid #dcae28;outline-offset:-2px}
.store-logo-field.is-inactive{opacity:.45}
.store-logo-field.is-inactive .store-logo-picker{pointer-events:none}
label.is-readonly input{background:#f3f5f8;color:#6b7683;cursor:not-allowed}

/* Carteira do afiliado: regra de liberação da comissão (prazo mínimo de 7 dias após a entrega). */
.affiliate-wallet-rule{grid-column:1/-1;margin:.25rem 0 0;border-left:3px solid #dcae28;background:#fff;padding:.7rem .9rem;color:#405d76;font-size:.8rem;line-height:1.5}
.affiliate-wallet-rule strong{color:#0b2745}
/* Cabeçalho das gavetas: só logo, título (com "!" de ajuda) e Fechar. A descrição mora no "!" para não roubar altura. */
.settings-drawer .settings-header{min-height:0;align-items:center;gap:1rem;padding:.65rem 1.25rem}
.settings-header .drawer-logo img{height:3.1rem}
.drawer-title-line{display:flex;align-items:center;gap:.5rem;min-width:0}
.settings-header .drawer-title-line h2,.integration-card .drawer-title-line h2{width:auto;border:0;padding:0}
/* Cards de Integrações em linhas largas: topo com nome, situação e ações; abaixo os itens lado a lado (rótulo ··· situação). */
.integration-card{grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:1rem;row-gap:.75rem;padding:1rem 1.15rem}
.integration-card>.integration-identity{display:flex;grid-column:1;grid-row:1;flex-wrap:wrap;align-items:center;gap:.6rem 1rem}
.integration-identity>header{display:flex;align-items:center;justify-content:flex-start;gap:1rem}
.integration-identity .eyebrow{margin-bottom:.2rem;white-space:nowrap}
.integration-card .status{white-space:nowrap}
.integration-identity>.integration-guide-open{margin:0 0 0 auto}
.integration-card>footer{display:flex;grid-column:2;grid-row:1;align-items:center;gap:.75rem}
.integration-card:not(:has(.integration-webhook))>footer{grid-row:1}
.integration-card>footer .form-result:empty{display:none}
.integration-card>.integration-checklist{display:grid;grid-column:1/-1;grid-row:2;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));column-gap:1.5rem;border-top:1px solid var(--line)}
.integration-checklist li{align-items:center;padding:.5rem 0}
.integration-checklist li>span{min-width:0}
.integration-checklist li>strong{flex:0 0 auto;max-width:60%}
.integration-card>.integration-webhook{grid-column:1/-1;grid-row:3;grid-template-columns:auto minmax(0,1fr) auto}
.integration-card>.integration-webhook span{grid-column:auto}
.integration-card>.integration-config{grid-column:1/-1;grid-row:auto}
@media(max-width:900px){.integration-card>footer{grid-row:auto!important}.integration-identity>.integration-guide-open{margin-left:0}}
.integration-checklist li:has(.integration-item-action){grid-column:span 2;flex-wrap:nowrap}
.integration-checklist li:has(.integration-item-action)>span{flex:1}
.integration-checklist .integration-item-action{order:3;min-height:30px;padding:.3rem .6rem;font-size:.72rem;white-space:nowrap}
.integration-checklist li:has(.integration-item-action)>span{flex:1 1 auto;white-space:nowrap}
.integration-checklist li:has(.integration-item-action)>strong{max-width:none}
.integration-checklist .integration-item-action{flex:0 0 auto;width:auto;margin:0}
.integration-card:not(:has(>footer))>.integration-identity{grid-column:1/-1}
/* Rótulo do campo em uma linha só (nome, "!" e situação à direita): todas as caixas do formulário ficam na mesma altura. */
.integration-field>label{flex-wrap:nowrap;align-items:center;min-height:1.25rem;white-space:nowrap}
.integration-field>label>.integration-source{min-width:0;margin-left:auto;overflow:hidden;text-overflow:ellipsis}
.integration-field>label.integration-clear{white-space:normal}
/* Situação do card à vista (pedido do operador em 08/10/2026, exceção à paleta travada): vermelho enquanto falta algo, verde-claro quando pronto. */
.integration-card[data-state]{border:1px solid #e3a3a3;box-shadow:inset 4px 0 0 #c94a4a}
.integration-card[data-state="ready"]{border-color:#a8d9b6;box-shadow:inset 4px 0 0 #4fae6a;background:#f6fbf7}
.integration-card[data-state="off"],.integration-card[data-state="partial"]{background:#fdf7f7}
/* Domínios: colunas fixas, domínio quebra em qualquer ponto e as ações cabem sem cortar na borda. */
.domains-admin-drawer table{width:100%;table-layout:fixed}
.domains-admin-drawer th:nth-child(1){width:22%}.domains-admin-drawer th:nth-child(2){width:26%}.domains-admin-drawer th:nth-child(4){width:7.5rem}
.domains-admin-drawer td:nth-child(2){overflow-wrap:anywhere}
.domains-admin-drawer td:nth-child(4) .row-actions{flex-direction:column;align-items:flex-start;gap:.4rem}
.domains-admin-drawer td{white-space:normal}
.domains-admin-drawer td:nth-child(3),.domains-admin-drawer td:nth-child(3) small{white-space:normal;overflow-wrap:anywhere}
/* Coluna do formulário nunca passa do próprio espaço: o rótulo corta a situação (…) em vez de invadir a vizinha. */
.integration-config-form>*,.integration-field{min-width:0}
.integration-field>label{overflow:hidden}
.integration-field>label>.integration-source{flex:0 1 auto}
.integration-field>label>.context-help{flex:0 0 auto}
.integration-checklist li>span{white-space:nowrap}
.integration-checklist li>span{flex:0 0 auto}.integration-checklist li>strong{flex:1 1 0;min-width:0;max-width:none}
/* Logo do serviço no card de integração: quadro branco fixo, logo contido. */
.integration-logo{display:grid;width:48px;height:48px;flex:0 0 48px;place-items:center;border:1px solid #c8d5e1;background:#fff}
.integration-logo img{display:block;width:30px;height:30px;object-fit:contain}
.integration-identity>header{gap:.85rem}
/* Marcas cujo símbolo é feito para fundo de cor (ícone de app oficial): quadro na cor da marca. */
.integration-logo[data-logo="melhor-envio"]{border-color:#00519d;background:#00519d}
.integration-logo[data-logo="mercado-pago"]{border-color:#009ee3;background:#009ee3}
.integration-logo[data-logo="melhor-envio"] img{width:34px}
/* Semáforo das integrações (pedido do operador 08/10/2026): vermelho = não configurado, amarelo = incompleto, verde = pronto.
   A situação fica sempre na linha da categoria, como ponto + texto discreto; os itens e campos usam o mesmo ponto. */
.integration-card[data-state="partial"]{border-color:#e8cf86;box-shadow:inset 4px 0 0 #d9a400;background:#fffcf2}
.integration-kicker{display:flex;align-items:center;gap:.6rem;margin-bottom:.2rem}
.integration-kicker .eyebrow{margin:0}
.integration-state,.integration-checklist li:not(.is-info):not(.integration-environment)>strong,.integration-source{display:inline-flex;align-items:center;gap:.35rem;color:#5d7186;font-size:.72rem;font-weight:650;letter-spacing:0;text-transform:none}
.integration-state::before,.integration-checklist li:not(.is-info):not(.integration-environment)>strong::before,.integration-source::before{width:.5rem;height:.5rem;flex:0 0 .5rem;background:#c94a4a;content:""}
.integration-state[data-state="partial"]::before{background:#d9a400}
.integration-state[data-state="ready"]::before{background:#2f9e55}
.integration-checklist li>strong{justify-content:flex-end}
.integration-checklist .is-ok>strong,.integration-checklist .is-missing>strong{color:#5d7186}
.integration-checklist .is-ok>strong::before{background:#2f9e55!important}
.integration-checklist .is-missing>strong::before{background:#d9a400!important}
.integration-source.is-panel,.integration-source.is-server{color:#5d7186}
.integration-source.is-panel::before,.integration-source.is-server::before{background:#2f9e55}
.integration-source.is-none{color:#5d7186}
.integration-source.is-none::before{background:#d9a400}
.integration-source.is-optional::before{background:#a9b8c6}
/* O "!" do rótulo precisa escapar do rótulo para abrir: quem corta é só a situação. */
.integration-field>label{overflow:visible}
.integration-field>label>.integration-source{overflow:hidden;white-space:nowrap}
.integration-field .context-help-tooltip{white-space:normal}
.integration-checklist li>strong{align-items:flex-start;text-align:right}.integration-checklist li>strong::before{margin-top:.28em}
.integration-checklist li>strong{display:block}.integration-checklist li>strong::before{display:inline-block;margin:0 .35rem 0 0;vertical-align:.05em}
.integration-checklist li:not(.is-info):not(.integration-environment)>strong{display:block;text-align:right}
/* Rótulo apertado: a situação encolhe primeiro (sobra o marcador), depois o nome corta com "…"; nunca invade a coluna vizinha. */
.integration-field>label{max-width:100%}
.integration-field-name{min-width:0;flex:0 1 auto;overflow:hidden;text-overflow:ellipsis}
.integration-field>label>.integration-source{flex:0 1000 auto;min-width:.5rem}

/* Comunicação (central), arquitetura das Notificações da Central RDG: conexão no topo; duas colunas (Central | Comprador),
   cada uma com cabeçalho, Números, divisória e Mensagens (editor e prévia empilhados); histórico de envios abaixo. */
.communication-module .integrations-alert{margin-top:1.25rem}
.comm-status{position:relative;display:grid;grid-template-columns:auto minmax(200px,1.3fr) repeat(3,minmax(110px,1fr)) auto;align-items:center;gap:0;margin:1.25rem 0 1rem;border:1px solid rgba(220,174,40,.38);background:radial-gradient(120% 140% at 100% 0%,rgba(38,92,146,.55) 0%,rgba(11,39,69,0) 55%),radial-gradient(70% 120% at 0% 100%,rgba(220,174,40,.10) 0%,rgba(220,174,40,0) 60%),#08203a;padding:1.1rem 1.5rem;color:#edf4fb}
.comm-status>*{display:flex;align-items:center;gap:.6rem;border-left:1px solid rgba(255,255,255,.1);padding:0 1.3rem}
.comm-status>*:first-child{border-left:0;padding-left:0}
.comm-status .eyebrow{margin:0;border:1px solid rgba(220,174,40,.45);background:rgba(220,174,40,.1);padding:.2rem .5rem;color:#dcae28;font-size:.58rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase}
.comm-status .integration-state{color:#edf4fb;font-size:.78rem;white-space:normal}
.comm-summary{display:contents}
.comm-summary div{display:grid;gap:.2rem;align-content:center;border-left:1px solid rgba(255,255,255,.1);padding:0 1.3rem}
.comm-summary dt{margin:0;color:rgba(237,244,251,.6);font-size:.65rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}
.comm-summary dd{margin:0;background:linear-gradient(180deg,#fff 30%,#f2d27a 140%);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:clamp(1.35rem,2.1vw,1.75rem);font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.comm-summary dd.is-alert{background:none;-webkit-background-clip:initial;background-clip:initial;-webkit-text-fill-color:#ff9d9d;color:#ff9d9d}
.comm-status .button.ghost{border-color:rgba(220,174,40,.45);color:#f2d27a}
.comm-status .button.ghost:hover{background:rgba(220,174,40,.1)}
.comm-status .integration-logo{border:0;width:32px;height:32px;flex:0 0 32px;background:none}
.comm-status .integration-logo img{width:32px;height:32px}
.communication-config-drawer{width:min(900px,calc(100% - 1rem))}
.comm-tabs button{display:inline-flex;align-items:center;gap:.4rem}
.comm-tabs svg{width:15px;height:15px}
[data-comm-panel]{display:flex;flex-direction:column;gap:1.1rem}
.comm-divider{width:100%;height:0;margin:0;border:0;border-top:1px solid #d8e1ea}
.comm-block{display:flex;flex-direction:column;gap:.6rem}
.comm-block-title h3{margin:0;color:#5d7186;font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.comm-block-title p{margin:.15rem 0 0;color:#5d7186;font-size:.76rem;line-height:1.6}
.comm-block-title code{font-family:ui-monospace,Consolas,monospace;font-size:.72rem}
.comm-var{margin:0 .1rem;border:1px solid #c8d5e1;background:#f2f6fa;padding:.05rem .4rem;color:#0b4b7d;font:inherit;font-family:ui-monospace,Consolas,monospace;font-size:.7rem;cursor:pointer}
.comm-var:hover{border-color:#0b4b7d;background:#eaf1f7}
.comm-empty{margin:0;color:#5d7186;font-size:.8rem}
.comm-test-bar{display:flex;align-items:center;gap:.8rem;margin-bottom:.4rem;border:1px solid #d8e1ea;background:#f6f9fb;padding:.6rem .8rem}
.comm-test-bar label{display:flex;align-items:center;gap:.5rem;color:#3d4b5a;font-size:.7rem;font-weight:800}
.comm-test-bar input{min-height:36px;min-width:0;width:11rem;border:1px solid #c8d1da;background:#fff;padding:.4rem .6rem;font:inherit;font-size:.8rem}
.comm-test-bar p{margin:0;color:#5d7186;font-size:.76rem;line-height:1.5}
.integration-guide-form{margin-top:.75rem;border-top:1px solid #d8e1ea;padding-top:.75rem}
.integration-guide-form[hidden]{display:none}
.integration-guide-form-head{display:flex;align-items:center;gap:.8rem;margin-bottom:.85rem}
.integration-guide-form-head h3{margin:0;color:#0b2745;font-size:.95rem;line-height:1.25}
.integration-guide-form-head .eyebrow{display:block;margin-top:.15rem}
/* Números: lista com rolagem própria e a caixa de adicionar no fim. */
.comm-number-list{display:flex;flex-direction:column;gap:.5rem;max-height:24rem;overflow-y:auto;overscroll-behavior:contain;padding-right:.2rem}
.comm-number{border:1px solid #e2e9ef;background:#f8fafc;padding:.55rem .7rem}
.comm-number.is-paused .comm-number-id strong{color:#5d7186}
.comm-number-row{display:flex;align-items:center;gap:.45rem}
.comm-number-id{display:grid;flex:1;min-width:0}
.comm-number-id strong{overflow:hidden;color:#0b213c;font-size:.84rem;text-overflow:ellipsis;white-space:nowrap}
.comm-phone{color:#35536f;font-size:.76rem;font-variant-numeric:tabular-nums;white-space:nowrap}
.comm-number-events{margin:.25rem 0 0;color:#5d7186;font-size:.7rem}
.comm-pill{flex:0 0 auto;border:1px solid #d8e1ea;background:#fff;padding:.1rem .5rem;color:#5d7186;font-size:.7rem;white-space:nowrap}
.comm-pill.is-new{border-color:#dcae28;background:#fff3cf;color:#765500;font-weight:700}
.comm-row-button{flex:0 0 auto;border:0;background:none;padding:.25rem .4rem;color:#5d7186;font:inherit;font-size:.72rem;font-weight:700;cursor:pointer}
.comm-row-button:hover{background:#eaf1f7;color:#0b213c}
.comm-row-button.is-remove{font-size:1.05rem;line-height:1}
.comm-row-button.is-remove:hover{color:#b03a3a}
.comm-number-panel{display:grid;gap:.6rem;margin-top:.6rem;border-top:1px solid #d8e1ea;padding-top:.6rem}
.comm-number-panel[hidden],.comm-affiliate-picker[hidden]{display:none}
.comm-number-add{display:grid;gap:.55rem;margin-top:.15rem;border:1px dashed #b7c6d4;padding:.7rem}
.comm-add-row{display:flex;gap:.5rem}
.comm-add-row input,.comm-form-grid input{min-height:36px;min-width:0;border:1px solid #c8d1da;background:#fff;padding:.4rem .6rem;font:inherit;font-size:.8rem}
.comm-add-row input[name="label"]{width:8rem;flex:0 0 8rem}
.comm-add-row input[name="phone"]{flex:1}
.comm-add-row .button{flex:0 0 auto}
.comm-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}
.comm-form-grid label{display:grid;gap:.25rem;color:#3d4b5a;font-size:.7rem;font-weight:800}
.comm-choices{display:flex;flex-wrap:wrap;gap:.35rem 1rem;margin:0;border:0;padding:0}
.comm-choices legend{width:100%;margin-bottom:.25rem;padding:0;color:#3d4b5a;font-size:.7rem;font-weight:800}
.comm-choices label,.comm-inline-check,.comm-affiliate-picker label{display:inline-flex;align-items:center;gap:.4rem;color:#0b213c;font-size:.78rem}
.comm-affiliate-picker{display:grid;gap:.3rem;max-height:11rem;overflow:auto;border:1px solid #d8e1ea;background:#fff;padding:.55rem}
.comm-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}
.comm-actions .form-result,.comm-number-add>.form-result{min-height:0;margin:0;background:transparent;padding:0;font-size:.76rem}
/* Interruptor (liga/desliga) no lugar do checkbox, como na RDG: trilho e botão, sem cantos (padrão do painel). */
.comm-switch{position:relative;display:inline-flex;flex:0 0 auto;align-items:center;cursor:pointer}
.comm-switch input{position:absolute;width:1px;height:1px;opacity:0}
.comm-switch i{position:relative;display:block;width:34px;height:18px;background:#c8d5e1;transition:background-color .15s ease}
.comm-switch i::after{position:absolute;top:2px;left:2px;width:14px;height:14px;background:#fff;content:"";transition:transform .15s ease}
.comm-switch input:checked+span+i,.comm-switch input:checked+i{background:#2f9e55}
.comm-switch input:checked+span+i::after,.comm-switch input:checked+i::after{transform:translateX(16px)}
.comm-switch input:focus-visible+span+i,.comm-switch input:focus-visible+i{outline:2px solid #0b2745;outline-offset:2px}
/* Mensagens: lista estreita à esquerda escolhe o evento, subpainel à direita mostra só aquele editor + prévia —
   em vez de empilhar todos os eventos (ficava comprido e a prévia pequena demais pra ler). */
.comm-templates{display:grid;grid-template-columns:minmax(160px,13rem) minmax(0,1fr);gap:1rem;align-items:start}
.comm-template-nav{display:grid;gap:.15rem;border-right:1px solid #e2e9ef;padding-right:1rem}
.comm-template-nav-item{display:flex;align-items:center;gap:.5rem;border:0;background:none;padding:.5rem .4rem;color:#405d76;font:inherit;font-size:.78rem;font-weight:700;text-align:left;cursor:pointer}
.comm-template-nav-item:hover{background:#eaf1f7}
.comm-template-nav-item[aria-selected="true"]{background:#0b2745;color:#fff}
.comm-template-nav-item[aria-selected="true"] small{color:#cfe0f0}
.comm-template-nav-item small{color:#8396a8;font-size:.66rem;font-weight:700}
.comm-template-panels{min-width:0}
.comm-template{display:grid;gap:.5rem;padding:0}
.comm-template[hidden]{display:none}
.comm-template>header{display:flex;align-items:center;gap:.45rem}
.comm-template>header>label:not(.comm-switch){color:#0b213c;font-size:.85rem;font-weight:700}
.comm-template>header .comm-switch{margin-left:auto}
.comm-template[data-enabled="0"]>textarea,.comm-template[data-enabled="0"]>.comm-preview{opacity:.5}
.comm-dot{width:.55rem;height:.55rem;flex:0 0 .55rem;background:#0b4b7d}
.comm-dot[data-tone="ready"]{background:#2f9e55}
.comm-dot[data-tone="partial"]{background:#d9a400}
.comm-dot[data-tone="off"]{background:#c94a4a}
.comm-template>textarea{width:100%;border:1px solid #c8d1da;background:#fff;padding:.55rem .65rem;font:inherit;font-size:.8rem;line-height:1.45}
.comm-preview{overflow-y:auto;height:10rem;background:#efe7dc;padding:.6rem}
/* Cada bloco de mensagem com altura igual: cabeçalho, texto e prévia em tamanho fixo, Salvar sempre no mesmo ponto. */
.comm-template>textarea{height:11rem;resize:none}
.comm-bubble{max-width:94%;border:1px solid #e3dbcf;background:#fff;padding:.5rem .65rem;color:#111b21;font-size:.78rem;line-height:1.45;overflow-wrap:anywhere}
.comm-bubble em{color:#5d7186}
/* Comprador: quem recebe (não há lista de números). */
.comm-reach{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;margin:0}
.comm-reach div{display:grid;gap:.2rem;border:1px solid #e2e9ef;background:#f8fafc;padding:.6rem .7rem}
.comm-reach dt{color:#5d7186;font-size:.7rem;font-weight:700}
.comm-reach dd{margin:0;color:#0b213c;font-size:1rem;font-weight:800;font-variant-numeric:tabular-nums}
.comm-reach .integration-state{color:#0b213c;font-size:1rem;font-weight:800}
/* Histórico de envios abaixo das colunas. */
.comm-history{display:grid;gap:.7rem;margin-top:1.5rem;border:1px solid #c8d5e1;background:#fff;padding:1.15rem 1.25rem}
.comm-history-table td small{display:block;color:#5d7186;font-size:.7rem}
.comm-history-table td:nth-child(5){white-space:nowrap}
.comm-history-table .context-help{margin-left:.35rem;vertical-align:middle}
.integration-state[data-state="muted"]::before{background:#a9b8c6}
/* Avisos (caixa de entrada da central) e badge de não lidos no menu e na aba. */
.nav-badge{display:inline-grid;flex:0 0 auto;min-width:1.2rem;height:1.2rem;place-items:center;margin-left:auto;background:#dcae28;padding:0 .3rem;color:#0b2745;font-size:.65rem;font-weight:800}
.nav-icon .nav-badge{position:absolute;top:-.4rem;right:-.5rem;margin-left:0;min-width:1rem;height:1rem;font-size:.6rem;padding:0 .2rem}
.admin-page.sidebar-collapsed .nav-badge{display:none}
.admin-page.sidebar-collapsed .nav-icon .nav-badge{display:inline-grid}
.comm-feed-views span.is-alert{background:#f6dede;color:#b03a3a}
.comm-feed-views button.is-priority{color:#b03a3a}
.comm-feed-views button.is-priority:hover{color:#8a2c22}
.comm-feed-views button.is-priority[aria-selected="true"]{border-bottom-color:#b03a3a;color:#8a2c22}
.comm-notify-actions{display:flex;justify-content:flex-end;margin-bottom:.5rem}
.comm-notify-list{display:grid;margin:0;padding:0;list-style:none}
.comm-notify{display:flex;gap:.65rem;border-top:1px solid #e2e9ef;padding:.75rem 0}
.comm-notify:first-child{border-top:0}
.comm-notify.is-read{opacity:.6}
.comm-notify .comm-dot{margin-top:.35rem}
.comm-notify-body{flex:1;min-width:0}
.comm-notify-body strong{display:block;color:#0b213c;font-size:.86rem}
.comm-notify-body p{margin:.15rem 0 0;color:#405d76;font-size:.8rem;white-space:pre-line;overflow-wrap:anywhere}
.comm-notify-body small{display:block;margin-top:.3rem;color:#8396a8;font-size:.7rem}
.comm-notify-actions-row{display:flex;flex:0 0 auto;align-items:flex-start;gap:.75rem;padding-top:.1rem}
/* Sininho do afiliado: fica sempre visível no topbar (o menu-button some no desktop, o sininho não). */
.notify-bell{position:relative;margin-left:auto}
.admin-page-actions .notify-bell{margin-left:0}
.notify-bell .icon-button{position:relative;color:#0b2745}
.notify-bell .nav-badge{position:absolute;top:2px;right:2px;min-width:1rem;height:1rem;font-size:.6rem}
.notify-bell-flag{position:absolute;bottom:4px;right:4px;width:.5rem;height:.5rem;border:1px solid #fff;border-radius:999px;background:#dcae28}
.notify-panel{position:absolute;z-index:40;top:calc(100% + .5rem);right:0;width:min(460px,calc(100vw - 2rem));max-height:28rem;overflow-x:hidden;overflow-y:auto;border:1px solid #c8d5e1;border-radius:10px;background:#fff;box-shadow:0 18px 40px rgba(7,27,48,.18)}
.notify-panel[hidden]{display:none}
.notify-panel-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;border-bottom:1px solid #e2e9ef;padding:.75rem .9rem}
.notify-panel-notice{position:relative;margin:.75rem .9rem;border:1px solid #f0c36d;border-radius:8px;background:var(--gold-soft,#fff3cf);padding:.65rem 2.1rem .65rem .9rem;color:var(--gold-dark,#765500);font-size:.78rem;line-height:1.4}
.notify-panel-notice strong{display:block;margin-bottom:.15rem}
.notify-panel-notice p{margin:0}
.notify-panel-notice-close{position:absolute;top:.4rem;right:.4rem;display:grid;place-items:center;width:1.5rem;height:1.5rem;border:0;background:transparent;color:var(--gold-dark,#765500);cursor:pointer}
.notify-panel-notice-close svg{width:13px;height:13px}
.notify-panel-notice-close:hover{background:rgba(0,0,0,.08)}
.notify-panel-head strong{color:#0b213c;font-size:.86rem}
.notify-facets{display:flex;flex-wrap:wrap;gap:.35rem;margin:.65rem .9rem 0;padding-bottom:.65rem;border-bottom:1px solid #e2e9ef}
.notify-facet{border:1px solid #c8d5e1;border-radius:999px;background:#fff;padding:.25rem .65rem;color:#4c6179;font-size:.72rem;font-weight:700;cursor:pointer}
.notify-facet:hover{border-color:#9fb1c2}
.notify-facet.is-active{border-color:#0b213c;background:#0b213c;color:#fff}
.notify-panel .comm-notify-list{padding:0 .9rem}
.notify-panel .comm-empty{padding:.9rem}
.notify-panel .comm-notify[hidden]{display:none}
/* Chamados (central): lista com ficha no lugar, linha do tempo e resposta. */
.comm-ticket-list{display:grid;margin:0;padding:0;list-style:none}
.comm-ticket{border-top:1px solid #e2e9ef;padding:.75rem 0}
.comm-ticket:first-child{border-top:0}
.comm-ticket-row{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}
.comm-ticket-id{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;min-width:0}
.comm-ticket-id strong{color:#0b213c;font-size:.86rem}
.comm-ticket-who{color:#5d7186;font-size:.78rem}
.comm-ticket-row small{margin-left:auto;color:#8396a8;font-size:.72rem;white-space:nowrap}
.comm-ticket-detail{margin-top:.75rem;border-top:1px dashed #d8e1ea;padding-top:.75rem}
/* Ficha do chamado (central): modal de verdade, não mais painel que expande dentro do card. */
.ticket-modal{position:relative;width:min(480px,calc(100vw - 2rem));max-height:min(32rem,calc(100vh - 4rem));overflow-y:auto;border:1px solid #c8d5e1;background:#fff;padding:1.25rem;box-shadow:0 24px 60px rgba(7,27,48,.3)}
.ticket-modal::backdrop{background:rgba(6,22,40,.45)}
.ticket-modal-close{position:absolute;top:.6rem;right:.6rem;display:grid;width:28px;height:28px;place-items:center;border:0;background:transparent;color:#5d7186;font-size:1.3rem;line-height:1;cursor:pointer}
.ticket-modal-close:hover{background:#eaf1f7;color:#0b213c}
.comm-ticket-meta{margin:0 0 .5rem;color:#5d7186;font-size:.78rem}
.comm-ticket-timeline{display:grid;gap:0;margin:0 0 .75rem;padding:0;list-style:none}
.comm-ticket-timeline li{border-top:1px solid #e2e9ef;padding:.6rem 0 0}
.comm-ticket-timeline li:first-child{border-top:0;padding-top:0}
.comm-ticket-timeline strong{position:relative;display:block;padding-left:.85rem;color:#0b213c;font-size:.8rem}
.comm-ticket-timeline strong::before{position:absolute;top:.3rem;left:0;width:.4rem;height:.4rem;background:#0b4b7d;content:""}
.comm-ticket-timeline small{display:block;margin:.1rem 0 .25rem;padding-left:.85rem;color:#8396a8;font-size:.68rem}
.comm-ticket-timeline p{margin:0;padding-left:.85rem;color:#405d76;font-size:.8rem;line-height:1.5;white-space:pre-wrap}
.comm-ticket-actions{display:grid;gap:.5rem}
.comm-ticket-actions textarea{width:100%;border:1px solid #c8d1da;background:#fff;padding:.5rem .6rem;font:inherit;font-size:.8rem}
.comm-ticket-actions .char-count{justify-self:end;margin-top:-.35rem;color:#8396a8;font-size:.68rem;font-variant-numeric:tabular-nums}
/* Fotos da abertura/resposta: miniaturas na linha do tempo e no formulário de anexar. */
.comm-ticket-photos{display:flex;flex-wrap:wrap;gap:.4rem;margin:.4rem 0 0 .85rem}
.comm-ticket-photos img{width:56px;height:56px;border:1px solid #d8e1ea;-o-object-fit:cover;object-fit:cover;cursor:zoom-in}
.comm-ticket-photo-field{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.72rem;color:#5d7186}
.comm-ticket-photo-preview{display:flex;flex-wrap:wrap;gap:.4rem}
.comm-ticket-photo-preview img{width:44px;height:44px;border:1px solid #d8e1ea;-o-object-fit:cover;object-fit:cover}
/* Kanban de Chamados (central): colunas = situação, card arrasta entre elas (mesmo mecanismo nativo da central-rdg:
   draggable + dragstart/dragover/drop, sem lib). Resolvido exige resposta: sem ela o servidor recusa e a ficha abre
   para escrever — por isso o drop é sempre otimista, nunca bloqueado no próprio arraste. */
.ticket-kanban{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(260px,1fr);gap:1rem;align-items:start;overflow-x:auto;padding-bottom:.5rem}
.ticket-column{display:flex;flex-direction:column;min-width:0;border:1px solid #d8e1ea;background:#f4f7fa;max-height:calc(100dvh - 20rem)}
.ticket-column>header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;border-bottom:1px solid #d8e1ea;background:#eaf1f7;padding:.6rem .75rem}
.ticket-column>header h3{margin:0;color:#0b213c;font-size:.82rem}
.ticket-column-count{min-width:1.4rem;border:1px solid #c8d5e1;background:#fff;padding:.05rem .4rem;color:#5d7186;font-size:.72rem;font-weight:800;text-align:center}
.ticket-column-cards{display:grid;gap:.6rem;overflow-y:auto;padding:.6rem;min-height:4rem}
.ticket-column-cards.is-drag-over{background:#e3edf6;outline:2px dashed #0b4b7d;outline-offset:-2px}
.ticket-card{display:grid;gap:.3rem;border:1px solid #d8e1ea;background:#fff;padding:.65rem .75rem;cursor:grab}
.ticket-card[draggable="true"]:active{cursor:grabbing}
.ticket-card.is-dragging{opacity:.45}
.ticket-card.is-archived{opacity:.6}
.ticket-card-head{display:flex;flex-wrap:wrap;gap:.3rem}
.ticket-card strong{color:#0b213c;font-size:.84rem;line-height:1.3}
.ticket-card-who{color:#5d7186;font-size:.76rem}
.ticket-card>small{color:#8396a8;font-size:.68rem}
.ticket-card-actions{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.1rem}
/* Afiliado: formulário de abrir chamado (reaproveita .comm-form-grid/.comm-actions já usados na central). */
.comm-ticket-form{display:grid;gap:.75rem;margin-top:.75rem;border:1px solid #c8d5e1;background:#f8fafc;padding:1rem}
.comm-ticket-form[hidden]{display:none}
.comm-ticket-form label{display:grid;gap:.3rem;color:#3d4b5a;font-size:.72rem;font-weight:800}
.comm-ticket-form input,.comm-ticket-form select,.comm-ticket-form textarea{border:1px solid #c8d1da;background:#fff;padding:.5rem .65rem;font:inherit;font-size:.8rem}
