:root{--bg:#f5f3ee;--surface:#fff;--ink:#172033;--muted:#667085;--brand:#285b4d;--brand-dark:#183d34;--accent:#c99b52;--danger:#a32929;--success:#237047;--line:#dedbd2;--radius:.8rem;--shadow:0 14px 38px rgba(23,32,51,.08);--max:68rem}html{scrollbar-gutter:stable}*{box-sizing:border-box}[data-show-for][hidden]{display:none!important}hr{border:0;border-top:1px solid var(--line);margin:0}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}.shell{width:min(calc(100% - 2rem),var(--max));margin-inline:auto;padding:1rem 0 4rem}h1,h2,p{margin-top:0}h1{font-size:clamp(2rem,7vw,3.5rem);line-height:1.05;overflow-wrap:anywhere}h2{font-size:1.25rem}.auth-wrap{width:min(100%,30rem);min-height:90vh;margin:auto;display:grid;align-content:center;gap:1.5rem}.login-hero{display:grid;gap:.75rem}.login-hero img{display:block;width:100%;max-height:16rem;object-fit:contain}.eyebrow{color:var(--brand);font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.card{min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(1rem,4vw,1.6rem);box-shadow:var(--shadow)}.stack{display:grid;gap:1rem}label{display:grid;gap:.4rem;font-weight:700}input{min-width:0;width:100%;border:1px solid #bfc4ca;border-radius:.55rem;padding:.8rem;font:inherit;color:inherit;background:#fff}input:focus{outline:3px solid rgba(40,91,77,.22);border-color:var(--brand)}button,.button{border:0;border-radius:.55rem;padding:.8rem 1rem;background:var(--brand);color:#fff;font:inherit;font-weight:800;cursor:pointer;text-decoration:none;text-align:center}button:hover,.button:hover{background:var(--brand-dark)}.nav{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 0}.nav div{display:flex;align-items:center;gap:1rem}.nav a,.link-button{color:var(--brand);background:none;padding:0;text-decoration:none}.hero{padding:clamp(1.5rem,3vw,2.5rem) 0 1.5rem}.grid{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem}.section{margin-top:1rem}.inline{display:inline}.copy-row{display:flex;gap:.5rem;align-items:center}.copy-row input{flex:1 1 0;min-width:0}.table-wrap{max-width:100%;overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.8rem;border-bottom:1px solid var(--line)}.muted,.hint,small{color:var(--muted);font-weight:400}.hint{font-size:.88rem}.error{color:var(--danger);font-weight:700}.success{color:var(--success);font-weight:700}.empty,.center{text-align:center}.product-row{display:grid;grid-template-columns:minmax(0,1fr) 6rem;align-items:center;padding:.7rem 0;border-bottom:1px solid var(--line)}.product-row span{display:grid}@media(max-width:30rem){.shell{width:min(calc(100% - 4rem),var(--max))}.nav{align-items:flex-start}.nav div{align-items:flex-end;flex-direction:column;gap:.4rem}.copy-row{flex-wrap:wrap}.copy-row input{width:100%}.copy-row button,.copy-row .button{flex:1 1 auto}}@media(min-width:48rem){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.shell{padding-top:1.5rem}}
.modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(100vw - 2rem,28rem);max-height:calc(100dvh - 2rem);margin:0;padding:0;border:0;border-radius:var(--radius);background:transparent;color:var(--ink)}.modal::backdrop{background:rgba(23,32,51,.62);backdrop-filter:blur(2px)}.modal-panel{margin:0;padding:clamp(1.1rem,4vw,1.6rem);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 24px 70px rgba(23,32,51,.28)}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.modal-header h2{margin:0}.modal-close{flex:0 0 auto;padding:0;border:0;outline:none;box-shadow:none;background:transparent;color:var(--ink);font-size:1.7rem;line-height:1}.modal-close:focus-visible{color:var(--brand)}.modal-close:hover{background:transparent;color:var(--danger)}.modal-body{margin-top:1rem;color:var(--muted);overflow-x:hidden;overflow-y:auto;max-height:60dvh;overflow-wrap:anywhere}.modal-body p{color:inherit;overflow-wrap:anywhere}.modal-body p+p{margin-top:.75rem}.modal-footer{display:flex;gap:.75rem;margin-top:1.5rem}.modal-footer button{flex:1}.modal-footer form{display:contents}.dispute-items-table{width:100%;border-collapse:collapse;margin-top:.75rem;font-size:.9rem}.dispute-items-table th,.dispute-items-table td{padding:.4rem .5rem;border-bottom:1px solid var(--line);text-align:left}.dispute-items-table th{font-size:.78rem;color:var(--muted);font-weight:600}.dispute-items-table td:first-child{max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dispute-items-table .col-qty{text-align:center;width:5rem}.qty-input-small{width:4.5rem;padding:.35rem .5rem;text-align:center;font-size:.9rem}.pii-row{display:flex;align-items:center;justify-content:space-between;width:100%}.btn-row{display:flex;gap:.5rem}.btn-row button,.btn-row .button{flex:1}.modal-footer p{margin:0}.modal-panel>form:has(.modal-body) .modal-footer{margin-top:0}
.app-nav{position:relative;display:flex;align-items:center;justify-content:space-between;min-height:4.5rem;padding:.5rem 0;border-bottom:1px solid var(--line)}.app-brand{display:inline-flex;align-items:center}.app-brand img{display:block;width:auto;height:3.5rem;max-width:9rem;object-fit:contain}.menu-toggle{display:inline-flex;align-items:center;gap:.75rem;min-height:3.35rem;padding:.35rem .5rem .35rem .4rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--brand);line-height:1}.menu-icon{font-size:1.5rem;padding-right:.25rem}.nav-user{display:inline-flex;align-items:center;gap:.65rem;min-width:0}.nav-avatar{display:inline-grid;place-items:center;flex:0 0 auto;width:2.55rem;height:2.55rem;border-radius:999px;background:var(--brand);color:#fff;font-size:.85rem;font-weight:800;letter-spacing:.02em}.nav-user-text{display:grid;gap:.12rem;min-width:0;text-align:left}.nav-user-text strong{max-width:14rem;overflow:hidden;color:var(--ink);font-size:.9rem;text-overflow:ellipsis;white-space:nowrap}.nav-user-meta{display:flex;align-items:baseline;gap:.45rem;white-space:nowrap}.nav-user-role{color:var(--brand);font-size:.72rem;font-weight:800}.nav-user-text small{font-size:.7rem}@media(max-width:36rem){.nav-user-text{display:none}}.menu-toggle:hover,.menu-toggle[aria-expanded="true"]{background:rgba(40,91,77,.1);color:var(--brand-dark)}.app-menu{position:absolute;z-index:20;top:calc(100% + .5rem);right:0;display:grid;min-width:13rem;padding:.55rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.app-menu[hidden]{display:none}.app-menu a,.menu-link{display:block;width:100%;padding:.7rem .85rem;border-radius:.45rem;background:transparent;color:var(--ink);font-weight:700;text-align:left;text-decoration:none}.app-menu a:hover,.menu-link:hover{background:rgba(40,91,77,.06);color:var(--brand-dark)}.app-menu form{margin:0}
.clickable-row td{padding:0}.row-link{display:block;padding:.8rem;color:var(--ink);text-decoration:none}.clickable-row:hover{background:rgba(40,91,77,.07)}.clickable-row:focus-within{outline:3px solid rgba(40,91,77,.22);outline-offset:-3px}.back-link{color:var(--brand);font-weight:700;text-decoration:none}.back-link:hover{text-decoration:underline}.sales-history{display:grid;gap:1rem}.sale-card{padding:0;overflow:hidden}.sale-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;padding:1.25rem 1.5rem;border-bottom:1px solid var(--line)}.sale-summary div{display:grid;gap:.15rem}.sale-summary strong{font-size:1.05rem}@media(max-width:36rem){.sale-summary{grid-template-columns:1fr}.referrals-table th:last-child,.referrals-table td:last-child{text-align:right}}
.referral-qr{display:grid;gap:1rem;width:100%;margin-top:1rem}.referral-qr img{display:block;width:100%;height:auto;aspect-ratio:1;border:1px solid var(--line);border-radius:.55rem}.referral-qr .button{width:100%}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.settlement-flash{margin:.8rem 0 0;transition:opacity .3s ease}.settlement-flash.is-leaving{opacity:0}.orders-list{display:grid;gap:1.25rem;margin-bottom:1rem}.orders-list>.empty{margin:0}#customer-dialogs{display:contents}.orders-list-header{display:grid;gap:1rem}.orders-list-header h2{margin:.2rem 0 0}.status-toggle{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);padding:.25rem;border:1px solid var(--line);border-radius:.7rem;background:var(--bg)}.status-toggle-option{display:flex;align-items:center;justify-content:center;gap:.4rem;min-width:0;padding:.65rem .5rem;border-radius:.5rem;color:var(--muted);font-size:.88rem;font-weight:800;text-align:center;text-decoration:none}.status-toggle-option span{display:inline-grid;place-items:center;min-width:1.45rem;height:1.45rem;padding:0 .35rem;border-radius:999px;background:rgba(23,32,51,.08);font-size:.75rem}.status-toggle-option.is-active{background:var(--brand);color:#fff}.status-toggle-option.is-active span{background:rgba(255,255,255,.2)}.cell-stack{display:grid;gap:.1rem}.cell-stack small{color:var(--muted)}.cell-stack-inline{display:flex;align-items:center;gap:.35rem}.nowrap{white-space:nowrap}.orders-table small{overflow-wrap:anywhere}.orders-table td:last-child{text-align:right;white-space:nowrap}.order-card{display:grid;gap:1.25rem}.order-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.order-card-header h2{margin:.2rem 0 0;font-size:1rem;overflow-wrap:anywhere}.status-badge{flex:0 0 auto;padding:.3rem .65rem;border-radius:999px;font-size:.8rem;font-weight:800}.status-pending{background:#fff2cc;color:#735c00}.status-completed{background:#dff5e8;color:#17643b}.status-cancelled{background:#fbe2e2;color:#8d2424}.status-neutral{background:#eceae4;color:var(--muted)}.order-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:0}.order-details div{display:grid;gap:.15rem}.order-details dt{color:var(--muted);font-size:.8rem;font-weight:700;text-transform:uppercase}.order-details dd{margin:0;font-weight:700}.order-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.order-actions form,.order-actions button,.order-reverse,.order-reverse button{width:100%}.button-danger{background:var(--danger)}.button-danger:hover{background:#7c1d1d}.group-info-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:.6rem 1.5rem;margin:0;padding:0;list-style:none}.group-info-list div{display:grid;gap:.15rem}.group-info-list dt{color:var(--muted);font-size:.78rem;font-weight:700;text-transform:uppercase}.group-info-list dd{margin:0;font-weight:600}@media(max-width:36rem){.status-toggle-option{flex-direction:column;gap:.2rem;font-size:.75rem}.orders-table th:nth-child(2),.orders-table td:nth-child(2){display:none}.orders-table th,.orders-table td{padding:.65rem .45rem}.order-card-header{flex-direction:column}.order-details,.order-actions{grid-template-columns:1fr}}
.product-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr));gap:1rem}.product-card{display:grid;grid-template-rows:1fr auto;gap:1.25rem}.product-info{display:grid;align-content:start;gap:.45rem}.product-info h2,.product-info p{margin:0}.product-size{justify-self:start;padding:.2rem .55rem;border-radius:999px;background:rgba(40,91,77,.1);color:var(--brand);font-size:.78rem;font-weight:800}.product-price{margin-top:.35rem;color:var(--brand);font-size:1.5rem}.product-card[data-unavailable]{opacity:.6}.product-card[data-unavailable] .product-price{color:var(--muted)}.quantity-control{display:grid;grid-template-columns:2.75rem minmax(0,1fr) 2.75rem;gap:.5rem}.quantity-control button{padding:0;font-size:1.35rem}.quantity-control input{text-align:center;font-weight:800}.quantity-control input[type="number"]{appearance:textfield}.quantity-control input[type="number"]::-webkit-inner-spin-button,.quantity-control input[type="number"]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.purchase-form{padding-bottom:6rem}.purchase-summary{position:fixed;z-index:30;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem max(2rem,calc((100vw - var(--max))/2));padding-bottom:max(1rem,env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);box-shadow:0 -12px 32px rgba(23,32,51,.1)}.purchase-summary div{display:grid}.purchase-summary strong{font-size:1.35rem}@media(max-width:32rem){.purchase-form{padding-bottom:9rem}.purchase-summary{align-items:stretch;flex-direction:column;padding-right:2rem;padding-left:2rem}.purchase-summary button{width:100%}}.purchase-payment-options{display:flex;flex-wrap:wrap;gap:.5rem 1rem}.purchase-payment-option{display:inline-flex;align-items:center;gap:.35rem;font-size:.9rem;cursor:pointer;white-space:nowrap}.payment-method-select{width:100%;margin-top:.4rem}
.product-visual{display:grid;grid-template:minmax(0,1fr)/minmax(0,1fr);place-items:center;height:13rem;margin:-.4rem -.4rem .25rem;padding:.5rem;border-radius:calc(var(--radius) - .2rem);background:linear-gradient(145deg,#faf8f3,#f1ede4);overflow:hidden}.product-visual img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 10px 12px rgba(23,32,51,.14))}.product-visual .product-photo{width:auto;aspect-ratio:3/4;border-radius:calc(var(--radius) - .3rem);object-fit:cover;filter:none;box-shadow:0 10px 22px rgba(23,32,51,.16)}
.order-ready{min-height:calc(100dvh - 7rem)}
.message-card h1{font-size:clamp(1.7rem,5vw,2.25rem);line-height:1.15;overflow-wrap:normal}.message-card p{max-width:26rem;margin-right:auto;margin-left:auto}
textarea{min-width:0;width:100%;border:1px solid #bfc4ca;border-radius:.55rem;padding:.8rem;font:inherit;color:inherit;background:#fff;resize:vertical}textarea:focus{outline:3px solid rgba(40,91,77,.22);border-color:var(--brand)}
#settlement-workspace{scroll-margin-top:1rem}#settlement-workspace.htmx-request{opacity:.65;pointer-events:none}#order-details{scroll-margin-top:1rem}#order-details:focus{outline:none}
.modal.pos-summary{padding:0;background:transparent;box-shadow:none}.modal.pos-summary::backdrop{background:rgba(23,32,51,.62);backdrop-filter:blur(2px)}.pos-summary-panel{display:grid;justify-items:stretch;gap:1rem;padding:1.25rem}.pos-summary-header{display:grid;justify-items:center}.pos-summary .modal-footer{margin-top:0}.pos-summary .finance-copy-status,#commission-toggle-modal .finance-copy-status,.finance-payment-modal .finance-copy-status{padding:.35rem .65rem;border-radius:.4rem;line-height:1.2}
/* PDV: the sale just registered, a green check that closes by itself in 2s (pos.js closes the dialog at the end of pos-done-out). */.modal.pos-done{width:min(100vw - 2rem,22rem);animation:pos-done-out 2s ease forwards}.modal.pos-done::backdrop{animation:pos-done-out 2s ease forwards}.pos-done-panel{display:grid;justify-items:center;gap:.6rem;padding:1.6rem 1.25rem;text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 24px 70px rgba(23,32,51,.28);animation:pos-done-in .2s ease-out}.pos-done-panel h2{margin:0;font-size:1.15rem}.pos-done-panel p{margin:0;color:var(--muted)}.pos-done-check{fill:none;stroke:var(--success);stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round}.pos-done-circle{stroke-dasharray:151;stroke-dashoffset:151;animation:pos-done-draw .35s ease-out .05s forwards}.pos-done-mark{stroke-dasharray:36;stroke-dashoffset:36;animation:pos-done-draw .25s ease-out .35s forwards}@keyframes pos-done-in{from{opacity:0;transform:scale(.85)}}@keyframes pos-done-draw{to{stroke-dashoffset:0}}@keyframes pos-done-out{0%,85%{opacity:1}100%{opacity:0}}@media(prefers-reduced-motion:reduce){.modal.pos-done,.modal.pos-done::backdrop,.pos-done-panel,.pos-done-circle,.pos-done-mark{animation:none}.pos-done-circle,.pos-done-mark{stroke-dashoffset:0}}
.status-delivered{background:#dff5e8;color:#17643b}.status-finalized{background:#dce9f8;color:#234f7d}.status-disputed{background:#fde8d0;color:#7a3e0a}.status-paid{background:#d6edff;color:#0d4f8a}.status-shipped{background:#e8f5e9;color:#2e7d32}
.sale-summary{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:36rem){.sale-summary{grid-template-columns:1fr}}
html{overflow-y:scroll}

.referrals-layout{display:grid;gap:1.5rem}.referral-cards{justify-content:space-between}@media(min-width:48rem){.hint-nowrap{white-space:nowrap}}
.dashboard-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));gap:1.25rem}.dashboard-summary div{display:grid;align-content:start;gap:.3rem}.dashboard-summary strong{font-size:clamp(1.5rem,4vw,2rem);line-height:1.15;overflow-wrap:anywhere}.dashboard-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:1rem}.chart-card{display:grid;gap:1rem}.chart-card h2,.chart-card .hint{margin:0}.bar-chart{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.4rem;padding-top:.4rem}.bar-chart-axis{display:block;width:2.4rem;height:9rem;overflow:visible;fill:var(--muted);font-size:.65rem;text-anchor:end;dominant-baseline:middle}.bar-chart-plot{position:relative;min-width:0}.bar-chart-grid{position:absolute;inset:0 0 auto;display:block;width:100%;height:9rem;stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke}.bar-chart-grid line{vector-effect:non-scaling-stroke;stroke-dasharray:3 3}.bar-chart-bars{position:relative;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:.3rem;margin:0;padding:0;list-style:none}.bar-chart-item{display:grid;gap:.35rem;justify-items:center}.bar-chart-track{display:block;width:100%;height:9rem;border-bottom:1px solid var(--line)}.bar-chart-bar{fill:rgba(40,91,77,.35)}.bar-chart-item.is-current .bar-chart-bar{fill:var(--brand)}.bar-chart-item:hover .bar-chart-bar{fill:var(--brand-dark)}.bar-chart-label{color:var(--muted);font-size:.7rem}
.dashboard-summary-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.dashboard-summary-card{display:grid;gap:1.15rem}.dashboard-summary-card h2{margin:0}.dashboard-summary-pair{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:48rem){.dashboard-summary-cards{grid-template-columns:1fr}}@media(max-width:32rem){.dashboard-summary-pair{grid-template-columns:1fr}}
.order-row-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:.4rem}.order-row-actions form{display:inline-flex;margin:0}.icon-button{display:inline-grid;place-items:center;flex:0 0 auto;width:2.25rem;height:2.25rem;padding:0;border:1px solid rgba(40,91,77,.28);border-radius:999px;background:rgba(40,91,77,.08);color:var(--brand);text-decoration:none}.icon-button:hover{background:rgba(40,91,77,.18);color:var(--brand-dark)}.icon-button:focus-visible{outline:3px solid rgba(40,91,77,.3);outline-offset:1px}.icon-button svg:not(.whatsapp-icon){fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.icon-button .whatsapp-icon{width:18px;height:18px}.icon-button-whatsapp{border-color:rgba(23,100,59,.3);background:#dff5e8;color:#17643b}.person-contact{display:flex;align-items:center;justify-content:space-between;gap:.6rem;width:100%}.icon-button-whatsapp:hover{background:#c5ebd5;color:#17643b}.icon-button-cancel{border-color:rgba(163,41,41,.3);background:#fbe2e2;color:var(--danger)}.icon-button-cancel:hover{background:#f6caca;color:#7c1d1d}.whatsapp-icon{flex:0 0 auto;fill:currentColor}.whatsapp-link{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .65rem;border-radius:999px;background:#dff5e8;color:#17643b;font-size:.85rem;font-weight:800;text-decoration:none;white-space:nowrap}.whatsapp-link:hover{background:#c5ebd5}@media(max-width:36rem){.orders-table thead{display:none}.orders-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.5rem 1rem;padding:.85rem 0;border-bottom:1px solid var(--line)}.orders-table td{padding:0;border:0}.orders-table td:nth-child(4){text-align:right;font-weight:700}.orders-table td.order-items-cell{order:1;grid-column:1/-1}.orders-table td[data-label]::before{content:attr(data-label);display:block;color:var(--muted);font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.order-row-actions{flex-wrap:wrap}}
.referrals-card{display:grid;gap:1.25rem}.referrals-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));gap:1rem 1.5rem;padding-bottom:1.25rem;border-bottom:1px solid var(--line)}.referrals-summary div{display:grid;align-content:start;gap:.25rem}.referrals-summary h2{margin:0}.referrals-summary strong{font-size:clamp(1.4rem,4vw,1.75rem);line-height:1.15;color:var(--brand);overflow-wrap:anywhere}.referrals-summary small{color:var(--muted)}
.referrals-table th:nth-child(n+3),.referrals-table td:nth-child(n+3){text-align:right}.referrals-table td:nth-child(n+3){white-space:nowrap}@media(max-width:36rem){.referrals-table th,.referrals-table td{padding:.65rem .35rem;font-size:.9rem}.referrals-table th:first-child,.referrals-table td:first-child{width:1.5rem}}
.contact-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 0;border-bottom:1px solid var(--line)}.contact-actions{display:flex;align-items:center;gap:.5rem}.contact-actions form{margin:0}.contact-actions button{padding:.5rem .7rem;font-size:.82rem}.button-secondary{background:rgba(40,91,77,.1);color:var(--brand)}.button-secondary:hover{background:rgba(40,91,77,.18);color:var(--brand-dark)}select{min-width:0;width:100%;border:1px solid #bfc4ca;border-radius:.55rem;padding:.8rem;font:inherit;color:inherit;background:#fff}select:focus{outline:3px solid rgba(40,91,77,.22);border-color:var(--brand)}@media(max-width:36rem){.contact-row{align-items:flex-start;flex-direction:column}.contact-actions{width:100%;flex-wrap:wrap}}
.checkbox-label{display:flex;align-items:center;gap:.55rem}.checkbox-label input{width:auto}.checkbox-label.membership-option{align-items:flex-start}.checkbox-label.membership-option input{margin-top:.3rem}.block{display:block}.form-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.75rem}.modal-form{margin-top:1.25rem}.contact-list-title{margin:0;font-size:1rem}
.order-confirmation-details{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;margin:1rem 0 0;color:var(--ink)}.order-confirmation-details div{display:grid;gap:.2rem}.order-confirmation-details div:last-child{text-align:right}.order-confirmation-details dt{color:var(--muted);font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.order-confirmation-details dd{margin:0;font-weight:800;overflow-wrap:anywhere}.order-confirmation-details div:last-child dd{font-size:1.35rem;color:var(--brand)}.modal-body p{margin:0}.modal-footer{flex-wrap:wrap;gap:.75rem}@media(max-width:32rem){.order-confirmation-details{grid-template-columns:1fr}.order-confirmation-details div:last-child{text-align:left}.modal-footer>*{flex:1 1 100%}}
.form-group{display:grid;gap:1rem;min-width:0;margin:0;padding:0 0 1.25rem;border:0;border-bottom:1px solid var(--line)}.form-group legend{margin-bottom:.9rem;padding:0;color:var(--brand);font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.form-group label small{font-weight:400}
.field-error{color:var(--danger);font-weight:700}.field-ok{color:var(--success);font-weight:700}input[aria-invalid="true"]{border-color:var(--danger)}
.register-hero img{max-height:10rem}.register-hero h1{margin:0}.register-hero{display:flex;align-items:center;gap:1rem}.register-hero .app-brand-mark{flex:0 0 auto}.password-rules{display:grid;gap:.2rem}.password-rules-title{color:var(--danger);font-weight:700}.password-rules ul{display:grid;gap:.15rem;margin:0;padding:0;list-style:none}.password-rules li{color:var(--danger)}.password-rules li::before{content:"✗ "}
.referrer-note{margin:0;padding:.75rem .9rem;border-radius:.55rem;background:rgba(40,91,77,.08);color:var(--ink)}
.app-menu{width:min(20rem,calc(100vw - 2rem));min-width:0}.menu-group{min-width:0;margin-top:.25rem;border-top:1px solid var(--line)}.menu-heading{display:flex;align-items:center;justify-content:space-between;padding:.7rem .85rem;border-radius:.45rem;color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;list-style:none}.menu-heading::-webkit-details-marker{display:none}.menu-heading::after{content:"";width:.45rem;height:.45rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .15s}.menu-group[open]>.menu-heading::after{transform:rotate(-135deg)}.menu-heading:hover{background:rgba(40,91,77,.06);color:var(--brand-dark)}.menu-group[open]{padding-bottom:.35rem}.app-menu a[aria-current="page"]{background:rgba(40,91,77,.12);color:var(--brand-dark);box-shadow:inset 3px 0 0 var(--brand)}.menu-badge{display:inline-block;margin-left:.35rem;padding:.1rem .45rem;border-radius:999px;background:rgba(201,155,82,.2);color:#7a5a1f;font-size:.7rem;font-weight:800;vertical-align:.1em}
/* A store's name in two parts (store_name in _store_logo.html): the branch reads as a lighter qualifier of the company. */.store-name-branch{font-weight:600;opacity:.72}.store-name-branch::before{content:"·";margin:0 .35em}.store-name-stacked .store-name-company,.store-name-stacked .store-name-branch{display:block}.store-name-stacked .store-name-branch{margin-top:.15rem;font-size:.72em}.store-name-stacked .store-name-branch::before{content:none}.store-name-detail{color:var(--muted);font-size:.85em;font-weight:500}.store-name-detail::before{content:"·";margin:0 .35em}
/* The active store in the user chip, and the menu's first group that switches it. */.nav-user-store{max-width:14rem;overflow:hidden;color:var(--ink);font-size:.72rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.menu-store-group form,.menu-role-group form{display:grid}.menu-store-label{color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.menu-role-group .menu-link[aria-current="true"],.menu-store-group .menu-link[aria-current="true"]{background:rgba(40,91,77,.12);color:var(--brand-dark);box-shadow:inset 3px 0 0 var(--brand)}
.coming-soon{display:grid;justify-items:center;gap:1rem;max-width:40rem;margin:0 auto;padding:clamp(1.5rem,5vw,3rem);text-align:center}.coming-soon h2{margin:0}.coming-soon p{margin:0;color:var(--muted)}.coming-soon-icon{display:inline-grid;place-items:center;width:4rem;height:4rem;border-radius:999px;background:rgba(40,91,77,.1);color:var(--brand);font-size:2rem}
.referral-hero p{max-width:44rem;margin:.6rem 0 0;color:var(--muted);font-size:1.05rem}.referral-hero .referral-pitch{margin-top:1rem;color:var(--brand);font-size:clamp(1.4rem,4vw,2rem);font-weight:800;line-height:1.15}.referral-hero .referral-recurring{color:var(--ink);font-weight:700}
.referral-steps{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:1rem;max-width:40rem;margin:0 auto 1.5rem}.referral-step{display:grid;justify-items:center;gap:.25rem;min-width:8rem;text-align:center}.referral-step-number{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:999px;background:var(--brand);color:#fff;font-weight:800}.referral-step strong{text-transform:uppercase;letter-spacing:.08em;font-size:.85rem}.referral-step small{color:var(--muted)}.referral-step-link{position:relative;display:grid;place-items:center;height:2.5rem}.referral-step-link::before{content:"";position:absolute;left:0;right:0;top:50%;border-top:2px dashed var(--brand)}.referral-step-link::after{content:"";position:absolute;right:0;top:50%;width:.55rem;height:.55rem;border-top:2px solid var(--brand);border-right:2px solid var(--brand);transform:translateY(-50%) rotate(45deg)}.referral-step-link span{position:relative;padding:.25rem .7rem;border-radius:999px;background:var(--bg);color:var(--brand);font-size:.85rem;font-weight:800;white-space:nowrap}
.referral-qr-modal .referral-qr{justify-items:center;text-align:center}.referral-qr-modal .referral-qr img{max-width:18rem}.referral-qr-modal .modal-footer{gap:.75rem}
@media(max-width:30rem){.referral-step{min-width:0}.referral-step-link span{white-space:normal;text-align:center}}
.program-top{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem 0;border-bottom:1px solid var(--line);background:var(--bg)}.program-top img{height:3.5rem;width:auto}.referral-link-selector{display:grid;gap:1rem}.referral-link-intro h2,.referral-link-intro p{margin:0}.referral-link-intro p{margin-top:.25rem}.referral-link-group{padding:0;overflow:hidden}.referral-link-group-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.25rem 1.5rem;cursor:pointer;list-style:none}.referral-link-group-heading::-webkit-details-marker{display:none}.referral-link-group-heading>span:first-child{display:grid;gap:.15rem}.referral-link-group-heading small{display:block}.referral-link-group-heading::after{content:"";flex:0 0 auto;width:.55rem;height:.55rem;border-right:2px solid var(--brand);border-bottom:2px solid var(--brand);transform:rotate(45deg);transition:transform .15s}.referral-link-group[open]>.referral-link-group-heading::after{transform:rotate(-135deg)}.referral-attribution{margin-left:auto;padding:.25rem .6rem;border-radius:999px;background:rgba(40,91,77,.1);color:var(--brand);font-size:.78rem;font-weight:800;white-space:nowrap}.referral-link-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;border-top:1px solid var(--line);background:var(--line)}.referral-link-option{display:grid;align-content:start;gap:.85rem;min-width:0;margin:0;padding:1.25rem;background:var(--surface)}.referral-link-option>header{display:grid;gap:.2rem}.referral-link-option h3,.referral-link-option header p{margin:0}.referral-link-option h3{font-size:1rem}.referral-link-option header p{color:var(--muted);font-size:.88rem}.referral-link-content{display:grid;gap:.65rem}.referral-link-content>*{margin:0}.referral-link-actions{display:flex;flex-wrap:wrap;gap:.65rem}.referral-link-actions>*{flex:0 1 auto}@media(max-width:42rem){.referral-link-options{grid-template-columns:1fr}.referral-link-group-heading{align-items:flex-start;flex-wrap:wrap}.referral-attribution{order:3;margin-left:0}}
.referral-examples{margin:1rem 0}.referral-examples>h2{margin:0 0 1rem}.referral-examples>.hint{margin:.9rem 0 0}.earning-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.earning-card{display:grid;align-content:start;gap:.35rem}.earning-card h3,.earning-card p{margin:0}.earning-card h3{font-size:1.05rem}.earning-card p{font-size:.88rem}.earning-value{margin-top:.4rem;color:var(--brand);font-size:1.7rem;line-height:1.1}.earning-value small{margin-left:.15rem;font-size:.9rem;font-weight:700}.earning-year{font-weight:700}.earning-basis{color:var(--muted);font-size:.78rem}.earning-card:last-child{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand),var(--shadow)}@media(max-width:44rem){.earning-cards{grid-template-columns:1fr}}
.earning-per-referral{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .9rem;margin:-.4rem 0 1rem;color:var(--muted)}.earning-per-referral span{padding:.2rem .6rem;border-radius:999px;background:rgba(40,91,77,.08);color:var(--ink)}
.earning-per-referral-below{margin:1rem 0 0}
/* Page titles: compact enough that the dashboard fits a common 1080p (125% scaling) screen. */
.hero{padding:clamp(1rem,2vw,1.5rem) 0 1rem}.hero h1{margin:.15rem 0 0;font-size:clamp(1.9rem,3.6vw,2.6rem)}@media(min-width:48rem){.shell{padding-top:1rem}}.referral-hero{padding:clamp(1.5rem,3vw,2.5rem) 0 1.5rem}.referral-hero h1{font-size:clamp(2.2rem,5vw,3.25rem)}
/* Order page: header with the layout toggle, and the cards and list product layouts. */
.buy-hero{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:.75rem 1rem}.layout-toggle{display:inline-flex;padding:.2rem;border:1px solid var(--line);border-radius:.7rem;background:var(--surface)}.layout-toggle button{padding:.45rem .85rem;border-radius:.5rem;background:transparent;color:var(--muted);font-size:.85rem}.layout-toggle button:hover{background:rgba(40,91,77,.08);color:var(--brand-dark)}.layout-toggle button[aria-pressed="true"]{background:var(--brand);color:#fff}
.product-grid[data-layout="cards"]{grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr))}.product-grid[data-layout="cards"] .product-card{gap:.85rem;padding:1.1rem}.product-grid[data-layout="cards"] .product-visual{height:9.25rem}.product-grid[data-layout="cards"] .product-info h2{font-size:1.1rem}.product-grid[data-layout="cards"] .product-price{font-size:1.3rem}
.product-grid[data-layout="list"]{grid-template-columns:1fr;gap:.5rem}.product-grid[data-layout="list"] .product-card{grid-template-columns:4rem minmax(0,1fr) 9.5rem;grid-template-rows:none;align-items:center;gap:1rem;padding:.6rem .9rem}.product-grid[data-layout="list"] .product-visual{height:4rem;margin:0;padding:.2rem}.product-grid[data-layout="list"] .product-visual .product-photo{box-shadow:none}.product-grid[data-layout="list"] .product-info{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.1rem 1rem}.product-grid[data-layout="list"] .product-size{grid-column:1;font-size:.7rem}.product-grid[data-layout="list"] .product-info h2{grid-column:1;font-size:1rem}.product-grid[data-layout="list"] .product-info p{grid-column:1;overflow:hidden;font-size:.82rem;text-overflow:ellipsis;white-space:nowrap}.product-grid[data-layout="list"] .product-price{grid-column:2;grid-row:1/span 3;margin:0;font-size:1.15rem;white-space:nowrap}.product-grid[data-layout="list"] .quantity-control{grid-template-columns:2.2rem minmax(0,1fr) 2.2rem;gap:.3rem}.product-grid[data-layout="list"] .quantity-control button{height:100%;font-size:1.1rem}.product-grid[data-layout="list"] .quantity-control input{padding:.45rem .2rem}
@media(max-width:36rem){.product-grid[data-layout="list"] .product-card{grid-template-columns:3.5rem minmax(0,1fr)}.product-grid[data-layout="list"] .product-visual{height:3.5rem}.product-grid[data-layout="list"] .quantity-control{grid-column:1/-1}.product-grid[data-layout="list"] .product-info p{display:none}}
.resale-intro{margin:-.25rem 0 1rem}.resale-orders-table td{vertical-align:middle}.resale-orders-table th:nth-child(4),.resale-orders-table td:nth-child(4){text-align:right}.resale-orders-table th:nth-child(5),.resale-orders-table td:nth-child(5){text-align:center}.resale-orders-table th:last-child,.resale-orders-table td:last-child{text-align:right}.resale-order-items{min-width:10rem}.resale-order-items summary{display:inline-flex;align-items:center;gap:.5rem;color:var(--ink);font-weight:700;cursor:pointer;list-style:none}.resale-order-items summary::-webkit-details-marker{display:none}.resale-order-items summary::before{content:"";width:.4rem;height:.4rem;border-right:2px solid var(--brand);border-bottom:2px solid var(--brand);transform:rotate(45deg);transition:transform .15s}.resale-order-items[open] summary::before{transform:rotate(-135deg)}.resale-order-items summary span{color:var(--brand);font-size:.78rem}.resale-order-items ul{display:grid;gap:.2rem;margin:.55rem 0 0;padding:0;list-style:none;color:var(--muted);font-size:.88rem}.resale-order-items li strong{color:var(--ink)}.resale-order-contact{white-space:nowrap}.resale-order-cta{justify-self:center}@media(max-width:36rem){.resale-orders-table td:nth-child(3){display:block;grid-column:1/-1}.resale-orders-table td:nth-child(4){text-align:left}.resale-orders-table td:nth-child(5){text-align:right}.resale-order-contact{grid-column:1/-1}.resale-order-contact .whatsapp-link{justify-content:center;width:100%}}
.notice{margin:0;padding:.75rem .9rem;border-radius:.55rem;background:rgba(201,155,82,.14)}.notice a{color:var(--brand);font-weight:800}.resale-price input::placeholder{color:var(--muted);font-weight:400}
.program-choice-hero{text-align:center}.program-choice-hero .referrer-note{display:inline-block}.program-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;max-width:56rem;margin:0 auto}.program-choice{display:grid;align-content:start;justify-items:center;gap:.5rem;padding:clamp(1.25rem,3vw,2rem);color:var(--ink);text-align:center;text-decoration:none;transition:transform .15s,border-color .15s,box-shadow .15s}.program-choice:hover,.program-choice:focus-visible{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand),var(--shadow);transform:translateY(-2px)}.program-choice strong{font-size:1.25rem}.program-choice span:last-child{color:var(--muted)}.program-choice-icon{display:grid;place-items:center;width:3.5rem;height:3.5rem;border-radius:999px;background:rgba(40,91,77,.1);font-size:1.7rem}.program-back{margin:1.5rem 0 0}.program-back a{color:var(--brand);font-weight:800;text-decoration:none}@media(max-width:44rem){.program-choices{grid-template-columns:1fr}}
.resale-calculator{display:grid;gap:1rem;margin-top:1rem}.resale-calculator h2{margin:0}.calculator-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem 1rem}.calculator-wide{grid-column:1/-1}.calculator-grid small{font-weight:400}.calculator-result{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,1.4fr);gap:1rem;margin:0;padding-top:1rem;border-top:1px solid var(--line)}.calculator-result div{display:grid;align-content:start;gap:.2rem}.calculator-result dt{color:var(--muted);font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.calculator-result dd{margin:0;font-size:1.2rem;font-weight:800}.calculator-profit dd{color:var(--brand);font-size:1.7rem;line-height:1.1}.calculator-profit dd small{margin-left:.15rem;font-size:.9rem}.calculator-profit>small{font-weight:700}.calculator-profit.is-negative dd{color:var(--danger)}@media(max-width:44rem){.calculator-grid,.calculator-result{grid-template-columns:1fr}}
.calculator-result-referral{grid-template-columns:repeat(2,minmax(0,1fr)) minmax(0,1.4fr)}.calculator-result small{color:var(--muted);font-size:.8rem}.calculator-profit>small{color:var(--ink)}@media(max-width:44rem){.calculator-result-referral{grid-template-columns:1fr}}
.reseller-sale-form{display:grid;gap:1.25rem}.reseller-stock-table th:nth-child(n+2),.reseller-stock-table td:nth-child(n+2),.reseller-price-table th:nth-child(n+2),.reseller-price-table td:nth-child(n+2),.reseller-sales-table th:last-child,.reseller-sales-table td:last-child{text-align:right}.reseller-stock-table input{min-width:6rem;padding:.55rem}.reseller-stock-table input[type="number"]{width:7rem;text-align:right}.discount-type-toggle{display:inline-flex;padding:.15rem;border:1px solid var(--line);border-radius:.55rem;background:var(--bg)}.discount-type-toggle button{min-width:2.25rem;padding:.35rem .45rem;border-radius:.4rem;background:transparent;color:var(--muted);font-size:.78rem}.discount-type-toggle button[aria-pressed="true"]{background:var(--brand);color:#fff}.money-input{display:inline-grid;grid-template-columns:auto 8rem;align-items:center;gap:.35rem}.money-input input{text-align:right}.stock-quantity{font-weight:800}.reseller-sale-footer{display:flex;align-items:center;justify-content:flex-end;gap:1.5rem}.reseller-sale-footer span{display:grid;text-align:right}.reseller-sale-footer strong{color:var(--brand);font-size:1.4rem}.reseller-sale-footer button:disabled{cursor:not-allowed;opacity:.5}@media(max-width:40rem){.reseller-sale-footer{align-items:stretch;flex-direction:column}.reseller-sale-footer span{text-align:left}.reseller-stock-table input[type="number"],.money-input input{width:100%}.money-input{grid-template-columns:auto minmax(7rem,1fr)}}
.orders-list-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}.orders-list-heading h2{margin:.2rem 0 0}@media(max-width:32rem){.orders-list-heading{align-items:stretch;flex-direction:column}.orders-list-heading .button{width:100%}}
.table-sort{display:inline-flex;align-items:center;gap:.25rem;color:inherit;text-decoration:none}.table-sort:hover,.table-sort.is-active{color:var(--brand)}
.hero-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.65rem}.reseller-stock-overview tfoot th,.reseller-stock-overview tfoot td{padding-top:1rem;border-top:2px solid var(--line);border-bottom:0}.reseller-stock-overview tfoot th{text-align:right}.reseller-stock-overview tfoot td{color:var(--brand);font-size:1.15rem}@media(max-width:32rem){.hero-actions{width:100%}.hero-actions>*{flex:1 1 100%}}
.price-save-status{min-height:1.5rem;margin:0;text-align:right}
.minimum-stock-input{width:7.5rem;text-align:right;font-weight:700}
.reseller-page-nav{display:flex;gap:1.25rem;overflow-x:auto;margin:.15rem 0 .75rem;border-bottom:1px solid var(--line);scrollbar-width:thin}.reseller-page-nav a{flex:0 0 auto;padding:.45rem .1rem .55rem;border-bottom:2px solid transparent;color:var(--muted);font-size:.9rem;font-weight:700;text-decoration:none;white-space:nowrap}.reseller-page-nav a:hover{color:var(--brand-dark)}.reseller-page-nav a[aria-current="page"]{border-color:var(--brand);color:var(--brand)}
/* The PDV (pos.html), made for the phone: one column, kept at phone width and centred on larger screens (the page's background fills the sides); the step's actions stay at the bottom, within the thumb's reach. */body:has(.pos) main{max-width:30rem;margin-inline:auto}.pos{display:grid;padding-bottom:6.5rem;font-size:1.125rem}.pos button,.pos input,.pos select{font-size:1.1rem}.pos-step{display:grid;gap:.9rem}.pos-step[hidden]{display:none}.pos-step h2{margin:0;font-size:1.75rem;line-height:1.2}.pos-step>.muted{margin:0;font-size:1.15rem}.pos-search{width:100%;padding:1rem 1.1rem;border:1px solid var(--line);border-radius:.75rem;background:var(--surface);font:inherit;font-size:1.25rem}.pos-products{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.pos-products li[hidden]{display:none}.pos-product{display:grid;grid-template-columns:1fr auto;grid-template-areas:"name price" "meta price";align-items:center;gap:.1rem 1rem;width:100%;min-height:4.25rem;padding:.8rem 1rem;border:1px solid var(--line);border-radius:.75rem;background:var(--surface);color:var(--ink);font:inherit;text-align:left;box-shadow:none}.pos-product:hover{border-color:var(--brand);background:rgba(40,91,77,.05);color:var(--ink)}.pos-product:disabled{opacity:.45}.pos-product-name{grid-area:name;font-size:1.2rem;font-weight:800;line-height:1.25}.pos-product-meta{grid-area:meta;color:var(--muted);font-size:.95rem}.pos-product-price{grid-area:price;color:var(--brand-dark);font-size:1.3rem}.pos-back{justify-self:start;padding:.3rem 0;border:0;background:none;color:var(--brand);font-weight:700;box-shadow:none}.pos-field{display:grid;gap:.4rem;font-size:1.15rem;font-weight:700}.pos-field input,.pos-field select{min-height:3.25rem;font-size:1.25rem}.pos-stepper{display:grid;grid-template-columns:3.25rem 1fr 3.25rem;gap:.5rem}.pos-stepper button{min-height:3.5rem;font-size:1.7rem;padding:.5rem}.pos-stepper input{text-align:center;font-size:1.6rem;font-weight:800}.pos-adjust{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.pos-amount{display:grid;grid-template-columns:1fr 4.25rem;gap:.35rem}.pos-subtotal{display:flex;justify-content:space-between;align-items:baseline;margin:0;font-weight:700}.pos-subtotal{font-size:1.25rem}.pos-subtotal strong{font-size:2rem}.pos-remove{justify-self:start;padding:.3rem 0;border:0;background:none;color:var(--danger);font-weight:700;box-shadow:none}.pos-bar{position:fixed;z-index:25;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:space-between;gap:.6rem;max-width:30rem;margin-inline:auto;padding:.75rem 1rem max(.75rem,env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);box-shadow:0 -10px 24px rgba(23,32,51,.08)}.pos-bar[hidden]{display:none}.pos-bar-actions>*{flex:1 1 0;min-height:3.5rem;font-size:1.15rem}.pos-lines{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}.pos-line{display:flex;justify-content:space-between;align-items:center;gap:1rem;width:100%;padding:.6rem .8rem;border:1px solid var(--line);border-radius:.65rem;background:var(--surface);color:var(--ink);font:inherit;text-align:left;box-shadow:none}.pos-line span:first-child{display:grid}.pos-line small{color:var(--muted);font-size:1rem}.pos-line strong{font-size:1.15rem}.pos-register{justify-self:start;color:var(--brand);font-weight:700;text-decoration:none}.pos-register:hover{text-decoration:underline}.pos-customer{display:grid;gap:.4rem}.pos-toast{margin:0 0 .75rem;font-size:1.15rem}.pos-waiting{margin:0 0 .75rem;padding:.8rem 1rem;border-radius:.65rem;background:#fff4df;color:#7a4b00;font-weight:700}
.table-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.65rem}.table-search button{padding:.6rem 1rem}.customer-table td{vertical-align:middle}.customer-table th:last-child,.customer-table td:last-child{text-align:right;width:1%}.customer-table td:nth-child(2){overflow-wrap:anywhere}.customer-stat-cell{white-space:nowrap;font-variant-numeric:tabular-nums}.modal-wide{width:min(calc(100% - 2rem),42rem)}.customer-contacts{display:grid;gap:.65rem}.customer-contacts h3{margin:.5rem 0 0;font-size:1rem}.customer-editor p{margin:0}.customer-contact-row{display:grid;grid-template-columns:1.5rem 7.5rem minmax(0,1fr) 2.25rem auto;align-items:center;gap:.5rem}.customer-contact-row>.customer-contact-fields{display:contents}form.customer-contact-row{grid-template-columns:7.5rem minmax(0,1fr) auto;padding-left:2rem}.customer-contact-primary{display:grid;place-items:center;cursor:pointer}.customer-contact-primary input{width:1.15rem;height:1.15rem;margin:0;padding:0;accent-color:var(--brand);cursor:pointer}.customer-contact-primary input:disabled{cursor:default}.customer-contact-new>summary{justify-self:start;display:inline-block;list-style:none}.customer-contact-new>summary::-webkit-details-marker{display:none}.customer-contact-new[open]>summary{display:none}.customer-contact-new{display:grid}.customer-contact-row select,.customer-create-contact select{width:100%;padding:.8rem .6rem;border:1px solid #bfc4ca;border-radius:.55rem;font:inherit;background:#fff}.customer-create-contact{display:grid;grid-template-columns:9rem minmax(0,1fr);gap:.65rem}.customer-edit-footer{justify-content:space-between}@media(max-width:36rem){.customer-create-contact,form.customer-contact-row{grid-template-columns:1fr}.customer-contact-row{grid-template-columns:1.5rem minmax(0,1fr)}.customer-contact-fields>*{grid-column:2}.customer-contact-row button,.customer-edit-footer form button{width:100%}.customer-table thead{display:none}.customer-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.2rem 1rem;padding:.8rem 0;border-bottom:1px solid var(--line)}.customer-table td{padding:0;border:0}.customer-table td:nth-child(2){grid-column:1;grid-row:2;color:var(--muted);font-size:.85rem}.customer-table td:nth-child(3),.customer-table td:nth-child(4){grid-column:1;font-size:.82rem;color:var(--muted)}.customer-table td:nth-child(3)::before{content:"Última compra: "}.customer-table td:nth-child(4)::before{content:"Média: "}.customer-table td:last-child{grid-column:2;grid-row:1/5;align-self:center}}
.table-date-filter{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:1rem;padding:.8rem;border:1px solid var(--line);border-radius:.65rem;background:var(--bg)}.table-date-controls,.table-date-range{display:flex;align-items:end;gap:.65rem}.table-date-controls{justify-self:end}.table-date-filter label{gap:.25rem;color:var(--muted);font-size:.78rem}.table-date-filter input{width:10rem;min-width:10rem;padding:.55rem .65rem;border:1px solid #bfc4ca;border-radius:.5rem;background:var(--surface);color:var(--ink);font:inherit}.table-date-filter [hidden]{display:none}.date-field{position:relative;display:block}.date-field>input[data-date-display]{padding-right:2.6rem}.date-field>[data-date-picker-button]{position:absolute;top:50%;right:.25rem;translate:0 -50%;display:grid;place-items:center;width:2rem;height:2rem;padding:0;background:transparent;color:var(--ink);font-size:.85rem}.date-field>[data-date-picker-button]:hover{background:rgba(40,91,77,.08);color:var(--brand)}.table-summary-indicators{display:flex;flex-wrap:wrap;align-items:center;gap:1.75rem}/* Every indicator and the date range share one row on wide screens. */.settlement-summary-indicators{display:flex;flex-wrap:nowrap;justify-content:flex-start;gap:1rem 2rem}.settlement-summary-indicators small{white-space:nowrap}.settlement-summary-indicators .table-summary-indicator strong{white-space:nowrap;font-variant-numeric:tabular-nums}.table-summary-indicator{display:grid;gap:.1rem}.table-summary-indicator small{font-size:.78rem;font-weight:700}.table-summary-indicator strong{font-size:1.725rem}.table-summary-commissions strong{}@media(max-width:48rem){.table-date-filter{grid-template-columns:1fr}.table-date-controls{justify-self:stretch}.settlement-summary-indicators{flex-wrap:wrap}}@media(max-width:36rem){.table-date-filter,.table-date-controls,.table-date-range{display:grid;grid-template-columns:1fr;width:100%}.table-date-filter input{width:100%}.table-summary-indicators{justify-content:space-between}.settlement-summary-indicators{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.settlement-summary-indicators .table-summary-indicator strong{font-size:clamp(1.2rem,7vw,1.725rem)}}
.page-hero{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1rem}.page-hero .hero-actions{align-items:center}@media(max-width:32rem){.page-hero>.button,.page-hero>button{width:100%}}
.column-filter{display:inline-flex;align-items:center;gap:.3rem}.column-filter-toggle{display:inline-grid;place-items:center;width:1.6rem;height:1.6rem;padding:0;border-radius:.4rem;background:transparent;color:var(--muted)}.column-filter-toggle svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linejoin:round}.column-filter-toggle:hover{background:rgba(40,91,77,.08);color:var(--brand)}.column-filter-toggle.is-active{color:var(--brand)}.column-filter-toggle.is-active svg{fill:currentColor}.column-filter-menu{display:none;min-width:10rem;margin:auto;padding:.3rem;border:1px solid var(--line);border-radius:.6rem;background:var(--surface);box-shadow:var(--shadow);text-align:left}.column-filter-menu:popover-open{display:grid}.column-filter-menu button{padding:.5rem .7rem;border-radius:.4rem;background:transparent;color:var(--ink);font-weight:600;text-align:left}.column-filter-menu button:hover{background:rgba(40,91,77,.08)}.column-filter-menu button[aria-pressed="true"]{background:var(--brand);color:#fff}@supports(anchor-name:--a){.column-filter-toggle{anchor-name:--column-filter}.column-filter-menu{position-anchor:--column-filter;inset:auto;top:anchor(bottom);left:anchor(center);translate:-50% 0;margin:.35rem 0 0;position-try-fallbacks:flip-block}}.resale-orders-table td.empty{padding:1.5rem .8rem;text-align:center}@media(max-width:36rem){.resale-orders-table thead{display:block}.resale-orders-table thead tr{display:flex;flex-wrap:wrap;gap:.25rem 1rem;padding:0 0 .5rem}.resale-orders-table thead th{padding:.3rem 0;border:0}.resale-orders-table thead th:nth-child(3),.resale-orders-table thead th:last-child{display:none}.resale-orders-table tbody td.empty{grid-column:1/-1}}.button-small{display:inline-block;padding:.4rem .7rem;font-size:.82rem;white-space:nowrap}.button-icon{display:inline-flex;align-items:center;justify-content:center;padding:.65rem;line-height:1}.reseller-price-table tr:has(:target) td{background:rgba(201,155,82,.14)}.reseller-price-table tr:has(:target) td:first-child{box-shadow:inset 3px 0 0 var(--accent)}
.notice-dismissible:not([hidden]){display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.notice-close{flex:0 0 auto;padding:0 .2rem;border:0;background:transparent;color:inherit;font-size:1.4rem;line-height:1;opacity:.7}.notice-close:hover{background:transparent;opacity:1}.notice-close:focus-visible{outline:none;opacity:1;text-decoration:underline}
.icon-button-gmail{border-color:rgba(197,34,31,.28);background:#fdecea;color:#c5221f}.icon-button-gmail:hover{background:#f9d6d2;color:#a31b17}.customer-row-actions{display:inline-flex;align-items:center;gap:.5rem}.customer-row-actions .icon-button{width:2rem;height:2rem}.customer-contact-action{display:grid;place-items:center}.actions-modal-body{margin-top:.75rem;padding:0}.actions-modal-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.45rem 0;border-bottom:1px solid var(--line)}.actions-modal-row:last-child{border-bottom:0;padding-bottom:0}.actions-modal-row>span{font-weight:600}.actions-modal-row form{display:contents}.table-summary-info{display:inline-grid;place-items:center;width:1.1rem;height:1.1rem;padding:0;border:1px solid rgba(40,91,77,.3);border-radius:999px;background:transparent;color:var(--brand);font-size:.65rem;font-weight:700;line-height:1;cursor:pointer;vertical-align:middle;margin-left:.2rem}.table-summary-info:hover{background:rgba(40,91,77,.1)}
.sale-entry{display:grid;gap:1rem;margin-bottom:1rem}.sale-entry-line{display:grid;grid-template-columns:minmax(12rem,1fr) 5.5rem 9rem 9rem 6.5rem 7rem 3.15rem;align-items:start;gap:.75rem}.sale-entry-line label,.sale-entry-label{white-space:nowrap}.sale-entry-line>*{min-width:0}.sale-entry-field{display:grid;gap:.4rem;font-weight:700}.sale-entry-label{font-weight:700}.sale-entry-field output{display:flex;align-items:center;min-height:3.15rem;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis}.sale-entry-line input[type=number],.sale-item-modal input[type=number],#sale-item-modal input[type=number]{-moz-appearance:textfield;appearance:textfield}.sale-entry-line input[type=number]::-webkit-inner-spin-button,.sale-entry-line input[type=number]::-webkit-outer-spin-button,#sale-item-modal input[type=number]::-webkit-inner-spin-button,#sale-item-modal input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.sale-entry-add{align-self:end;display:grid;place-items:center;width:3.15rem;height:3.15rem;padding:0}.sale-entry-add svg{fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round}.sale-entry-add:disabled{cursor:not-allowed;opacity:.45}.sale-entry-line label{min-width:0}.sale-entry-line input[type=number]{text-align:right}.sale-adjustment-input{display:flex;align-items:center;gap:.4rem}.sale-adjustment-input input{width:100%;min-width:0}.sale-entry-line .sale-adjustment-input{display:grid;grid-template-columns:auto minmax(4rem,1fr)}.sale-entry-line .field-error,.modal .field-error{font-size:.75rem}.sale-unpriced{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .9rem;margin:0}.sale-unpriced span{display:inline-flex;align-items:center;gap:.4rem;color:var(--ink);font-weight:600}.sale-items-table th:nth-child(n+2),.sale-items-table td:nth-child(n+2){text-align:right}.sale-items-table td:last-child{width:1%}.sale-item-subtotal{display:flex;justify-content:space-between;align-items:baseline;margin:0;font-weight:700}.sale-item-subtotal strong{color:var(--brand);font-size:1.2rem}@media(max-width:62rem){.sale-entry-line{grid-template-columns:5.5rem 9rem 9rem 6.5rem 7rem 3.15rem;justify-content:space-between}.sale-entry-product{grid-column:1/-1}}@media(max-width:44rem){.sale-entry-line{grid-template-columns:repeat(2,minmax(0,1fr))}.sale-entry-add{grid-column:1/-1;width:100%}}@media(max-width:36rem){.sale-items-table thead{display:none}.sale-items-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.2rem 1rem;padding:.75rem 0;border-bottom:1px solid var(--line)}.sale-items-table td{padding:0;border:0;text-align:left!important}.sale-items-table td:nth-child(2)::before{content:"Qtd: "}.sale-items-table td:last-child{grid-column:2;grid-row:1/3;align-self:center}}
.combobox{position:relative}.combobox-field{position:relative}.combobox-field input{padding-right:2.6rem}.combobox-toggle{position:absolute;top:50%;right:.35rem;display:grid;place-items:center;width:2rem;height:2rem;padding:0;border-radius:.4rem;background:transparent;color:var(--muted);translate:0 -50%}.combobox-toggle:hover{background:rgba(40,91,77,.08);color:var(--brand)}.combobox-toggle svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:rotate .15s}.combobox-field:has([aria-expanded="true"]) .combobox-toggle svg{rotate:180deg}.combobox-list{position:absolute;z-index:20;top:calc(100% + .35rem);left:0;right:0;max-height:16rem;overflow-y:auto;margin:0;padding:.3rem;list-style:none;background:var(--surface);border:1px solid var(--line);border-radius:.6rem;box-shadow:var(--shadow);font-weight:400}.combobox-list [role="option"]{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:.6rem .7rem;border-radius:.45rem;cursor:pointer}.combobox-list [role="option"][aria-selected="true"]{background:rgba(40,91,77,.1)}.combobox-list [role="option"]:hover{background:rgba(40,91,77,.06)}.combobox-name{color:var(--ink);font-weight:700}.combobox-meta{color:var(--muted);font-size:.85rem;white-space:nowrap}.combobox-empty{padding:.6rem .7rem;color:var(--muted)}.combobox-list [hidden]{display:none}
@media(min-width:60rem){.resale-orders-table{table-layout:fixed}.resale-orders-table .col-date{width:12rem}.resale-orders-table .col-total{width:9rem}.resale-orders-table .col-status{width:10rem}.resale-orders-table .col-contact{width:11.5rem}.resale-orders-table td{overflow-wrap:anywhere}}
@media(min-width:40rem){.reseller-stock-overview{table-layout:fixed}.reseller-stock-overview .col-quantity{width:9rem}.reseller-stock-overview .col-price{width:11rem}.reseller-stock-overview .col-value{width:12rem}.reseller-stock-overview td{overflow-wrap:anywhere}}.reseller-stock-overview td.empty{text-align:center!important}button.table-sort{padding:0;border:0;border-radius:0;background:none;color:inherit;font:inherit;cursor:pointer}button.table-sort:hover{background:none;color:var(--brand)}.sort-arrow{display:inline-block;min-width:.8em;margin-left:.3rem;color:var(--muted);opacity:.55;text-align:center}.table-sort:hover .sort-arrow,.table-sort.is-active .sort-arrow{color:inherit;opacity:1}
.sale-customer{display:grid;gap:.4rem;max-width:32rem}.sale-customer>label{display:block}.combobox-toggle[hidden]{display:none}.sale-customer .field-error{font-size:.75rem}.combobox-empty a{color:var(--brand);font-weight:700}
tr[data-table-empty] td{text-align:center!important}
.merchant-switcher{display:flex;flex-wrap:wrap;align-items:end;gap:.75rem;margin-bottom:1rem}.merchant-switcher label{flex:1 1 14rem;max-width:22rem}.merchant-switcher input[type=number]{-moz-appearance:textfield;appearance:textfield}.merchant-switcher input[type=number]::-webkit-inner-spin-button,.merchant-switcher input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}@media(max-width:32rem){.merchant-switcher button{width:100%}}
.store-logo{display:block;flex:none;width:4rem;height:4rem;object-fit:contain}.store-initials{display:grid;place-items:center;border-radius:999px;background:var(--brand);color:#fff;font-weight:800;font-size:1.3rem;letter-spacing:.04em}.buy-store{display:flex;align-items:center;gap:1rem}.buy-store h1{margin-top:.15rem}.buy-store-name{margin:0;font-size:1rem;font-weight:600;line-height:1.2}.product-visual .product-store-logo{width:60%;height:auto;max-height:80%;aspect-ratio:1;filter:none;opacity:.9}.product-visual span.product-store-logo{font-size:2rem;width:auto;height:70%}.store-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,16rem),1fr));gap:1rem}.store-card{display:grid;grid-template-rows:auto 1fr auto;justify-items:center;gap:.9rem;text-align:center}.store-card{position:relative}.store-card-share{position:absolute;top:.75rem;right:.75rem;z-index:1}.store-card-share[data-share-done]::after{content:attr(data-share-done);position:absolute;top:calc(100% + .35rem);right:0;padding:.3rem .55rem;border-radius:.4rem;background:var(--ink);color:#fff;font-size:.78rem;font-weight:600;white-space:nowrap;pointer-events:none}.store-card .store-logo{width:6rem;height:6rem}.store-card-info{display:grid;gap:.2rem}.store-card-info h2,.store-card-info p{margin:0}.store-card .button{width:100%}
.store-location{display:grid;grid-template-columns:minmax(0,1fr) 6rem;gap:1rem}.store-status{margin:0 0 1rem;border-left:4px solid var(--accent)}.store-status-error{border-left-color:var(--danger)}.product-form-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}@media(max-width:36rem){.product-form-row{grid-template-columns:1fr 1fr}.product-form-row label:last-child{grid-column:1/-1}}.store-product-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.store-product-list details{border:1px solid var(--line);border-radius:.6rem;padding:.6rem .9rem}.store-product-list summary{display:flex;justify-content:space-between;gap:1rem;cursor:pointer}.store-product-list details[open] summary{margin-bottom:1rem}.store-product-list details>form+form{margin-top:.75rem}.store-review-tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.store-review-tabs a{padding:.5rem .9rem;border-radius:999px;background:rgba(40,91,77,.08);color:var(--brand);font-weight:700;text-decoration:none}.store-review-tabs a[aria-current=page]{background:var(--brand);color:#fff}.store-review-card{display:grid;gap:1rem;margin-bottom:1rem}.store-review-header{display:flex;align-items:center;gap:1rem}.store-review-header h2{margin:0}.store-review-actions{display:flex;flex-wrap:wrap;align-items:end;gap:1rem}.store-review-actions form{flex:1 1 14rem}.store-review-actions button{width:auto;justify-self:start}
.brand-wordmark{display:inline-block;margin:0;color:var(--brand);font-size:1.6rem;font-weight:900;letter-spacing:-.02em;line-height:1}.brand-wordmark-large{font-size:clamp(2.6rem,9vw,3.6rem);text-align:center}.login-hero .brand-wordmark-large{justify-self:center}
.platform-logo-frame{display:block;overflow:hidden;padding:.18rem;border:1px solid rgba(64,214,140,.42);border-radius:.75rem;background:#011412;box-shadow:0 5px 16px rgba(10,120,80,.16)}.platform-logo-frame .platform-logo{display:block;width:100%;height:auto;max-width:none;object-fit:contain}.platform-logo-frame-nav{width:9rem}.platform-logo-frame-large{width:min(100%,24rem);margin-inline:auto;border-radius:1rem}.platform-logo-frame-auth{width:min(100%,12rem);margin-bottom:1.25rem}
.auth-wrap>p a{color:var(--brand);font-weight:700}
.login-page{width:min(100%,64rem);min-height:calc(100dvh - 5rem);margin:auto;display:grid;align-content:center;gap:1.5rem}.login-showcase{min-height:clamp(10rem,42vw,15rem);border-radius:var(--radius);background:#011412 url("../images/treeck.png") center/contain no-repeat;box-shadow:var(--shadow)}.login-showcase-copy{display:none}.login-access{display:grid;gap:1.35rem;width:min(100%,45rem);margin:auto}.login-access-header{display:grid;gap:1.25rem}.login-access-header h1{margin:.2rem 0 .45rem;font-size:clamp(2rem,7vw,3rem)}.login-access-header p{margin:0;color:var(--muted)}.login-register{margin:0}.login-register a{color:var(--brand);font-weight:800;text-decoration:none}.login-register a:hover{text-decoration:underline}@media(min-width:52rem){body:has(.login-page){background:#011412}.shell:has(.login-page){width:100%;max-width:none;padding:0}.login-page{width:100%;min-height:100dvh;grid-template-columns:13fr 7fr;gap:0;background:var(--surface)}.login-showcase{position:relative;display:grid;align-items:end;min-height:100dvh;padding:clamp(2rem,5vw,4.5rem);overflow:hidden;border-radius:0;background-position:center;box-shadow:none}.login-showcase-copy{position:relative;z-index:1;display:block;max-width:34rem;color:#fff}.login-showcase-copy p{margin:0;font-size:clamp(1.05rem,1.6vw,1.35rem);line-height:1.55;letter-spacing:.01em}.login-access{padding:clamp(2rem,5vw,5rem)}.login-access .card{box-shadow:0 20px 50px rgba(23,32,51,.1)}}
.app-brand{text-decoration:none}.app-nav-start{display:flex;align-items:center;gap:1rem;min-width:0}.app-nav:has(.app-nav-title){margin-bottom:1.5rem}.app-nav-title{margin:0;font-size:clamp(1.35rem,2.6vw,1.9rem);line-height:1.1}
.app-brand .app-store-logo{width:auto;height:3.5rem;max-width:10rem;object-fit:contain}.app-brand .app-store-logo.store-initials,.app-sidebar-logo.store-initials{width:3.5rem;height:3.5rem;flex:0 0 auto}
/* The platform's mark (no wordmark) where a store would show its logo: a round frame of the same height. */
.app-brand-mark{width:3.5rem;height:3.5rem;border-radius:999px}.app-brand-mark img{width:100%;height:100%}
.program-top-brand{text-decoration:none}.program-top .program-top-logo{width:3.5rem;height:3.5rem}.program-store{color:inherit;text-decoration:none}.program-store:hover{border-color:var(--brand)}
.calculator-product{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin:0;padding:.75rem;border:1px solid var(--line);border-radius:.6rem}.calculator-product legend{padding:0 .3rem;font-weight:700}.calculator-product small{font-weight:400;color:var(--muted)}
.store-inline-setting{margin-top:.5rem;padding:.6rem .8rem;border:1px solid var(--line);border-radius:.5rem;background:var(--surface)}.store-inline-setting summary{cursor:pointer;color:var(--muted);font-size:.88rem}.store-inline-setting form{margin-top:.75rem}.store-program-new{padding-top:1rem;border-top:1px solid var(--line)}.store-program-new h3,.card h3{margin:0}.store-program-preview{margin:0;padding-left:1.1rem;display:grid;gap:.5rem}.store-program-preview li{display:grid}.store-program-preview small{color:var(--muted)}
.profit-negative{color:var(--danger);font-weight:700}
.stock-in{color:var(--success)}.store-nav-name{margin:.5rem 0 0}
.store-area-anchor{display:none}body:has(.store-area-anchor) .hero{display:flex;align-items:center;min-height:7.25rem;padding:1.5rem 0}body:has(.store-area-anchor) .hero h1{margin:0}body:has(.store-area-anchor) .hero.page-hero{justify-content:space-between}body:has(.store-area-anchor)>@media(max-width:36rem){body:has(.store-area-anchor) .hero{align-items:stretch;flex-direction:column;justify-content:center;min-height:0;padding:1.25rem 0}body:has(.store-area-anchor) .hero.page-hero{justify-content:center}body:has(.store-area-anchor) }
.reseller-sales-history td{vertical-align:top}.reseller-sales-history td,.reseller-sales-history th{overflow-wrap:anywhere}@media(min-width:48rem){.reseller-sales-history{table-layout:fixed}.reseller-sales-history .col-date{width:13.5rem}.reseller-sales-history .col-customer{width:28%}.reseller-sales-history .col-total{width:9.5rem}}
.address-row{display:grid;grid-template-columns:10rem minmax(0,1fr);gap:1rem}@media(max-width:32rem){.address-row{grid-template-columns:1fr}}
.sale-finish .combobox-list{position:static;margin-top:.35rem;max-height:12rem;box-shadow:none}.sale-finish-total{display:flex;justify-content:space-between;align-items:baseline;margin:0;padding-top:.75rem;border-top:1px solid var(--line)}.sale-finish-total strong{color:var(--brand);font-size:1.3rem}
.reseller-sale-form[hidden]{display:none}
.sale-entry-line .field-error{white-space:normal;overflow-wrap:anywhere}@media(min-width:40rem){.sale-entry-add{align-self:start;margin-top:calc(1.5em + .4rem)}}
.reseller-sales-history .sale-total,.reseller-sales-history th:nth-child(4){text-align:right}.reseller-sales-history .sale-contact{text-align:right;white-space:nowrap}@media(min-width:48rem){.reseller-sales-history .col-contact{width:6.5rem}.reseller-sales-history .col-customer{width:24%}}
.order-payment-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.order-payment-heading .icon-button{flex:none}.sale-customer-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.4rem}.sale-customer-heading .button-small{flex:none}
.stores-breakdown th:not(:first-child),.stores-breakdown td{text-align:right;white-space:nowrap}.stores-breakdown tbody th{font-weight:600}.stores-breakdown tfoot th,.stores-breakdown tfoot td{border-top:2px solid var(--line);border-bottom:0;font-weight:800}
button:disabled,button:disabled:hover{cursor:not-allowed;opacity:.5}.purchase-action{gap:.35rem;justify-items:end;text-align:right}.purchase-action .hint{color:var(--danger)}@media(max-width:32rem){.purchase-action{justify-items:stretch;text-align:center}}
.order-data-address{margin:0;padding:0;border:0;min-width:0}.order-data-modal{width:min(calc(100% - 2rem),40rem)}
.receipt[open] summary{margin-bottom:.75rem}.receipt-items td:nth-child(n+2),.receipt-items th:nth-child(n+2){text-align:right}.receipt-history{margin-bottom:7rem}.receipt-product .product-price small{font-size:.8rem;font-weight:700}.receipt-search-row{display:flex;align-items:stretch;gap:.65rem;flex-wrap:wrap}.receipt-search-input{flex:1 1 14rem;min-width:0}.receipt-layout-toggle{flex:0 0 auto;display:flex;align-items:stretch;padding:.2rem;gap:.1rem}.receipt-layout-toggle .status-toggle-option{padding-top:0;padding-bottom:0;display:inline-flex;align-items:center}.receipt-new-product{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;padding:0 1.15rem;white-space:nowrap}.receipt-empty-search{margin:0;text-align:left}.receipt-summary-bar{align-items:stretch;gap:0;padding:0}.receipt-summary-toggle{flex:1 1 auto;display:flex;flex-direction:column;align-items:stretch;padding:0;border:0;border-radius:0;background:transparent;color:var(--brand);font:inherit;text-align:left;cursor:pointer}.receipt-summary-toggle:hover{background:rgba(40,91,77,.06)}.receipt-summary-bar .receipt-summary-label-row{display:flex;align-items:center;gap:.4rem;padding:.9rem max(2rem,calc((100vw - var(--max))/2));padding-bottom:max(.9rem,env(safe-area-inset-bottom))}.receipt-summary-bar>[type="submit"]{flex:0 0 auto;align-self:flex-end;padding:.9rem max(2rem,calc((100vw - var(--max))/2)) max(.9rem,env(safe-area-inset-bottom)) 1rem;border-radius:0}.receipt-summary-panel{padding:.6rem max(2rem,calc((100vw - var(--max))/2));max-height:40vh;overflow-y:auto}.receipt-summary-panel[hidden]{display:none}.receipt-summary-list{list-style:none;margin:0;padding:0;display:grid;gap:.1rem}.receipt-summary-list li{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;font-size:1rem;font-weight:700;line-height:1.25}.receipt-summary-list strong{color:var(--brand);font-size:inherit}.receipt-summary-chevron{flex:0 0 auto;display:inline-block;width:.5rem;height:.5rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-135deg);transition:transform .15s;margin-bottom:-.15rem}.receipt-summary-toggle[aria-expanded="true"] .receipt-summary-chevron{transform:rotate(45deg);margin-bottom:.1rem}@media(max-width:36rem){.receipt-layout-toggle{order:-1;width:100%}.receipt-search-input{flex-basis:100%}.receipt-new-product{flex:1 1 auto;padding:.6rem 1rem}}
.orders-table td.order-items-cell{width:15rem}.orders-table .resale-order-items li{overflow-wrap:anywhere}
.order-items-inline{display:inline-flex;align-items:center;gap:.35rem;max-width:100%}.order-items-inline>span{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.order-items-inline>.icon-button{flex:none}
.product-form-row .product-form-wide{grid-column:span 2}
.product-price-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:1rem}@media(max-width:36rem){.product-price-row{grid-template-columns:1fr}}
.product-money-input{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;overflow:hidden;border:1px solid #bfc4ca;border-radius:.55rem;background:#fff;font-weight:400}.product-money-input>span{padding-left:.8rem;color:var(--muted)}.product-money-input input{border:0;border-radius:0}.product-money-input input:focus{outline:0;border:0}.product-money-input:focus-within{outline:3px solid rgba(40,91,77,.22);border-color:var(--brand)}
.product-extra{border:1px solid var(--line);border-radius:.65rem;background:var(--bg)}.product-extra>summary{padding:.8rem 1rem;cursor:pointer;font-weight:800}.product-extra[open]>summary{border-bottom:1px solid var(--line)}.product-extra-body{display:grid;gap:1rem;padding:1rem}.physical-measure-row{display:grid;grid-template-columns:minmax(9rem,.45fr) minmax(0,1fr) 6rem;align-items:center;gap:.75rem}.physical-measure-name{font-weight:700}.physical-unit{font-weight:800}.physical-dimensions{display:grid;gap:.75rem}.physical-fields{display:grid;grid-template-columns:minmax(0,1fr) 8rem;align-items:end;gap:.75rem}@media(max-width:36rem){.physical-measure-row{grid-template-columns:minmax(0,1fr) 5.5rem}.physical-measure-row>strong,.physical-measure-name{grid-column:1/-1}.physical-fields{grid-template-columns:1fr}}
.product-delete{margin-top:1rem;padding-top:.9rem;border-top:1px solid var(--line);text-align:right}.product-delete>summary{display:inline;list-style:none;cursor:pointer}.product-delete>summary::-webkit-details-marker{display:none}.link-danger{color:var(--danger);font-size:.9rem;font-weight:700;text-decoration:underline;text-underline-offset:.2em}.link-danger:hover{color:#7c1d1d}.product-delete[open]>summary{display:none}.product-delete-confirm{display:grid;gap:.75rem;padding:.9rem;border-radius:.55rem;background:#fbe2e2;text-align:left}.product-delete-confirm p{margin:0}
.product-cost-hint{margin:-.5rem 0 0}
#store-stock-table th:last-child,#store-stock-table td.stock-edit{width:5rem;text-align:right}
@media(min-width:40rem){#store-stock-table th:first-child{width:26%}}
#store-stock-table thead th{white-space:nowrap}
.price-link{color:inherit;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:.2em}.price-link:hover{color:var(--brand);text-decoration-color:currentColor}
.reseller-price-table td{vertical-align:middle}.reseller-price-table input{padding:.5rem .65rem}.reseller-price-table .money-input{grid-template-columns:auto minmax(6.5rem,8rem);justify-content:end}.reseller-price-table .minimum-stock-input{width:6.5rem}
.notice-dismissible{transition:opacity .3s ease}.notice-dismissible.is-leaving{opacity:0}#commission-toggle-modal .modal-panel{position:relative}#commission-toggle-modal .modal-header{justify-content:center;padding-inline:2rem}#commission-toggle-modal .modal-header h2{text-align:center}#commission-toggle-modal .modal-close{position:absolute;top:1.1rem;right:1.1rem}#commission-toggle-modal .modal-body{text-align:center}#commission-toggle-modal [data-commission-confirmation]{justify-items:center}#commission-toggle-modal .finance-copy-status{margin-inline:auto}#commission-toggle-modal .commission-modal-actions{justify-content:center}.commission-payment-pix{width:min(100%,15rem);margin:0 auto}.commission-payment-pix figcaption,.commission-payment-pix label{display:grid;width:100%;min-width:0;text-align:center}.commission-payment-pix textarea{box-sizing:border-box;width:100%;min-width:0;min-height:5rem;padding:.65rem;overflow-x:hidden;overflow-wrap:anywhere;white-space:pre-wrap}
@media(min-width:36.01rem){#settlement-orders{table-layout:fixed}#settlement-orders th,#settlement-orders td{padding:1rem .75rem;vertical-align:middle}#settlement-orders .col-order-date{width:8.5rem}#settlement-orders .col-order-items{width:13rem}#settlement-orders .col-order-total{width:8.5rem}#settlement-orders .col-order-commission{width:10.5rem}#settlement-orders .col-order-actions{width:13.5rem}#settlement-orders td.order-items-cell{width:auto}#settlement-orders td:nth-child(4),#settlement-orders th:nth-child(4){text-align:right}#settlement-orders.settlement-due :is(td,th):nth-child(4){text-align:left}#settlement-orders.settlement-due :is(td,th):nth-child(5){text-align:right}}
.order-code{font-variant-numeric:tabular-nums;letter-spacing:.02em}
.commission-pay{margin:0}.commission-status-toggle{display:inline-grid;grid-template-columns:1fr 1fr;align-items:center;min-width:6.5rem;padding:.15rem;border:1px solid var(--line);border-radius:999px;background:var(--bg);font-size:.78rem;font-weight:800;line-height:1.2;white-space:nowrap}.commission-status-toggle:hover{background:var(--bg)}.commission-toggle-option{padding:.28rem .55rem;border:1px solid transparent;border-radius:999px;color:var(--muted);transition:background .15s,border-color .15s,color .15s}.commission-status-toggle.is-open{border-color:#df7777}.commission-status-toggle.is-open .commission-toggle-open{border-color:#df7777;background:#fbe2e2;color:#a52a2a}.commission-status-toggle.is-open:hover .commission-toggle-open{background:#f5c7c7;color:#7c1d1d}.commission-status-toggle.is-paid{border-color:#72b58d}.commission-status-toggle.is-paid .commission-toggle-paid{border-color:#72b58d;background:#dff5e8;color:#17643b}.commission-status-toggle.is-paid:hover .commission-toggle-paid{background:#c7ead6;color:#10502e}
.commission-modal-actions{justify-content:flex-end}.modal-body [data-commission-confirmation]{display:grid;gap:.75rem}.modal-body [data-commission-confirmation][hidden]{display:none}
.stock-summary-indicators{padding:.8rem;border:1px solid var(--line);border-radius:.65rem;background:var(--bg)}.table-date-filter .stock-summary-indicators{padding:0;border:none;background:none;border-radius:0}
.approval-notice{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;margin:0 0 1rem;padding:.9rem 1.1rem}.approvals-list{display:grid;gap:.9rem;margin-bottom:1rem}.approvals-list h2{margin:0}.approvals-history ul{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}.approvals-history li{display:grid;grid-template-columns:1fr auto;gap:.2rem 1rem;padding-bottom:.6rem;border-bottom:1px solid var(--line)}.approvals-history small{grid-column:1/-1;color:var(--muted)}.approval-requests{display:grid;gap:1rem;margin-bottom:1rem}.approval-requests-header,.approval-request-actions{display:flex;align-items:center;gap:.6rem}.approval-request-item{display:flex;align-items:center;justify-content:space-between;gap:1rem}.approval-requests-header h2{margin:.15rem 0 0;font-size:1.1rem}.approval-request-list{display:grid}.approval-request-item{padding:.85rem 0;border-top:1px solid var(--line);display:block}.approval-request-item strong{display:block;margin-bottom:.3rem}.approval-request-item p{margin:.1rem 0;font-size:.9rem}.label-muted{color:var(--muted)}.approval-request-actions{margin-top:.75rem;flex-wrap:nowrap}.approval-request-actions form{margin:0}.approval-request-actions button{padding:.45rem .75rem;white-space:nowrap}@media(max-width:40rem){.approval-request-actions{flex-wrap:wrap}.approval-request-actions form,.approval-request-actions button{width:100%}}
/* "Minha conta": an index of the person's sections and stores beside the sections; above them on narrow screens. */
.account-layout{display:grid;grid-template-columns:minmax(0,1fr) 13rem;gap:1.5rem;align-items:start}
.account-index{position:sticky;top:1rem;display:grid;grid-template-columns:minmax(0,1fr);gap:.4rem;order:2;max-height:calc(100vh - 2rem);overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.account-index::-webkit-scrollbar{display:none}.account-index .eyebrow{margin:.6rem 0 0;white-space:nowrap;overflow:hidden}.account-index ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);gap:.15rem}
.account-index a{display:flex;justify-content:space-between;gap:.5rem;padding:.35rem .6rem;border-radius:.5rem;color:var(--ink);text-decoration:none;white-space:nowrap;overflow:hidden;min-width:0}.account-index a:hover{background:rgba(40,91,77,.08)}.account-index a[aria-current="location"]{background:rgba(40,91,77,.12);color:var(--brand-dark);font-weight:700;box-shadow:inset 3px 0 0 var(--brand)}
.account-index-mark{color:var(--success);font-weight:700}.account-index-mark-warning{color:var(--danger)}
.account-sections{min-width:0;order:1}.account-group-title{margin:.5rem 0 0;font-size:1.1rem}.account-section{scroll-margin-top:1rem}
.account-section-header{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem;margin-bottom:.75rem}.account-section-header h3{margin:0}.account-section .nav-group>summary{padding:.4rem .6rem;min-height:2.25rem}
.account-badge{padding:.15rem .6rem;border-radius:999px;background:rgba(35,112,71,.1);color:var(--success);font-size:.8rem;font-weight:700}.account-badge-warning{background:rgba(163,41,41,.08);color:var(--danger)}
.account-company-fields[hidden]{display:none}
@media(max-width:48rem){.account-layout{grid-template-columns:1fr}.account-index{position:static;top:auto;order:0;padding:.75rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);max-height:none;overflow-y:visible}}
.account-group{scroll-margin-top:1rem}.account-group-title{font-size:1.25rem;padding-top:.5rem;border-top:2px solid var(--line)}.account-group:first-child .account-group-title{border-top:0;padding-top:0}
.account-index-extra{margin-top:.5rem!important}.account-company-unit{margin-left:1.5rem;padding-left:1rem;border-left:2px solid var(--line)}@media(max-width:36rem){.account-company-unit{margin-left:.5rem;padding-left:.6rem}}.account-company-units a{color:inherit}.account-index .account-index-units{margin:.1rem 0 .2rem .75rem;padding-left:.5rem;border-left:1px solid var(--line)}.account-index-units a{font-size:.94rem}
.account-company-units{list-style:none;margin:0;padding:0;display:grid;gap:.3rem}
.account-pix{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.5rem;align-items:start}.account-pix-preview{margin:0;display:grid;grid-template-columns:minmax(0,1fr);gap:.5rem;justify-items:center;max-width:14rem;white-space:normal}.modal-body>.account-pix-preview{margin-inline:auto;text-align:center}.account-pix-preview svg{width:100%;height:auto}.account-pix-preview textarea{font:inherit;font-size:.72rem;width:100%;resize:none}
.account-export-form{display:flex;flex-wrap:wrap;align-items:end;gap:.75rem}.account-export-form label{flex:0 1 11rem}
.account-export-summary{margin:0;padding-left:1.1rem;display:grid;gap:.3rem}.account-export-summary .error{color:var(--danger)}
.account-section h4{margin:.5rem 0 0}
@media(max-width:40rem){.account-pix{grid-template-columns:1fr}.account-pix-preview{justify-self:center}}
.physical-measure-row[hidden]{display:none}.physical-implied{margin:0}.physical-implied:empty{display:none}
.product-unit-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.4rem 1rem}.product-unit-hint{grid-column:1/-1;color:var(--muted)}
.page-hero-title{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem}.page-hero-title h1{margin:0}
/* A table's search and its period filter on one line (the filter keeps its label above; no frame of its own). */
.table-toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:.75rem 1rem;margin-bottom:1rem}.table-toolbar .table-search{flex:1 1 18rem}
.table-toolbar .table-date-filter{flex:0 1 auto;width:auto;padding:0;border:0;background:none}.table-toolbar .table-date-controls{margin-left:0}
.store-stock-history td{vertical-align:middle}
/* Store sales: the item's price tier (Varejo / Atacado) sits beside the "Produto" label, adding no column. */
.sale-entry-heading{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.sale-entry-heading .sale-tier{margin-bottom:.35rem}
.sale-tier button{padding:.2rem .55rem;font-size:.75rem}
/* On phones the open menu is a panel of the content's width (the header's edges), over a dimmed page; a long menu scrolls inside it. */@media(max-width:48rem){.app-menu{right:0;left:0;width:auto;max-height:calc(100dvh - 7rem);overflow-y:auto;overscroll-behavior:contain}body:has(.app-menu:not([hidden]))::after{content:"";position:fixed;z-index:19;inset:0;background:rgba(23,32,51,.28)}.app-nav:has(.app-menu:not([hidden])){z-index:21}}
/* PDV quantity step: only what fits above the numeric keyboard; the header steps aside while typing. */body.pos-typing .app-nav{display:none}body.pos-typing .shell{padding-top:.75rem}.pos-step-quantity{gap:.6rem}.pos-quantity-head{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;margin:0;font-size:1.2rem}.pos-quantity-head strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pos-quantity-head span{flex:none;color:var(--muted);font-weight:700}.pos-step-quantity .pos-stepper input{min-height:3.5rem;font-size:2rem}.pos-item-quantity{display:flex;justify-content:space-between;align-items:center;margin:0;font-size:1.25rem}.pos-item-quantity .pos-back{padding:.3rem .2rem}
.pos input[type="number"]{-moz-appearance:textfield;appearance:textfield}.pos input[type="number"]::-webkit-inner-spin-button,.pos input[type="number"]::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}
/* The PDV's steps never grow wider than the screen: a long product name is cut with "…" instead. */.pos,.pos-step{grid-template-columns:minmax(0,1fr)}.pos-quantity-head strong{min-width:0}.pos-step-quantity .pos-stepper{grid-template-columns:3.25rem minmax(0,1fr) 3.25rem}.pos-stepper input{min-width:0;width:100%}
.pos-quantity-head{align-items:flex-start}.pos-quantity-head strong{display:-webkit-box;overflow:hidden;white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.25}
/* The pipeline's WhatsApp buttons say whom they reach; the columns share the whole width (the first, the customer, takes the rest). */.whatsapp-pill{display:inline-flex;align-items:center;gap:.35rem;min-height:2.25rem;padding:.3rem .7rem;border:1px solid rgba(23,100,59,.3);border-radius:999px;background:#dff5e8;color:#17643b;font-size:.82rem;font-weight:800;text-decoration:none;white-space:nowrap}.whatsapp-pill:hover{background:#c9eed8;color:#0f4d2c}.whatsapp-pill .whatsapp-icon{flex:none}.order-row-actions{flex-wrap:wrap;justify-content:flex-end}@media(min-width:36.01rem){#settlement-orders .order-row-actions{flex-wrap:nowrap}#settlement-orders .resale-order-items summary{white-space:nowrap}}
.order-contacts{display:inline-grid;justify-items:start;gap:.35rem}
/* The pipeline's columns follow their content across the whole width: empty ones (a walk-in sale has no contacts) take no room. */@media(min-width:36.01rem){#settlement-orders{table-layout:auto;width:100%}#settlement-orders col{width:auto!important}#settlement-orders th,#settlement-orders td.nowrap,#settlement-orders .cell-stack>span,#settlement-orders .resale-order-items summary,#settlement-orders .whatsapp-pill{white-space:nowrap}}
/* PDV payment: the choice at the closing and, once the sale is registered, its compact payment modal. */.pos-payment{display:grid;gap:.4rem}.pos-payment[hidden]{display:none!important}.pos-delivery{display:grid;gap:.4rem}.pos-delivery[hidden]{display:none!important}.pos-payment>label,.pos-delivery>label{font-weight:700}.pos-payment>label{display:flex;align-items:center;justify-content:space-between}.pos-payment select,.pos-delivery select{min-height:3rem}.pos-payment .hint{margin-top:.1rem}.pos-summary{box-sizing:border-box;width:min(calc(100% - 2rem),25rem);max-height:calc(100dvh - 2rem);padding:1.25rem;border:0;border-radius:1rem;background:var(--surface);color:var(--ink);font-size:1.05rem;box-shadow:0 24px 60px rgba(23,32,51,.25)}.pos-summary:focus{outline:0}.pos-summary::backdrop{background:rgba(23,32,51,.55)}.pos-summary[open]{display:grid;gap:1rem;justify-items:stretch}.pos-summary h2{margin:0;text-align:center;font-size:1.45rem}.pos-summary p{margin:0}.pos-summary-charge{padding:.8rem 1rem;border-radius:.65rem;background:rgba(40,91,77,.08);font-size:1.15rem;text-align:center}.pos-summary .pos-pix-code{justify-self:center}.pos-pix-code{margin:0;display:grid;gap:.55rem;width:min(100%,15rem)}.pos-pix-code svg{display:block;width:100%;height:auto}.pos-pix-code figcaption,.pos-pix-code label{display:grid;gap:.3rem;min-width:0}.pos-pix-code textarea{box-sizing:border-box;width:100%;min-height:3.5rem;padding:.5rem;font:inherit;font-size:.68rem;resize:none;overflow-wrap:anywhere;white-space:pre-wrap}.pos-summary .finance-copy-status{justify-self:center}.pos-summary-actions{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.pos-summary-actions form{margin:0}.pos-summary-actions button{width:100%;min-height:3.25rem;font-size:1rem}@media(max-width:28rem){.pos-summary{width:min(calc(100% - 1rem),25rem);padding:1rem}.pos-pix-code{width:min(100%,11rem)}.pos-summary[open]{gap:.7rem}.pos-summary-actions{grid-template-columns:1fr}}
.account-receiving-pix{display:grid;gap:.75rem;justify-items:start}.account-receiving-pix>summary{list-style:none;cursor:pointer}.account-receiving-pix>summary::-webkit-details-marker{display:none}.account-receiving-pix[open]>summary{display:none}.order-platform-charge{display:grid;gap:.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line)}.order-platform-charge h3{margin:0}
.finance-section-toggle{box-sizing:border-box;width:100%}
/* The Financeiro's main tabs read above its second level (whose buttons inherit 1rem). */
.finance-section-toggle .status-toggle-option{font-size:1.05rem;font-weight:400}.finance-section-toggle .status-toggle-option.is-active{font-weight:800}
#finance-workspace{display:grid;gap:1.5rem}#finance-workspace:has(>.notice-dismissible){gap:.5rem}body:has(#finance-workspace>.notice-dismissible) .app-nav{margin-bottom:.5rem}#finance-workspace .order-row-actions{gap:.5rem}.finance-payment-modal{width:min(calc(100% - 2rem),28rem);overflow:hidden}.finance-payment-modal .modal-panel{position:relative;box-sizing:border-box;width:100%;min-width:0}.finance-payment-modal .modal-header{justify-content:center;padding-inline:2rem}.finance-payment-modal .modal-header h2{text-align:center}.finance-payment-modal .modal-close{position:absolute;top:1.1rem;right:1.1rem}.finance-payment-modal .modal-body{display:grid;gap:1rem;justify-items:center;width:100%;min-width:0;text-align:center}.finance-payment-modal .account-pix-preview{box-sizing:border-box;margin:0;width:min(100%,15rem);max-width:100%}.finance-payment-modal .account-pix-preview svg{display:block;width:100%;max-width:15rem}.finance-payment-modal .account-pix-preview figcaption,.finance-payment-modal .account-pix-preview label{display:grid;width:100%;min-width:0;text-align:center}.finance-payment-modal .account-pix-preview textarea{box-sizing:border-box;width:100%;min-width:0;min-height:5rem;padding:.65rem;overflow-x:hidden;overflow-wrap:anywhere;white-space:pre-wrap}.finance-payment-modal .modal-footer{justify-content:center}.finance-copy-status{box-sizing:border-box;width:min(100%,15rem);margin:0;text-align:center;transition:opacity .3s ease}.finance-copy-status.is-leaving{opacity:0}@media(max-width:44rem){.finance-payment-modal .modal-panel{padding:1rem}}
/* Summary indicators get room for six-figure totals; the period sits in its own compact group with a real calendar button.
   The native date input only anchors the browser picker under the button: it must never take layout width (on phones its
   inherited min-width pushed the page sideways, shrinking the viewport and throwing dialogs off-screen). */
.table-summary-indicators{gap:1rem 3rem}.table-summary-indicator{min-width:0}.table-summary-indicator strong{font-variant-numeric:tabular-nums;white-space:nowrap}.table-date-range{gap:.75rem}.table-date-filter input[data-date-display]{width:9.5rem;min-width:0;height:2.75rem;padding:.55rem 3rem .55rem .75rem;font-variant-numeric:tabular-nums}.date-field>.date-field-picker{position:absolute;right:.3rem;bottom:.3rem;width:2.15rem;min-width:0;height:2.15rem;padding:0;border:0;opacity:0;pointer-events:none}.date-field>[data-date-picker-button]{right:.3rem;width:2.15rem;height:2.15rem;border-radius:.4rem;background:rgba(40,91,77,.08);color:var(--brand)}.date-field>[data-date-picker-button] svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.date-field>[data-date-picker-button]:hover{background:rgba(40,91,77,.18);color:var(--brand-dark)}.date-field>[data-date-picker-button]:focus-visible{outline:3px solid rgba(40,91,77,.3);outline-offset:1px}
@media(max-width:36rem){.table-date-filter{gap:1rem;padding:.9rem}.table-summary-indicators{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem 1rem}.table-summary-indicator strong{font-size:clamp(1.15rem,6vw,1.5rem)}.table-summary-indicators>.table-summary-commissions{grid-column:1/-1;order:-1}.table-date-controls{padding-top:.9rem;border-top:1px solid var(--line)}.table-date-range{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.table-date-filter input[data-date-display]{width:100%;padding-right:2.9rem}}
tr[hidden]{display:none!important}
.table-search:not(:has(button)){grid-template-columns:minmax(0,1fr)}
/* Finance rows become compact cards on phones: identity and action on top, labelled amounts below, the status toggle last. */
@media(max-width:36rem){.table-summary-indicator small{overflow-wrap:anywhere}.table-summary-indicator strong{white-space:normal}#finance-workspace .orders-table tr{gap:.55rem 1rem;padding:1rem 0}#finance-workspace .orders-table td{padding:0;text-align:left}#finance-workspace .orders-table td.empty{grid-column:1/-1;text-align:center}#finance-workspace .orders-table td[data-label]::before{margin-bottom:.1rem}#finance-commissions tr{grid-template-columns:minmax(0,1fr) auto}#finance-commissions td:nth-child(1){grid-area:1/1}#finance-commissions td:nth-child(6){grid-area:1/2;align-self:start}#finance-commissions td.finance-date{display:block;grid-area:2/1/3/-1;margin-top:-.4rem;color:var(--muted);font-size:.82rem}#finance-commissions td:nth-child(5){grid-area:3/1}#finance-commissions td:nth-child(3){grid-area:3/2;align-self:end;text-align:right;font-size:1.05rem}#finance-commissions td:nth-child(3)::before{text-align:right}#finance-commissions td:nth-child(4){grid-area:4/1/5/-1}#platform-settlements tr{grid-template-columns:repeat(3,minmax(0,1fr))}#platform-settlements td:nth-child(1){grid-area:1/1/2/3}#platform-settlements td:nth-child(6){grid-area:1/3;justify-self:end;align-self:start}#platform-settlements td:nth-child(2){grid-area:2/1}#platform-settlements td:nth-child(3){grid-area:2/2;font-weight:400}#platform-settlements td:nth-child(4){grid-area:2/3;text-align:right;font-weight:400}#platform-settlements td:nth-child(4)::before{text-align:right}#platform-settlements td:nth-child(3) small{display:block;font-size:.75rem}#platform-settlements td:nth-child(5){grid-area:3/1/4/-1}}
@media(max-width:36rem){#finance-workspace .orders-table tr{align-items:start}#platform-settlements td:nth-child(2){display:block}#finance-commissions td:nth-child(6){justify-self:end}.table-summary-indicator strong>span{white-space:nowrap}}
/* The operational workspace (tabs + indicators with the period filter + searchable, sortable table) shares one rhythm on
   every page: the card's default padding, 1.25rem between blocks, and the same table cell padding. Pages add columns,
   never spacing. A tab panel inside the card (.data-workspace-panel) keeps the same rhythm. */
.data-workspace,.data-workspace-panel{display:grid;gap:1.25rem;margin:0}.data-workspace>*,.data-workspace-panel>*{margin-block:0}
@media(min-width:36.01rem){.data-workspace .orders-table th,.data-workspace .orders-table td{padding:.9rem 1rem}}
@media(min-width:36.01rem){#platform-settlements th:nth-child(n+2):nth-child(-n+4),#platform-settlements td:nth-child(n+2):nth-child(-n+4){text-align:right}#platform-settlements th:nth-child(n+2):nth-child(-n+4) .table-sort{justify-content:flex-end}#platform-settlements th:nth-child(5),#platform-settlements td:nth-child(5){text-align:right}#platform-settlements th:last-child,#platform-settlements td:last-child{text-align:center}#platform-settlements td:last-child form{display:flex;justify-content:center;margin:0}}
.data-workspace .status-toggle-option{min-height:2.75rem}.data-workspace .orders-table thead th{height:3.6rem}@media(min-width:36.01rem){.data-workspace .orders-table tbody td{height:5rem}}@media(max-width:36rem){.data-workspace .status-toggle-option{min-height:4.1rem}}
/* Store section menu: beside the logo, the current section is the page title and a toggle; its vertical list opens
   under it, styled like the user menu (.app-menu). The page's own header then only carries actions, if any. */
.section-nav-title{min-width:0}.section-menu-toggle{display:inline-flex;align-items:center;gap:.55rem;max-width:100%;padding:.3rem .6rem .3rem .5rem;margin-left:-.5rem;border:1px solid transparent;border-radius:.6rem;background:transparent;color:var(--ink);font:inherit;font-weight:800;line-height:1.1;text-align:left}.section-menu-label{white-space:nowrap}.section-menu-toggle .menu-badge{margin:0;font-size:.75rem}.section-menu-chevron{flex:0 0 auto;width:.55rem;height:.55rem;margin:0 .2rem .25rem .1rem;border-right:2.5px solid var(--brand);border-bottom:2.5px solid var(--brand);transform:rotate(45deg);transition:transform .15s}.section-menu-toggle:hover,.section-menu-toggle[aria-expanded="true"]{background:rgba(40,91,77,.08);border-color:rgba(40,91,77,.15);color:var(--ink)}.section-menu-toggle[aria-expanded="true"] .section-menu-chevron{margin-bottom:-.2rem;transform:rotate(-135deg)}.section-menu-toggle:focus-visible{outline:3px solid rgba(40,91,77,.3);outline-offset:1px}.section-menu{left:0;right:auto;width:min(18rem,calc(100vw - 2rem));font-size:1rem;font-weight:400;line-height:1.5}.section-menu nav{display:grid;gap:.1rem}.section-menu-heading{margin:0 0 .25rem;padding-bottom:.6rem;border-bottom:1px solid var(--line);border-radius:0;cursor:default}.section-menu-heading::after{display:none}.section-menu-heading:hover{background:none;color:var(--muted)}.section-menu a[aria-current="page"]{background:rgba(40,91,77,.12);color:var(--brand-dark);box-shadow:inset 3px 0 0 var(--brand)}
body:has(.store-area-anchor) .app-nav{margin-bottom:1.5rem}body:has(.store-area-anchor) .hero{min-height:0;padding:0;margin-bottom:1.25rem}body:has(.store-area-anchor) .hero:empty,body:has(.store-area-anchor) .hero.page-hero:not(:has(>*)){display:none}body:has(.store-area-anchor) .hero.page-hero{justify-content:flex-end}body:has(.store-area-anchor) .hero.page-hero:has(>.page-hero-title){justify-content:space-between}
@media(max-width:36rem){.app-nav:has(.section-nav-title) .app-nav-start{flex:1 1 auto;gap:.6rem}.app-nav:has(.section-nav-title){gap:.6rem}.app-nav:has(.section-nav-title) .app-brand img{height:2.75rem}.section-nav-title{flex:1 1 auto;font-size:1.2rem}.section-menu-label{min-width:0;white-space:normal;overflow-wrap:anywhere}body:has(.store-area-anchor) .hero.page-hero{justify-content:stretch}}
/* A list's actions live in its card, beside the search box and as tall as it; on phones they go under it, side by side. */
.table-search:has(.table-search-actions){grid-template-columns:minmax(0,1fr) auto;align-items:stretch}.table-search-actions{display:flex;gap:.65rem;align-items:stretch}.table-search .table-search-actions>.button,.table-search .table-search-actions>button{display:inline-flex;align-items:center;justify-content:center;padding:0 1.15rem;white-space:nowrap}.table-point-filter-label{display:inline-flex;align-items:center;gap:.5rem;color:var(--muted);font-size:.78rem;font-weight:700;white-space:nowrap}.table-point-filter-label input[type=date]{padding:.8rem .65rem;border:1px solid #bfc4ca;border-radius:.5rem;background:var(--surface);color:var(--ink);font:inherit;font-size:.875rem;width:9.5rem}.empty-state{display:grid;justify-items:center;gap:1rem;padding:1.5rem 0}.empty-state .empty{margin:0}
@media(max-width:36rem){.table-search:has(.table-search-actions){grid-template-columns:minmax(0,1fr)}.table-search-actions>*{flex:1 1 0;min-height:2.9rem}}
/* The header (logo, section menu, user menu) stays on top while the page scrolls; its background reaches the window's
   edges so content never shows beside it. */
body{overflow-x:clip}.app-nav{position:sticky;top:0;z-index:21;background:var(--bg)}.app-nav::before{content:"";position:absolute;z-index:-1;inset:0 calc(50% - 50vw);background:var(--bg)}
/* Absolutely positioned bits inside a table (.visually-hidden labels) must scroll with it, not widen the page. */
.table-wrap{position:relative}
/* The section title is plain text; on phones and tablets the chevron's hit area covers it, so tapping the title opens the list. */
.section-nav-action{position:relative;z-index:1;flex:0 0 auto}.section-nav{position:relative;display:flex;align-items:center;gap:.35rem;min-width:0;padding:.25rem .35rem .25rem .5rem;margin-left:-.5rem;border:1px solid transparent;border-radius:.6rem}.section-nav-title{display:flex;align-items:center;gap:.55rem;min-width:0}.section-nav .section-menu-toggle{position:static;display:inline-grid;place-items:center;flex:0 0 auto;width:1.75rem;height:1.75rem;margin:0;padding:0;border:0;background:transparent}.section-nav .section-menu-toggle::after{content:"";position:absolute;inset:0;border-radius:inherit}.section-nav .section-menu-chevron{margin:0 0 .3rem}.section-nav .section-menu-toggle[aria-expanded="true"] .section-menu-chevron{margin:.3rem 0 0}.section-nav:has(.section-menu-toggle:hover),.section-nav:has(.section-menu-toggle[aria-expanded="true"]){background:rgba(40,91,77,.08);border-color:rgba(40,91,77,.15)}.section-nav .section-menu-toggle:hover,.section-nav .section-menu-toggle[aria-expanded="true"]{background:transparent;border:0}.section-nav:has(.section-menu-toggle:focus-visible){outline:3px solid rgba(40,91,77,.3);outline-offset:1px}.section-nav .section-menu-toggle:focus-visible{outline:0}
@media(max-width:36rem){.app-nav:has(.section-nav) .section-nav{flex:0 1 auto}.app-nav:has(.section-nav) .section-nav-title{flex:0 1 auto}}
/* Menu icons are CSS masks (.nav-icon + .nav-icon-<name>), so the menu's markup keeps its plain labels. */
.nav-icon-home{--nav-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 10.5 12 4l8 6.5V20a1 1 0 0 1-1 1h-4v-6h-6v6H5a1 1 0 0 1-1-1z'/%3E%3C/svg%3E")}.nav-icon-receipts{--nav-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v11'/%3E%3Cpath d='m7.5 9.5 4.5 4.5 4.5-4.5'/%3E%3Cpath d='M4 14v5a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-5'/%3E%3C/svg%3E")}.nav-icon-stock{--nav-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7.5 12 3l9 4.5v9L12 21l-9-4.5z'/%3E%3Cpath d='m3 7.5 9 4.5 9-4.5'/%3E%3Cpath d='M12 12v9'/%3E%3C/svg%3E")}.nav-icon-orders{--nav-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='4' width='14' height='17' rx='2'/%3E%3Cpath d='M9 4V3h6v1'/%3E%3Cpath d='M9 10h6M9 14h6M9 18h3'/%3E%3C/svg%3E")}.nav-icon-finance{--nav-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='6' width='18' height='13' rx='2'/%3E%3Cpath d='M3 10h18'/%3E%3Cpath d='M15.5 14.5h2.5'/%3E%3C/svg%3E")}.nav-icon-customers{--nav-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.5'/%3E%3Cpath d='M2.5 20a6.5 6.5 0 0 1 13 0'/%3E%3Cpath d='M16 4.5a3.5 3.5 0 0 1 0 7'/%3E%3Cpath d='M18 14.5a6.5 6.5 0 0 1 3.5 5.5'/%3E%3C/svg%3E")}.nav-icon-approvals{--nav-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m8 12 3 3 5-6'/%3E%3C/svg%3E")}.nav-icon-role{--nav-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 7h12l-3.5-3.5M17 17H5l3.5 3.5'/%3E%3C/svg%3E")}.nav-icon-store{--nav-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 9.5 5.5 4h13L20 9.5'/%3E%3Cpath d='M4 9.5a2.7 2.7 0 0 0 5.3 0 2.7 2.7 0 0 0 5.4 0 2.7 2.7 0 0 0 5.3 0'/%3E%3Cpath d='M5 12v8h14v-8'/%3E%3Cpath d='M10 20v-5h4v5'/%3E%3C/svg%3E")}.nav-icon-platform{--nav-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20h16'/%3E%3Cpath d='M7 16v-5M12 16V7M17 16v-8'/%3E%3C/svg%3E")}.nav-icon-code{--nav-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m8 8-4 4 4 4M16 8l4 4-4 4M13.5 5l-3 14'/%3E%3C/svg%3E")}.nav-icon-buy{--nav-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8h14l-1 12H6z'/%3E%3Cpath d='M9 8V6a3 3 0 0 1 6 0v2'/%3E%3C/svg%3E")}.nav-icon-income{--nav-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 16 5-5 4 4 7-7'/%3E%3Cpath d='M15 8h5v5'/%3E%3C/svg%3E")}.nav-icon-admin{--nav-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 5 6v5.5c0 4.3 3 8 7 9.5 4-1.5 7-5.2 7-9.5V6z'/%3E%3C/svg%3E")}.nav-icon-settings{--nav-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E")}.nav-icon-account{--nav-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4.5 21a7.5 7.5 0 0 1 15 0'/%3E%3C/svg%3E")}.nav-icon-collapse{--nav-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m11 17-5-5 5-5M18 17l-5-5 5-5'/%3E%3C/svg%3E")}
/* Large screens: the menu (#app-menu) is a fixed sidebar with the brand, Início, the store's pages (store role) and the
   menu's groups; collapsed, only the icons remain, named by their tooltips. The user chip stays in the header as an
   identification (.nav-user-card), no longer a button; the header's logo and the section list move to the sidebar. */
:root{--sidebar-w:16rem;--app-header-h:5rem}html[data-sidebar="collapsed"]{--sidebar-w:4.75rem}.app-sidebar-brand,.nav-user-card{display:none}.app-sidebar-pages{display:grid}
@media(min-width:64rem){body:has(.app-sidebar){padding-left:var(--sidebar-w);transition:padding-left .18s ease}.app-nav .app-sidebar,.app-nav .app-sidebar[hidden]{position:fixed;z-index:22;inset:0 auto 0 0;display:flex;flex-direction:column;gap:.15rem;width:var(--sidebar-w);min-width:0;max-height:none;padding:1rem .75rem;overflow-x:hidden;overflow-y:auto;border:0;border-right:1px solid var(--line);border-radius:0;background:var(--surface);box-shadow:none;transition:width .18s ease,padding .18s ease}
body:has(.app-sidebar) .shell{padding-top:0}body:has(.app-sidebar) .app-nav{height:calc(var(--app-header-h) + 1rem);min-height:0;margin-bottom:1.5rem;padding:1rem 0 0}body:has(.app-sidebar) .app-nav::after{content:"";position:absolute;z-index:-1;top:calc(100% + 1px);inset-inline:calc(50% - 50vw);height:1rem;background:var(--bg);pointer-events:none}body:has(#finance-workspace>.notice-dismissible) .app-nav::after{height:.5rem}.app-sidebar-brand{display:flex;align-items:center;gap:.75rem;height:var(--app-header-h);margin-bottom:.6rem;padding:0 .15rem;border-bottom:1px solid var(--line);color:var(--ink);font-weight:800;line-height:1.2;text-decoration:none}.app-sidebar-logo{flex:0 0 auto;width:3.1rem;height:3.1rem;border-radius:999px}.app-sidebar-logo img{width:100%;height:100%;object-fit:contain}.app-sidebar-name{min-width:0;font-size:.92rem}.app-sidebar-name .store-name-branch{color:var(--muted);font-weight:700}
.app-sidebar .nav-icon{display:flex;align-items:center;gap:.8rem;min-height:2.75rem;white-space:nowrap}.app-sidebar .nav-icon::before{content:"";flex:0 0 auto;width:1.25rem;height:1.25rem;background:currentColor;-webkit-mask:var(--nav-icon) center/contain no-repeat;mask:var(--nav-icon) center/contain no-repeat}.app-sidebar>a.nav-icon,.app-sidebar-pages a{padding:.55rem .85rem;border-radius:.55rem;font-size:.95rem;line-height:1.2}.app-sidebar>a.nav-icon::before,.app-sidebar-pages a::before{color:var(--muted)}.app-sidebar a.nav-icon[aria-current="page"]::before,.app-sidebar a.nav-icon:hover::before{color:var(--brand)}.app-sidebar-pages{gap:.15rem;margin-bottom:.4rem}.app-sidebar-pages .menu-badge{margin-left:auto}.app-sidebar .menu-group{margin-top:0}.app-sidebar summary.nav-icon{justify-content:flex-start;padding:.55rem .85rem;overflow:hidden;font-size:.95rem;font-weight:700;letter-spacing:0;text-transform:none;color:inherit}.app-sidebar summary.nav-icon::before{color:var(--muted)}.app-sidebar summary.nav-icon::after{margin-left:auto;flex:0 0 auto}.app-sidebar .menu-group a,.app-sidebar .menu-group .menu-link{padding-left:2.9rem}.app-sidebar .menu-store-label{margin-right:.35rem}
.app-sidebar a:focus-visible,.app-sidebar button:focus-visible,.app-sidebar summary:focus-visible{outline:3px solid rgba(40,91,77,.3);outline-offset:-2px}
.app-nav .app-brand,.app-nav .menu-toggle,.app-nav .section-menu-toggle,.app-nav #section-menu{display:none!important}.app-nav .section-nav{padding-left:0;margin-left:0;background:none!important;border-color:transparent!important}.nav-user-card{display:inline-flex;align-items:center;margin-left:auto;padding:.35rem 1rem .35rem .4rem;border:1px solid var(--line);border-radius:999px;background:var(--surface)}
html[data-sidebar="collapsed"] .app-nav .app-sidebar{padding-inline:.6rem}html[data-sidebar="collapsed"] .app-sidebar-brand{justify-content:center;padding-inline:0}html[data-sidebar="collapsed"] .app-sidebar-name,html[data-sidebar="collapsed"] .app-sidebar .nav-icon>:not(.menu-badge),html[data-sidebar="collapsed"] .app-sidebar details>:not(summary),html[data-sidebar="collapsed"] .app-sidebar summary::after{display:none}html[data-sidebar="collapsed"] .app-sidebar .nav-icon{position:relative;justify-content:center;gap:0;padding-inline:0;font-size:0}html[data-sidebar="collapsed"] .app-sidebar .nav-icon .menu-badge{position:absolute;top:.2rem;right:.2rem;margin:0;padding:.05rem .35rem;font-size:.62rem}html[data-sidebar="collapsed"] .app-sidebar .menu-group[open]{padding-bottom:0}}
@media(min-width:64rem) and (prefers-reduced-motion:reduce){body:has(.app-sidebar),.app-nav .app-sidebar{transition:none}}
@media(min-width:64rem){.app-sidebar .app-sidebar-brand{display:flex;width:auto;border-radius:0;background:none}.app-sidebar summary.nav-icon{white-space:normal;line-height:1.35}.app-sidebar summary.nav-icon::before{align-self:flex-start;margin-top:-.05rem}html[data-sidebar="collapsed"] .app-sidebar summary.nav-icon::before{align-self:center;margin-top:0}}
.app-menu .app-sidebar-brand{display:none}@media(min-width:64rem){.app-nav .app-sidebar .app-sidebar-brand{display:flex}.app-sidebar .menu-store-group>summary .store-name{display:none}}
/* Vista: a segmented toggle (the pressed option is the view in use: Loja or PDV), in the menu and the sidebar. */
.app-sidebar-scroll button.nav-icon{padding:.55rem .85rem;border-radius:.55rem;font-size:.95rem;line-height:1.2;color:inherit;background:transparent;border:none;cursor:pointer;width:100%;text-align:left}.app-sidebar-scroll button.nav-icon::before{color:var(--muted)}.app-sidebar-scroll button.nav-icon:hover{background:rgba(40,91,77,.07)}.app-sidebar-scroll button.nav-icon:hover::before{color:var(--brand)}.app-sidebar-scroll button.nav-icon[aria-current="page"]{background:rgba(40,91,77,.12);color:var(--brand-dark);box-shadow:inset 3px 0 0 var(--brand)}.app-sidebar-scroll button.nav-icon[aria-current="page"]::before{color:var(--brand)}
@media(min-width:64rem){
/* The chip keeps its earlier shape (avatar, name, role and code, store), without the menu icon; its store line opens the store choice. */
.app-nav .nav-user-card{position:relative;gap:.65rem;min-height:3.35rem;padding:.35rem 1.1rem .35rem .4rem;color:var(--brand);line-height:1}.nav-user-card .nav-user-text{gap:.12rem}.store-switcher-toggle{display:inline-flex;align-items:center;gap:.4rem;min-width:0;padding:0;border:0;background:none;color:inherit;font:inherit;line-height:inherit;text-align:left;cursor:pointer}.store-switcher-toggle::after{content:"";position:absolute;inset:0;border-radius:999px}.store-switcher-toggle:hover,.store-switcher-toggle[aria-expanded="true"]{background:none}.store-switcher-chevron{flex:0 0 auto;width:.4rem;height:.4rem;margin:0 0 .15rem .1rem;border-right:2px solid var(--brand);border-bottom:2px solid var(--brand);transform:rotate(45deg);transition:transform .15s}.store-switcher-toggle[aria-expanded="true"] .store-switcher-chevron{margin:.15rem 0 0 .1rem;transform:rotate(-135deg)}.nav-user-card:has(.store-switcher-toggle:hover),.nav-user-card:has(.store-switcher-toggle[aria-expanded="true"]){background:#eef4f1;border-color:rgba(40,91,77,.25)}.nav-user-card:has(.store-switcher-toggle:focus-visible){outline:3px solid rgba(40,91,77,.3);outline-offset:1px}.store-switcher-toggle:focus-visible{outline:0}.store-menu{right:0;left:auto;width:min(22rem,calc(100vw - 2rem));color:var(--ink);line-height:1.5}
.app-sidebar .menu-store-group{display:none}/* Fixed bottom bars start after the sidebar. */
body:has(.app-sidebar) .purchase-summary{left:var(--sidebar-w);padding-inline:max(2rem,calc((100vw - var(--sidebar-w) - var(--max))/2));transition:left .18s ease}body:has(.app-sidebar) .pos-bar{left:var(--sidebar-w)}body:has(.app-sidebar) .receipt-summary-bar{padding-inline:0}body:has(.app-sidebar) .receipt-summary-bar .receipt-summary-panel,body:has(.app-sidebar) .receipt-summary-bar .receipt-summary-label-row{padding-inline:max(2rem,calc((100vw - var(--sidebar-w) - var(--max))/2))}body:has(.app-sidebar) .receipt-summary-bar>[type="submit"]{padding-right:max(2rem,calc((100vw - var(--sidebar-w) - var(--max))/2))}}
@media(min-width:64rem){.nav-user-card .store-switcher-toggle{max-width:14rem;color:var(--ink);font-size:.72rem;font-weight:700;line-height:1}.nav-user-card .store-switcher-toggle .store-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
/* The view (Vista: Loja, PDV or Indicador) is the menu's first item, marked by an eye; a line sets it apart from the pages below. */
.nav-icon-view{--nav-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 12S6 5.5 12 5.5 21.5 12 21.5 12 18 18.5 12 18.5 2.5 12 2.5 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E")}.nav-icon-pos{--nav-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='10' width='20' height='12' rx='2'/%3E%3Cpath d='M7 10V7a5 5 0 0 1 10 0v3'/%3E%3Cpath d='M12 14v4'/%3E%3Cpath d='M9 16h6'/%3E%3C/svg%3E")}
/* PDV on large screens: one screen, no steps. The products (a grid of tiles, scrolling on their own) on the left; the
   order panel on the right, always open: its lines (quantity, price adjustments, remove) above the total, the customer,
   the payment and the finish. Phones keep the steps (the wide-only parts are hidden there). */
.pos-order-title-wide,.pos-order-title .pos-order-count,.pos-shortcuts,.pos-key-hint{display:none}.pos-search-field{position:relative}.pos-finish-hint{margin:0;color:#7a5a1f;font-size:.85rem;font-weight:700;text-align:center}.pos-finish-hint[hidden]{display:none}
.pos kbd{display:inline-block;min-width:1.4rem;padding:.05rem .35rem;border:1px solid var(--line);border-bottom-width:2px;border-radius:.3rem;background:var(--surface);color:var(--ink);font:700 .72rem/1.3 inherit;text-align:center}.pos-key-hint{display:none}
@media(min-width:64rem){html:has(form.pos){overflow-y:hidden}body:has(form.pos){--max:96rem}body:has(form.pos) .shell{width:min(calc(100% - 3rem),96rem)!important;max-width:none!important;padding-bottom:1rem}body .shell form.pos{width:100%;max-width:none;margin-inline:0}body:has(form.pos) .app-nav{margin-bottom:1rem}
.pos .pos-key-hint{display:inline-block}.pos-search-field .pos-search{padding-right:3.75rem}.pos-search-keys{position:absolute;top:50%;right:.8rem;translate:0 -50%;pointer-events:none}.pos-label-shortcut{display:flex!important;align-items:center;justify-content:space-between}.pos-order [data-pos-finish]{display:flex;align-items:center;justify-content:center;gap:.6rem}.pos-line-shortcut{align-self:center;pointer-events:none}.pos-clear-hint{float:right;color:var(--muted);font-size:.72rem;font-weight:400}.pos-line-wide:not(.is-current) .pos-line-shortcut{visibility:hidden}
.pos{display:grid;grid-template-columns:minmax(0,1fr) minmax(23rem,27rem);grid-template-rows:auto minmax(0,1fr);gap:0 1.25rem;height:calc(100dvh - 7.5rem);min-height:34rem}.pos>.pos-toast,.pos>.pos-waiting{grid-column:1/-1;margin:0 0 .9rem}.pos .pos-step[hidden]{display:none!important}
.pos>[data-pos-step="search"]{grid-column:1;grid-row:2;display:flex;flex-direction:column;gap:.9rem;min-height:0}.pos [data-pos-cart-bar]{display:none!important}
.pos .pos-products{flex:1 1 auto;display:grid;grid-template-columns:1fr;grid-auto-rows:auto;align-content:start;gap:.5rem;min-height:0;margin:0;padding:.15rem .35rem .75rem .15rem;overflow-y:auto;list-style:none}.pos .pos-products>li{display:block;min-width:0}.pos .pos-products>li.empty{grid-column:1/-1}.pos .pos-products>li[hidden]{display:none}
.pos .pos-products .pos-product{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name price" "meta price";align-items:center;gap:.1rem 1rem;width:100%;padding:.65rem .9rem;border:1px solid var(--line);border-radius:.75rem;background:var(--surface);color:var(--ink);text-align:left;box-shadow:0 1px 2px rgba(23,32,51,.04)}.pos .pos-products .pos-product:hover:not(:disabled){border-color:rgba(40,91,77,.45);background:#f7faf8}.pos .pos-products .pos-product:focus-visible{outline:3px solid rgba(40,91,77,.3);outline-offset:1px}.pos .pos-product-name{grid-area:name;font-weight:800;line-height:1.25}.pos .pos-product-meta{grid-area:meta;color:var(--muted);font-size:.82rem;font-weight:400}.pos .pos-product-price{grid-area:price;margin:0;color:var(--brand);font-size:1.15rem;white-space:nowrap}.pos .pos-product[data-in-order]{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}.pos .pos-product[data-in-order]::after{display:none}
.pos>.pos-order{grid-column:2;grid-row:2;display:flex;flex-direction:column;gap:.75rem;min-height:0;margin:0;padding:1.1rem;overflow-y:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.pos-order>*{margin:0}.pos-order .pos-back{display:none}.pos-order-title{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;font-size:1.2rem}.pos-order-title-step{display:none}.pos-order-title .pos-order-title-wide{display:inline}.pos-order-title .pos-order-count{display:inline;color:var(--muted);font-size:.85rem;font-weight:700}
.pos-order .pos-lines{flex:1 1 auto;display:grid;align-content:start;gap:.5rem;min-height:0;margin:0 -.35rem;padding:0 .35rem;overflow-y:auto;list-style:none}
.pos-line-wide{padding:.6rem .7rem;border:1px solid var(--line);border-radius:.65rem;background:var(--bg)}.pos-line-wide.is-added{animation:pos-line-added .9s ease}@keyframes pos-line-added{from{background:#d9ece2;border-color:var(--brand)}}.pos-line-main{display:grid;grid-template-columns:minmax(0,1fr) auto 5.75rem auto;align-items:center;gap:.55rem}.pos-line-name{display:grid;min-width:0}.pos-line-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pos-line-name small{color:var(--muted);font-size:.76rem}.pos-line-stepper{display:grid;grid-template-columns:auto 2.5rem 3.5rem 2.5rem;align-items:center;gap:.3rem}.pos-line-stepper button{display:grid;place-items:center;height:2.5rem;padding:0;font-size:1.2rem}.pos-line-stepper input{height:2.5rem;padding:.3rem;text-align:center;font-size:1rem;font-weight:700}.pos-line-total{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.pos-line-remove{display:grid;place-items:center;width:1.9rem;height:1.9rem;padding:0;border-radius:999px;background:transparent;color:var(--muted);font-size:1.2rem;line-height:1}.pos-line-remove:hover{background:#fbe2e2;color:var(--danger)}
.pos-line-adjust{margin-top:.35rem}.pos-line-adjust>summary{display:grid;place-items:center;width:1.8rem;height:1.8rem;border-radius:.4rem;background:rgba(40,91,77,.08);color:var(--brand);font-size:1rem;font-weight:800;cursor:pointer;list-style:none}.pos-line-adjust>summary:hover{background:rgba(40,91,77,.16)}.pos-line-adjust>summary::-webkit-details-marker{display:none}.pos-line-adjust-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin-top:.4rem}.pos-line-field{gap:.2rem;color:var(--muted);font-size:.75rem}.pos-line-field .pos-amount{display:grid;grid-template-columns:minmax(0,1fr) 3.6rem;gap:.25rem}.pos-line-field input,.pos-line-field select{min-width:0;height:2.1rem;padding:.3rem .45rem;border:1px solid #bfc4ca;border-radius:.45rem;background:var(--surface);font:inherit;font-size:.85rem;color:var(--ink)}
.pos-order .pos-subtotal{display:flex;align-items:baseline;justify-content:space-between;padding-top:.65rem;border-top:1px solid var(--line);font-weight:700}.pos-order .pos-subtotal strong{color:var(--brand);font-size:1.75rem;font-variant-numeric:tabular-nums}
.pos-order .pos-customer{position:relative}.pos-order .pos-customer .combobox-list{position:absolute;z-index:5;right:0;bottom:100%;left:0;top:auto;max-height:16rem;margin-bottom:.35rem;overflow-y:auto;box-shadow:var(--shadow)}.pos-order .pos-bar{position:static;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:.6rem;max-width:none;margin:0;padding:0;border:0;background:none;box-shadow:none}.pos-order .pos-bar button{min-height:3.1rem;font-size:1.05rem}.pos-order .hint{margin:0}.pos-order .pos-shortcuts{display:block;font-size:.78rem;text-align:center}
.pos-order .pos-customer .combobox-meta{display:none}.pos-order .pos-customer .combobox-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
/* The order panel, compact: the lines take the free height; the customer and the payment below them; the total sits
   right above the finish buttons (visual order only: the keyboard still goes customer → payment → finish). The panel
   fills the screen's height (pos.js sets --pos-top, where the PDV starts) and never scrolls as a whole. */
@media(min-width:64rem){.pos{height:calc(100dvh - var(--pos-top,7.5rem) - 1rem);min-height:30rem;padding:0}.pos>.pos-order{gap:.85rem;padding:1rem 1.1rem;overflow:visible}
.pos-order-title{order:0;font-size:1.1rem}.pos-order .pos-lines{order:1}.pos-order .pos-customer{order:2}.pos-order .pos-payment{order:3}.pos-order [data-pos-delivery]{order:4}.pos-order .pos-subtotal{order:5}.pos-order .pos-bar{order:6}.pos-order>.hint{order:7}
.pos-order .pos-customer{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:.35rem .75rem;max-width:none}.pos-order .pos-customer>.sale-entry-label{grid-row:1;grid-column:1;font-size:.85rem}.pos-order .pos-register{grid-row:1;grid-column:2;font-size:.8rem;font-weight:800}.pos-order .pos-customer>.combobox-field{grid-row:2;grid-column:1/-1}.pos-order .pos-customer input[role="combobox"]{padding:.6rem .75rem}
.pos-order .pos-payment{gap:.25rem}.pos-order .pos-payment select{min-height:2.5rem;font-size:.9rem}.pos .pos-order .pos-payment select,.pos .pos-order .pos-delivery select,.pos .pos-order .pos-term input{height:2.85rem;font-size:.9rem}.pos-order .pos-payment .hint{font-size:.74rem;line-height:1.35}.pos-order .pos-delivery{gap:.25rem}.pos-order .pos-delivery select{min-height:2.5rem;font-size:.9rem}
.pos-order .pos-subtotal{padding-top:.75rem;font-size:1rem}.pos-order .pos-subtotal strong{font-size:1.9rem;line-height:1}.pos-order>.hint{font-size:.74rem;text-align:center}
/* Both columns fill the PDV's height; an order line is two rows (the whole name and its unit price, then the quantity and the line's total). */
.pos>[data-pos-step="search"],.pos>.pos-order{align-self:stretch;height:100%}.pos-line-main{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"name name remove" "stepper total total";row-gap:.45rem}.pos-line-name{grid-area:name}.pos-line-name strong{white-space:normal;overflow-wrap:anywhere;line-height:1.25}.pos-line-remove{grid-area:remove;align-self:start}.pos-line-stepper{grid-area:stepper}.pos-line-total{grid-area:total;font-size:1.05rem}
.pos-order .pos-finish-hint{order:6}.pos-order .pos-bar{grid-auto-flow:row;grid-template-columns:auto minmax(0,1fr)}.pos-order .pos-bar button{white-space:nowrap;font-size:1rem}.pos-order .pos-bar button:only-child{grid-column:1/-1}}
/* The order panel takes the room the products don't need (up to the tiles), in two columns: the lines on the left,
   with the panel's whole height; the customer, the payment, the total and the finish on the right. */
@media(min-width:64rem){.pos{grid-template-columns:minmax(13.5rem,1fr) minmax(36rem,1.5fr)}
.pos>.pos-order{display:grid;grid-template-columns:minmax(0,1fr) minmax(16rem,19rem);grid-template-rows:auto auto auto auto auto auto auto minmax(0,1fr) auto;gap:.85rem 1.4rem;align-content:stretch}
.pos-order>.pos-order-title{grid-column:1/-1;grid-row:1}.pos-order>.pos-lines{grid-column:1;grid-row:2/-1;align-self:stretch;margin:0;padding:0 .35rem 0 0}
.pos-order>.pos-customer{grid-column:2;grid-row:2}.pos-order>.pos-payment{grid-column:2;grid-row:3}.pos-order>[data-pos-delivery]{grid-column:2;grid-row:4}.pos-order>.pos-subtotal{grid-column:2;grid-row:5}.pos-order>.pos-finish-hint{grid-column:2;grid-row:6}.pos-order>.pos-bar{grid-column:2;grid-row:7;grid-template-columns:minmax(0,1fr)}.pos-order>.hint{grid-column:2;grid-row:9;align-self:end}
.pos-order .pos-customer .combobox-list{top:100%;bottom:auto;margin:.35rem 0 0;z-index:30}.pos-order .pos-delivery{gap:.3rem}.pos-order .pos-bar button{white-space:normal}.pos-order .pos-subtotal strong{font-size:1.7rem}
.pos-order .pos-lines:empty::before{content:"Nenhum item no pedido.";display:grid;place-items:center;height:100%;min-height:6rem;border:1px dashed var(--line);border-radius:.65rem;color:var(--muted);font-size:.9rem}}
.consolidation-picker{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem 1.25rem;margin-bottom:1rem}.consolidation-stores{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;border:0;padding:0;margin:0}.consolidation-stores legend{font-weight:600;margin-bottom:.35rem}
.nav-icon-team{--nav-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l7 3v5c0 4.5-3 8-7 10-4-2-7-5.5-7-10V6z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3Cpath d='M8 16a4 4 0 0 1 8 0'/%3E%3C/svg%3E")}
.permission-matrix{display:grid;gap:1rem}.permission-matrix fieldset{border:1px solid rgba(40,91,77,.15);border-radius:12px;padding:.75rem 1rem}.permission-matrix legend{font-weight:700;padding:0 .35rem}.permission-row{display:grid;grid-template-columns:1fr auto;gap:.5rem 1rem;align-items:center;padding:.45rem 0;border-top:1px solid rgba(40,91,77,.08)}.permission-row:first-of-type{border-top:0}.permission-levels{display:flex;flex-wrap:wrap;gap:.25rem .75rem}.permission-levels label{display:flex;gap:.3rem;align-items:center;font-weight:500}.permission-levels input:disabled+span{opacity:.45}.permission-critical{font-size:.75rem;color:#8a4b00;background:#fff3dd;border-radius:999px;padding:.05rem .5rem;margin-left:.35rem}@media(max-width:40rem){.permission-row{grid-template-columns:1fr}}.team-groups-list{display:flex;flex-wrap:wrap;gap:.35rem}.team-tag{background:rgba(40,91,77,.08);border-radius:999px;padding:.1rem .6rem;font-size:.85rem}.team-tag-highlight{background:rgba(40,91,77,.2);font-weight:600}
.store-review-tabs a[aria-current] .menu-badge{background:#fff;color:var(--brand)}
.permission-levels label{white-space:nowrap}
.nav-icon-receivables{--nav-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='M3 10h18'/%3E%3Cpath d='m9 15 2 2 4-4'/%3E%3C/svg%3E")}
.receivable-actions{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.receivable-liquidate{display:flex;flex-wrap:wrap;gap:.3rem;align-items:center}.receivable-liquidate input[type=date]{max-width:9.5rem}.pix-charge svg{max-width:220px;height:auto}.charge-card h2{font-size:1.05rem}
.nav-icon-groups{--nav-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.6 13.4 13.4 20.6a2 2 0 0 1-2.8 0L3 13V3h10l7.6 7.6a2 2 0 0 1 0 2.8z'/%3E%3Ccircle cx='7.5' cy='7.5' r='1.5'/%3E%3C/svg%3E")}
.product-tier{display:block}
.commission-late{color:var(--danger);font-weight:600}.store-card-commission{color:var(--muted)}.store-card-details{list-style-type:"· ";padding:0 0 0 .9rem;margin:.25rem 0 0;font-size:.82rem;color:var(--muted);display:grid;gap:.2rem;text-align:left}.store-card-details li:has(>span+span){display:flex;justify-content:space-between;gap:.5rem}.store-card-details li>span+span{text-align:right}.store-card-details strong{color:var(--ink)}.store-card-details .detail-overdue{color:var(--danger);font-weight:600}.store-card-actions{display:grid;gap:.4rem;width:100%}
.store-logo.store-logo-small{width:2.25rem;height:2.25rem;font-size:.7rem}.person-contact .store-logo-small+.cell-stack{margin-right:auto}
.status-toggle-option[aria-pressed="true"]{background:var(--brand);color:#fff}.status-toggle-option[aria-pressed="true"] span{background:rgba(255,255,255,.2)}button.status-toggle-option{border:0;font:inherit;cursor:pointer}
.store-review-identity{display:flex;align-items:center;gap:1rem}
.store-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.85rem 1.5rem;margin:0}.store-details div{min-width:0}.store-details dt{color:var(--muted);font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.store-details dd{margin:.15rem 0 0;font-weight:600;overflow-wrap:anywhere}
.modal.modal-wide{width:min(calc(100% - 2rem),44rem)}.modal-wide .modal-body{justify-items:stretch;text-align:left;color:var(--ink)}.modal-wide .store-review-actions{justify-content:flex-start}
.store-details dd{white-space:normal}.store-details .store-details-wide{grid-column:1/-1}@media (min-width:48rem){.store-details .store-details-row-start{grid-column-start:1}.store-details .store-details-span2{grid-column-end:span 2}}
.statement-proof.is-missing>strong{color:var(--danger)}

.app-sidebar-dev-link{display:block;margin:.75rem 0 0;font-size:.85rem;font-weight:700;color:var(--brand)}
/* The reseller's flat menu (_app_nav.html): "Contas a pagar" and "Sair" as top-level items. */
.nav-icon-payable{--nav-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3h12v18l-3-2-3 2-3-2-3 2z'/%3E%3Cpath d='M9 8h6M9 12h6M9 16h3'/%3E%3C/svg%3E")}.nav-icon-logout{--nav-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h4a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1h-4'/%3E%3Cpath d='M10 16l-4-4 4-4M6 12h10'/%3E%3C/svg%3E")}
.app-sidebar-button{width:100%;padding:.55rem .85rem;border:0;border-radius:.55rem;background:transparent;color:inherit;font:inherit;font-size:.95rem;font-weight:inherit;line-height:1.2;text-align:left;cursor:pointer}.app-sidebar-button:hover{background:var(--surface-muted,rgba(0,0,0,.04))}.app-sidebar .app-sidebar-button::before{color:var(--muted)}.app-sidebar .app-sidebar-button:hover::before{color:var(--brand)}
.order-payment-pix{margin-inline:auto}.order-payment-actions{flex-wrap:wrap;gap:.5rem}.order-payment-actions form{display:contents}
[data-order-payment] [hidden]{display:none!important}
.modal-footer.order-payment-actions{display:grid;grid-template-columns:1fr;gap:.5rem}.order-payment-actions>button,.order-payment-actions>a,.order-payment-actions form>button{width:100%;justify-content:center;text-align:center}.order-payment-modal a.button.whatsapp-link{display:flex;align-items:center;justify-content:center;gap:.45rem;padding:.8rem 1rem;border-radius:.55rem;font-size:1rem;line-height:1.5;background:var(--brand);color:#fff}.order-payment-modal a.button.whatsapp-link:hover{background:var(--brand-dark);color:#fff}
button.status-toggle-option:not([aria-pressed="true"]):not(.is-active){background:transparent;color:var(--muted)}
.order-payment-modal .modal-body{text-align:center;justify-items:center}.order-payment-instruction{margin:0;font-size:1rem;line-height:1.5;max-width:28rem}.order-payment-total{display:grid;gap:.15rem}.order-payment-total strong{font-size:1.6rem}.order-payment-pix{display:grid;justify-items:center;width:100%}.order-payment-pix .pix-on-demand{margin-inline:auto}.order-payment-pix textarea{text-align:left}.order-payment-file{display:grid;gap:.4rem;width:100%;text-align:left}.pos-summary .pos-pix-code figcaption{display:none}
.charge-proof-form{display:grid;gap:.35rem;margin-bottom:.4rem}.charge-proof-form label{display:grid;gap:.25rem}
.pix-on-demand .pix-copy-status:not([hidden]){margin:0;padding:.4rem .7rem;font-size:.82rem;line-height:inherit;min-height:0;display:flex;align-items:center;justify-content:center}
/* A modal in three parts: the header and the footer stay in place, only the body scrolls. A step of a modal
   (.modal-step) or a form around body and footer passes the layout on. Modals without a .modal-body scroll whole. */
.modal:has(.modal-body){overflow:hidden}.modal-panel:has(.modal-body){display:flex;flex-direction:column;box-sizing:border-box;max-height:calc(100dvh - 2rem);overflow:hidden}.modal-panel>.modal-header,.modal-panel .modal-footer{flex:none}.modal-panel>form:has(.modal-body),.modal-panel .modal-step{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;gap:.75rem}.modal-footer-left{display:flex;gap:.75rem}.modal-panel .modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}

.order-page-pix{display:grid;justify-items:center}
@media(min-width:60rem){.resale-orders-table .col-store{width:13rem}}
@media(min-width:60rem){.resale-orders-table .col-date{width:10.5rem}.resale-orders-table .col-contact{width:12rem}}.resale-orders-table .order-row-actions{flex-wrap:nowrap}
@media(min-width:60rem){.resale-orders-table .col-store{width:11.5rem}.resale-orders-table .col-contact{width:13rem}}
.resale-orders-table td:nth-child(5) .status-badge{display:inline-block;min-width:8.5rem;text-align:center}
.table-more{margin:0;text-align:center}

/* The project's list pattern (rows-scroll-card): a card with tabs, search, filters and indicators on top and a dynamic
   table below, whose rows alone scroll, the header staying in place. On larger screens:
   - the card ends above the page's bottom padding, at most the screen's height (data-table.js measures where it
     starts) and no taller than its rows;
   - a compact vertical rhythm, so a good number of rows show at once;
   - one line per row, from the size where tables stop being cards (36rem): cells never wrap (a .cell-stack lays its
     parts side by side); where the table sets its column widths (a <colgroup>), text ends in an ellipsis, and the whole
     of it shows on hover (data-table.js). A list opened inside a cell (<details>) wraps within its column, never
     widening it, a gap between items. Cells holding a form or a field keep their natural layout. Screens below 48rem
     scroll the page. */
@media(min-width:48rem){
  .rows-scroll-card{display:flex;flex-direction:column;max-height:var(--rows-scroll-max,calc(100dvh - 11rem))}
  .rows-scroll-card,.rows-scroll-card .data-workspace-panel{gap:.75rem}
  .rows-scroll-card.card{padding-block:1rem}
  .rows-scroll-card>*,.rows-scroll-card .data-workspace-panel>*{flex:0 0 auto}
  .rows-scroll-card .data-workspace-panel{display:flex;flex-direction:column;flex:0 1 auto;min-height:0}
  .rows-scroll-card .table-wrap{flex:0 1 auto;min-height:0;overflow:auto}
  .rows-scroll-card .status-toggle-option{min-height:2.25rem;padding-block:.4rem}
  .rows-scroll-card .table-search input,.rows-scroll-card .table-search .button,.rows-scroll-card .table-search button{padding-block:.55rem}
  .rows-scroll-card .table-date-filter{padding:.5rem .8rem;gap:.5rem}
  .rows-scroll-card .table-date-filter input{padding-block:.4rem}
  .rows-scroll-card .table-summary-indicator strong{font-size:1.35rem}
  .rows-scroll-card :is(table,.orders-table) thead th{position:sticky;top:0;z-index:1;height:2.6rem;padding-block:.4rem;background:var(--surface)}
}
@media(min-width:36.01rem){
  .rows-scroll-card :is(table,.orders-table) tbody td{height:3.4rem;padding-block:.45rem;white-space:nowrap}
  /* A badge gives way like any text in its cell. */
  .rows-scroll-card td .status-badge{display:inline-block;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}
  .rows-scroll-card td .cell-stack-inline{display:block;min-width:0;max-width:100%}
  /* A dialog opened from a row keeps the page's wrapping, not its row's single line. */
  .rows-scroll-card .modal{white-space:normal}
  .rows-scroll-card .modal :is(table,.orders-table) tbody td{white-space:normal;height:auto}
  .rows-scroll-card table:has(colgroup){table-layout:fixed}
  .rows-scroll-card table:has(colgroup) tbody td{overflow:hidden;text-overflow:ellipsis}
  .rows-scroll-card table tbody td:has(form,input,select,textarea){white-space:normal;overflow:visible}
  .rows-scroll-card td .cell-stack{display:flex;flex-direction:row;align-items:baseline;gap:.5rem;min-width:0}
  .rows-scroll-card td .cell-stack>*{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}
  .rows-scroll-card td .cell-stack>*+*{flex-shrink:6}
  /* A person with their WhatsApp button: the name gives way, the button keeps its size. */
  .rows-scroll-card td .person-contact{display:flex;align-items:center;gap:.5rem;min-width:0;max-width:100%}
  .rows-scroll-card td .person-contact>:not(.icon-button){min-width:0;overflow:hidden;text-overflow:ellipsis}
  .rows-scroll-card td .person-contact>.icon-button{flex:none}
  .rows-scroll-card td .person-contact>.info-tip-btn{flex:none}
  .rows-scroll-card td details{width:auto;min-width:0;max-width:100%}
  .rows-scroll-card td details>ul{width:0;min-width:100%;white-space:normal;overflow-wrap:anywhere;display:grid;gap:.45rem}
  .rows-scroll-card .resale-orders-table .col-date{width:12rem}.rows-scroll-card .resale-orders-table .col-contact{width:14rem}.rows-scroll-card .resale-orders-table .col-store{width:10rem}
  /* A header may take two lines rather than be cut; the rows stay on one. */
  .rows-scroll-card :is(table,.orders-table) thead th{white-space:normal;line-height:1.2}
  /* The column widths a table declares in its <colgroup>; a plain <col> takes the room left (names, products). */
  .rows-scroll-card col.col-rank{width:3.5rem}
  .rows-scroll-card col.col-qty{width:9rem}
  .rows-scroll-card col.col-day{width:8.5rem}
  .rows-scroll-card col.col-short{width:9rem}
  .rows-scroll-card col.col-money{width:9.5rem}
  .rows-scroll-card col.col-items{width:10.5rem}
  .rows-scroll-card col.col-status{width:11rem}
  .rows-scroll-card col.col-date{width:12rem}
  .rows-scroll-card col.col-mid{width:12.5rem}
  .rows-scroll-card col.col-wide{width:15rem}
  /* Recebimentos: the situation badge carries the due date (or when and how it was received): it gets the room. */
  .rows-scroll-card col.col-receivable-situation{width:21rem}
  .rows-scroll-card col.col-actions{width:9.5rem}
  .rows-scroll-card col.col-actions-sm{width:7rem}
  /* The pipeline lets its columns follow their content on its own; in the list pattern it keeps its widths. */
  .rows-scroll-card #settlement-orders{table-layout:fixed}
  .rows-scroll-card #settlement-orders .col-order-date{width:10.5rem!important}
  .rows-scroll-card #settlement-orders .col-order-items{width:11rem!important}
  .rows-scroll-card #settlement-orders .col-order-total{width:8.5rem!important}
  .rows-scroll-card #settlement-orders .col-order-commission{width:12rem!important}
  .rows-scroll-card #settlement-orders .col-order-actions{width:6rem!important}
  /* Finalizados: the amount and the customer come first. Date, products, total and actions take their content's width,
     each situation what its usual badge needs (a longer one ends in an ellipsis), the customer the rest. */
  #settlement-orders.settlement-fit .col-order-date{width:9.5rem!important}
  #settlement-orders.settlement-fit .col-order-items{width:7rem!important}
  #settlement-orders.settlement-fit .col-order-total{width:8rem!important}
  #settlement-orders.settlement-fit .col-order-situation{width:9.5rem!important}
  #settlement-orders.settlement-fit .col-order-actions{width:4.75rem!important}
}
@media(min-width:36.01rem) and (max-width:80rem){
  /* Narrower: the same priority, in rem so a date or an amount always fits whole; the time moves to the date's tooltip. */
  .rows-scroll-card #settlement-orders .col-order-date{width:6.5rem!important}
  .rows-scroll-card #settlement-orders .col-order-items{width:6.25rem!important}
  .rows-scroll-card #settlement-orders .col-order-total{width:7.25rem!important}
  .rows-scroll-card #settlement-orders .col-order-commission{width:7.5rem!important}
  .rows-scroll-card #settlement-orders .col-order-situation{width:6.25rem!important}
  .rows-scroll-card #settlement-orders .col-order-actions{width:4.75rem!important}
  .rows-scroll-card #settlement-orders td:first-child .cell-stack small{display:none}
  .rows-scroll-card #settlement-orders :is(th,td){padding-inline:.5rem}
  .rows-scroll-card #settlement-orders thead th{overflow:hidden;text-overflow:ellipsis}
  /* Every other list: the standard widths as shares too, the actions keeping theirs so their buttons are never cut. */
  .rows-scroll-card col.col-rank{width:7%}
  .rows-scroll-card col.col-qty{width:12%}
  .rows-scroll-card col.col-day{width:13%}
  .rows-scroll-card col.col-short{width:13%}
  .rows-scroll-card col.col-money{width:7.5rem}
  .rows-scroll-card col.col-items{width:15%}
  .rows-scroll-card col.col-status{width:15%}
  .rows-scroll-card col.col-date{width:16%}
  .rows-scroll-card col.col-mid{width:18%}
  .rows-scroll-card col.col-wide{width:22%}
  .rows-scroll-card col.col-receivable-situation{width:26%}
  .rows-scroll-card .resale-orders-table{table-layout:fixed}
  .rows-scroll-card .resale-orders-table .col-date{width:16%}.rows-scroll-card .resale-orders-table .col-contact{width:18%}.rows-scroll-card .resale-orders-table .col-store{width:16%}
  .rows-scroll-card .resale-orders-table .col-total{width:7.5rem}.rows-scroll-card .resale-orders-table .col-status{width:15%}
}button.app-sidebar-brand{width:100%;border:0;border-radius:0;background:none;color:var(--ink);font:inherit;font-weight:800;text-align:left;cursor:pointer}button.app-sidebar-brand:hover .app-sidebar-logo{opacity:.85}button.app-sidebar-brand:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
/* The dashboards' cards: each takes the whole width until two side by side have room for their amounts on one line,
   counting the sidebar (64rem up). */
@media(max-width:80rem){.dashboard-summary-cards,.dashboard-charts{grid-template-columns:minmax(0,1fr)}}
/* An order's page (partner_order_payment.html): items beside a summary with the situation and the actions. */
.order-page{display:grid;gap:1.25rem;align-items:start}
/* Beside the items only with room for their amounts whole, counting the sidebar (64rem up); below, under them. */
@media(min-width:72rem){.order-page{grid-template-columns:minmax(0,1fr) 19rem}}
.order-items-table{table-layout:fixed;width:100%}.order-items-table col.col-qty{width:7.5rem}.order-items-table col.col-money{width:8.5rem}
/* Beside the order's summary (or the sidebar) fixed widths leave the product no room. The amounts take just their
   content's width and are never cut; the product takes the rest, on one line, and what does not fit ends in an ellipsis,
   whole on hover (data-table.js). */
@media(min-width:36.01rem){
  .order-items-table{table-layout:auto}
  .order-items-table col{width:auto!important}
  .order-items-table :is(td,th){white-space:nowrap}
  .order-items-table tbody td:first-child{width:100%;max-width:0;overflow:hidden;text-overflow:ellipsis}
}
.order-items-table td,.order-items-table th{padding:.6rem .75rem}.order-items-table td:nth-child(n+2),.order-items-table th:nth-child(n+2){text-align:right;white-space:nowrap}
.order-items-table td:first-child{overflow-wrap:anywhere}.order-items-table tfoot th,.order-items-table tfoot td{border-top:1px solid var(--line);font-weight:800}
.order-page-summary{display:grid;gap:1rem;padding:1rem;border:1px solid var(--line);border-radius:.65rem;background:var(--bg)}
.order-page-summary header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.order-page-summary h2{margin:0;font-size:1.05rem}
.order-page-facts{display:grid;grid-template-columns:minmax(0,1fr);gap:.6rem;margin:0;min-width:0}.order-page-facts div{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.order-page-facts dt{color:var(--muted);font-size:.85rem}.order-page-facts dd{margin:0;font-weight:700;text-align:right;min-width:0}.order-page-facts .fact-inline{display:flex;align-items:center;gap:.4rem;overflow:hidden}.order-page-facts .fact-inline strong{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.order-page-actions{display:grid;gap:.5rem}.order-page-actions form{display:contents}.order-page-actions>*{width:100%;justify-content:center;text-align:center}.order-page-actions a.button.whatsapp-link{display:flex;align-items:center;gap:.45rem;border-radius:.55rem;padding:.8rem 1rem;font-size:1rem;line-height:1.5}
.order-page-back{justify-self:center;font-size:.9rem;color:var(--brand);font-weight:700}
.order-detail-actions-card{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:1rem 1.25rem;margin-top:1.25rem}.order-detail-actions-card form{display:contents}


/* The sidebar in three parts: the logo on top (it collapses and expands the menu), the account at the bottom (Meus
   dados, Sair), and between them the view and the pages, which alone scroll when the screen is short. A tighter,
   even rhythm: the same step between every item, a divider between the parts. */
.app-sidebar-scroll{display:flex;flex-direction:column;gap:.1rem;min-height:0}
@media(min-width:64rem){
  .app-nav .app-sidebar,.app-nav .app-sidebar[hidden]{overflow:hidden;gap:0;padding-block:1rem .75rem}
  .app-sidebar-scroll{flex:1 1 auto;overflow-y:auto;overflow-x:hidden;padding-block:.5rem;scrollbar-width:thin}
}
button.app-sidebar-brand{flex:none;height:var(--app-header-h);margin:0;padding:0 .15rem;border-bottom:1px solid var(--line)}
.app-sidebar-bottom{flex:none;gap:.1rem;margin:0;padding-top:.5rem;border-top:1px solid var(--line)}

.app-sidebar .nav-icon{min-height:2.5rem}
.app-sidebar-pages{gap:.1rem;margin-bottom:0}
.app-sidebar-pages a,.app-sidebar>a.nav-icon,.app-sidebar-scroll>a.nav-icon,.app-sidebar .app-sidebar-button{padding-block:.5rem}
/* A page's title in the top bar (_app_nav.html; a store page's section, _store_nav.html). */
.app-nav-title:not(.section-nav-title){display:grid;gap:.15rem}
.buy-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 1rem}.buy-preview-banner{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem 1rem}.buy-preview-banner>span{flex:1 1 0;min-width:0}.buy-preview-banner form{flex:none}.form-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.buy-groups-body{display:flex;flex-direction:column;gap:0;margin-top:0}.buy-group-item{padding:.75rem 0 1rem;border-bottom:1px solid var(--border)}.buy-group-item:last-child{border-bottom:none}.buy-group-name{display:block;font-size:1rem;margin-bottom:.25rem;color:var(--ink)}.buy-group-description{font-size:.875rem;margin:.25rem 0 .5rem}.buy-group-conditions{list-style:disc;padding-left:1.25rem;margin:.4rem 0 .75rem;font-size:.875rem;display:flex;flex-direction:column;gap:.2rem}.buy-group-units{display:block;flex-basis:100%;margin-bottom:.5rem;font-size:.875rem}.buy-group-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.share-section{display:grid;gap:1rem}
/* A store's public showcase (store_showcase.html): its header, the products, the order bar at the bottom. */
.showcase-header{display:flex;align-items:center;gap:1rem;margin:1.5rem 0 1.25rem}.showcase-header h1{margin:0;font-size:clamp(1.5rem,3vw,2.2rem)}
.showcase-grid{padding-bottom:7rem}.showcase-summary .button{white-space:nowrap}.showcase-hint{position:fixed;right:1rem;bottom:5.5rem;margin:0;padding:.5rem .75rem;border-radius:.5rem;background:var(--surface);box-shadow:var(--shadow)}
.nav-icon-share{--nav-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='18' cy='5' r='2.5'/%3E%3Ccircle cx='6' cy='12' r='2.5'/%3E%3Ccircle cx='18' cy='19' r='2.5'/%3E%3Cpath d='m8.2 10.8 7.6-4.4M8.2 13.2l7.6 4.4'/%3E%3C/svg%3E")}
.relation-badge{display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.75rem;font-weight:800;white-space:nowrap}.relation-customer{background:rgba(23,32,51,.07);color:var(--ink)}.relation-buyer{background:rgba(201,155,82,.2);color:#7a5a1e}.relation-referral{background:rgba(40,91,77,.12);color:var(--brand)}
.share-single>.referral-link-option{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.25rem}.contact-request{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.contact-request p{margin:0;flex:1 1 24rem}.contact-request-actions{display:flex;gap:.5rem}
.contact-share-list{display:grid;gap:.6rem;margin:0;padding:0;list-style:none}.contact-share-list li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:.6rem 0;border-top:1px solid var(--line)}.contact-share-list li:first-child{border-top:0}
.resale-order-items>summary{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Store reputation: the buyer's rating scale (order page) and the store's public indicators (directory, program page). */
.rating-scale{display:grid;gap:.5rem;margin:0;padding:.85rem 1rem;border:1px solid var(--line);border-radius:.6rem}.rating-scale legend{float:left;width:100%;display:flex;align-items:center;gap:.5rem;margin:0 0 .35rem;padding:0;font-size:1.1rem;font-weight:700}.rating-title{display:flex;align-items:center;gap:.5rem}.rating-help{flex:none;width:1.6rem;height:1.6rem;font-size:.9rem;font-weight:700}.rating-options{display:grid;grid-template-columns:repeat(5,1fr);gap:.5rem}.rating-options label{position:relative;display:flex;align-items:center;justify-content:center;min-height:2.75rem;border:1px solid var(--line);border-radius:.5rem;background:var(--surface);font-size:1.15rem;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.rating-options label:hover{border-color:var(--brand)}.rating-options input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.rating-options label:has(input:checked){background:var(--brand);border-color:var(--brand);color:#fff}.rating-options label:has(input:focus-visible){outline:2px solid var(--brand);outline-offset:2px}.rating-ends{display:flex;justify-content:space-between;color:var(--muted);font-size:.85rem}.order-page-rating{margin:.75rem 0 0;color:var(--muted);font-size:.9rem}.order-page-rating p{margin:0}.order-page-rating ul{margin:.25rem 0 0;padding-left:1.1rem}
.reputation-table{width:100%;border-collapse:collapse}.reputation-table th,.reputation-table td{padding:.45rem .25rem;border-top:1px solid var(--line);text-align:left;vertical-align:top}.reputation-table td:last-child{text-align:right;white-space:nowrap}.reputation-table small{display:block;color:var(--muted);font-weight:400}.reputation-group th{padding-top:.9rem;border-top:0;color:var(--muted);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}.store-card-reputation{display:flex;flex-wrap:wrap;gap:.2rem .6rem;color:var(--muted);font-size:.85rem}.store-card-reputation strong{color:var(--ink)}
.order-promised-delivery,.order-cancel{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.5rem}.order-promised-delivery{margin:1rem 0 0}.order-promised-delivery label,.order-cancel label{display:grid;gap:.2rem}
/* "Ver como" (the platform's team): a small button beside the user chip, its panel anchored under it. */

/* Entering the PDV: for which store the sale is (a formal store or the own resale), and the same badge in the PDV's title. */
.pos-store-choices{display:grid;gap:.5rem}.pos-store-choice{display:flex;align-items:center;gap:.65rem;padding:.7rem .85rem;min-height:3rem;border:1px solid var(--line);border-radius:.6rem;cursor:pointer}.pos-store-choice:has(input:checked){border-color:var(--brand);background:rgba(40,91,77,.06)}.pos-store-choice input[type=radio]{flex:none;width:auto;padding:0;border:0;background:transparent;accent-color:var(--brand)}.pos-store-choice strong{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pos-pricing-text{flex:1;display:grid;min-width:0}.pos-pricing-text small{font-size:.8rem}.pos-store-locked{cursor:default}.pos-store-locked .button{flex:none;margin-left:auto}.pos-store-footer{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:1.5rem}.pos-store-footer>*{width:100%}.pos-title-store{display:inline-flex;align-items:center;gap:.5rem;margin-left:.5rem;font-size:1rem;font-weight:600;color:var(--muted);vertical-align:middle}
/* Estoque: the pricing the stock is valued by, beside the search. */
.stock-pricing{display:flex;align-items:center;gap:.5rem;font-weight:700;white-space:nowrap}.stock-pricing select{min-width:11rem;height:100%}.stock-pricing-terms{font-size:1rem}
/* Conferência financeira de grupo: toggle Dentro/Fora e layout da conferência. */
.toggle-label{display:inline-flex;align-items:center;gap:.4rem;cursor:pointer}.toggle-checkbox{position:absolute;opacity:0;width:0;height:0}.toggle-slider{position:relative;display:inline-block;width:2.6rem;height:1.4rem;background:var(--line);border-radius:999px;transition:background .18s}.toggle-checkbox:checked~.toggle-slider{background:var(--brand)}.toggle-slider::after{content:"";position:absolute;top:.2rem;left:.2rem;width:1rem;height:1rem;background:#fff;border-radius:50%;transition:transform .18s}.toggle-checkbox:checked~.toggle-slider::after{transform:translateX(1.2rem)}
/* A compact inline form (group selector, OFX import) that sits before the table without a card. */
.inline-form{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1rem}
.inline-status-form{margin:0}.member-status-select{width:auto;padding:.3rem .5rem;font-size:.85rem;border:1px solid var(--line);border-radius:.4rem;background:var(--surface);color:var(--ink);cursor:pointer}
/* Grouped nav items in the sidebar (e.g. "Financeiro" parent). */
.nav-group>summary{display:flex;align-items:center;gap:.5rem;border-radius:.4rem;cursor:pointer;list-style:none}.nav-group>summary::-webkit-details-marker{display:none}.nav-group>summary::after{content:"";flex:0 0 auto;order:2;margin-left:auto;width:.4rem;height:.4rem;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);transition:transform .15s}.nav-group>summary .menu-badge{order:3;margin-left:.3rem}.nav-group[open]>summary::after{transform:rotate(-135deg)}.nav-group>summary.nav-icon::before{color:var(--muted)}.nav-group>summary:hover{background:rgba(40,91,77,.07)}.nav-group>a{display:flex;align-items:center;min-height:2.5rem;padding-left:3.5rem}
/* The phone's dropdown menu: a group's heading lines up with the other items (same padding and weight), its items one step in. */
@media(max-width:63.99rem){.app-menu .nav-group>summary{padding:.7rem .85rem;border-radius:.45rem;color:var(--ink);font-weight:700}.app-menu .nav-group>a{padding-left:1.85rem}}
[data-pricing="all"] #pricing-per-product,[data-pricing="per_product"] #pricing-all{display:none}
.pricing-mode-options{display:flex;gap:1.5rem;flex-wrap:wrap}
.product-table-toolbar{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}
.product-table-toolbar input{flex:1}
.product-table-toolbar .table-page-info{white-space:nowrap;font-size:.875rem;color:var(--muted)}
.product-select-table{table-layout:fixed;width:100%;border-collapse:collapse}
.product-select-table .col-cb{width:2.5rem}
.product-select-table .col-price{width:10rem}
.product-select-table .col-qty{width:10rem}
.product-select-table th,.product-select-table td{padding:.4rem .5rem;overflow:hidden}
.product-select-table td{text-overflow:ellipsis;white-space:nowrap;border-bottom:0;border-top:1px solid var(--line)}
.product-select-table tbody tr:first-child td{border-top:0}
.product-select-table thead th{border-bottom:1px solid var(--line);font-weight:600;text-align:left}
.product-select-table .col-cb-th,.product-select-table td:first-child{text-align:center}
.product-select-table td input{width:100%}
.button-link{background:none;border:none;padding:0;color:var(--brand);cursor:pointer;text-decoration:underline;font:inherit}.button-link:hover{background:none;color:var(--brand-dark)}
.table-all-banner{padding:.4rem .75rem;background:var(--surface-alt,#edf2f0);border-radius:.4rem;font-size:.875rem;margin-bottom:.5rem}.info-tip-btn{display:inline-flex;align-items:center;justify-content:center;width:1.6rem;height:1.6rem;padding:0;border:1px solid var(--line);border-radius:.4rem;background:var(--surface);color:var(--brand);cursor:pointer;vertical-align:middle;margin-left:.35rem;flex-shrink:0}.info-tip-btn svg{width:.85rem;height:.85rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.info-tip-btn:hover{background:rgba(40,91,77,.08)}.has-clipped{cursor:pointer}.group-templates{display:grid;gap:.5rem;margin-bottom:.25rem}.group-templates-label{margin:0;font-size:.8rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.group-templates-options{display:flex;flex-wrap:wrap;gap:.4rem}.group-template-option{padding:.35rem .75rem;border:1px solid var(--line);border-radius:999px;background:var(--bg);color:var(--muted);font:inherit;font-size:.82rem;font-weight:700;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.group-template-option:hover{border-color:var(--brand);color:var(--brand)}.group-template-option.is-active{border-color:var(--brand);background:var(--brand);color:#fff}.member-search-group{display:grid;gap:.5rem}.member-select{height:10rem;padding:.4rem;overflow-y:auto}
/* The order detail's badges beside a value (payment, commission): smaller than a list's. */
.order-detail-badge .status-badge{font-size:.72rem;padding:.15rem .5rem}
/* Recebimentos: the situation stays left-aligned, also when it is the last column (Recebidas, without actions). */
.receivables-table td.receivable-situation{text-align:left}
/* The row a link pointed at (#obligation-…, #commission-…), lightly marked. */
.orders-table tr:target td{background:rgba(40,91,77,.08)}
/* A payment situation's badge and, beside it, the "?" that explains it (_payment_situation.html). */
.situation-cell{display:inline-flex;align-items:center;gap:.35rem;max-width:100%;min-width:0}
.situation-cell .status-badge{min-width:0;overflow:hidden;text-overflow:ellipsis}
.situation-cell .situation-help{flex:none;width:1.4rem;height:1.4rem;font-size:.85rem;font-weight:700}
.situation-action{display:inline-block;margin-left:.35rem;vertical-align:middle}
/* The order page's payment, set apart by a thin line above: the way and the situation, each on one line. */
.order-payment-card{display:grid;gap:.5rem;padding:.75rem 0 0;border-top:1px solid var(--line)}
.order-payment-card h3{margin:0;color:var(--muted);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase}
.order-payment-card .status-badge{white-space:nowrap}
.button[aria-disabled="true"]{opacity:.55;cursor:not-allowed}
/* The order pipeline's actions dialog: one action per line, its label on the left and its round button on the right. */
.order-action-list{display:grid;gap:.5rem}
.order-action-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.order-action-row form{display:contents}
.char-count{margin-left:.35rem;font-variant-numeric:tabular-nums}.char-count.is-full{color:var(--danger);font-weight:700}
.is-collapsed-hidden{display:none!important}.account-section.is-collapsed .account-section-header{margin-bottom:0}.card-toggle{flex:0 0 auto;display:inline-grid;place-items:center;width:2rem;height:2rem;padding:0;border-radius:.45rem;background:transparent}.card-toggle:hover{background:rgba(40,91,77,.08)}.card-toggle-chevron{width:.55rem;height:.55rem;margin-bottom:.25rem;border-right:2.5px solid var(--brand);border-bottom:2.5px solid var(--brand);transform:rotate(45deg);transition:transform .15s}.card-toggle[aria-expanded="true"] .card-toggle-chevron{margin:.25rem 0 0;transform:rotate(-135deg)}
.account-section-header:has(.card-toggle){align-items:center}.account-section-header:has(.card-toggle) h3{margin-right:auto}
.account-section.is-collapsed{cursor:pointer}.account-section.is-collapsed:hover{border-color:rgba(40,91,77,.35)}
.account-new-unit{display:inline-block;margin-top:.75rem;font-weight:700}.account-new-unit:hover{background:none;text-decoration:underline}
.rows-scroll-card .receivables-table col.col-receivable-situation{width:18rem}

/* Pagamento da plataforma: the month, four amounts, the due date, the situation and the actions fit the card without a
   horizontal scroll: narrower amounts and cell padding, the month taking the rest. */@media(min-width:36.01rem){.data-workspace #platform-settlements th,.data-workspace #platform-settlements td{padding:.9rem .6rem}.rows-scroll-card #platform-settlements col.col-money{width:7.5rem}#platform-settlements td:first-child{overflow:hidden;text-overflow:ellipsis}}
/* Finalizados has seven columns: without room for them all, what matters least leaves first, so the customer and the
   amount stay (the row's dialog has the rest): the products, then the date. */
@media(min-width:36.01rem) and (max-width:56rem){
  #settlement-orders.settlement-fit col.col-order-items,#settlement-orders.settlement-fit th:has([data-sort-key="units"]),#settlement-orders.settlement-fit td.order-items-cell{display:none}
}
@media(min-width:36.01rem) and (max-width:44rem){
  .rows-scroll-card col.col-date{width:13%}.rows-scroll-card col.col-mid{width:14%}
  .rows-scroll-card .resale-orders-table col:nth-child(1){width:14%}.rows-scroll-card .resale-orders-table col:nth-child(2){width:16%}.rows-scroll-card .resale-orders-table col:nth-child(3){width:11%}
  #settlement-orders.settlement-fit col.col-order-date,#settlement-orders.settlement-fit th:has([data-sort-key="date"]),#settlement-orders.settlement-fit td:first-child{display:none}
}
/* Their widths as shares too where they no longer fit (see the list pattern above). */
@media(min-width:36.01rem) and (max-width:80rem){
  .rows-scroll-card .receivables-table col.col-receivable-situation{width:32%}
}
/* Pagamento da plataforma, without room for its four amounts: the month and its total stay whole; what it is made of
   (revenue, fee and commission) is in the month's dialog. */
@media(min-width:36.01rem) and (max-width:80rem){
  #platform-settlements col:nth-child(-n+4):nth-child(n+2),#platform-settlements :is(th,td):nth-child(-n+4):nth-child(n+2){display:none}
  .rows-scroll-card #platform-settlements col.col-money{width:7.5rem}
  .rows-scroll-card #platform-settlements col.col-day{width:6.5rem}
  .rows-scroll-card #platform-settlements col.col-status{width:8rem}
  #platform-settlements tbody td[colspan]{display:table-cell}
}
@media(min-width:36.01rem) and (max-width:44rem){
  .rows-scroll-card #platform-settlements col.col-status{width:6rem}
  .rows-scroll-card #platform-settlements col.col-day{width:6rem}
}
/* A tab's "?" (modal.js explains without following the tab). */.tab-help{display:inline-grid;place-items:center;width:1.35rem;height:1.35rem;margin-left:.45rem;border:1.5px solid currentColor;border-radius:999px;font-size:.78rem;font-weight:800;line-height:1;opacity:.85;cursor:help}.tab-help:hover,.tab-help:focus-visible{opacity:1}
.table-summary-indicator-end{margin-left:auto;justify-items:end;text-align:right}@media(max-width:36rem){.table-summary-indicator-end{grid-column:2}}
/* A person's window on the order page (WhatsApp, document, address): one block per line, apart, divided by a rule. */
.party-modal-body{display:grid;margin-top:.5rem}.party-modal-body>*{padding:.9rem 0}.party-modal-body>*+*{border-top:1px solid var(--line)}.party-modal-body>:last-child{padding-bottom:0}.party-modal-body .pii-row{gap:1rem;margin-bottom:.35rem}
.order-page-facts .fact-person{display:flex;align-items:center;justify-content:flex-end;gap:.75rem}.party-value{font-weight:600}.party-value-detail{font-size:.85rem}
.payment-origin-title{margin:0 0 .75rem;font-size:1.05rem}

/* Histórico da disputa (_dispute_history.html): each step on a line, its moment on the left. */
.dispute-history-card{margin-top:1.25rem;padding:1rem 1.25rem}
.dispute-history{list-style:none;margin:.5rem 0 0;padding:0;display:grid;gap:.4rem}
.dispute-history li{display:flex;flex-wrap:wrap;gap:.25rem .75rem}
.dispute-history time{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}

.order-payment-actions [data-commission-inform][hidden]{display:none}
/* "Label: value" lines (register_confirm.html): each pair on one line, the value wrapping when long. */
.label-value-rows{display:grid;gap:.5rem;margin:0}.label-value-rows div{display:flex;flex-wrap:wrap;gap:.35rem}.label-value-rows dt{font-weight:700}.label-value-rows dt::after{content:":"}.label-value-rows dd{margin:0;overflow-wrap:anywhere}
/* A card reached by its #anchor (Configurações) stops below the sticky app bar (4.5rem tall), not under it. */
.account-section,.account-group{scroll-margin-top:5.5rem}
.share-code-notice{margin-bottom:1.5rem}
/* Showcase: the ways the store takes payment above the fixed total bar. */
.showcase-empty{min-height:calc(100dvh - 5.5rem);display:flex;flex-direction:column}.showcase-empty-body{flex:1 1 auto;display:grid;place-items:center}.showcase-empty .empty{margin:0;padding:1.5rem 2rem;text-align:center}
.showcase-payments{margin:0 0 1rem}.showcase-grid{padding-bottom:1rem}form[data-showcase-form]{padding-bottom:9rem}.error-notice{background:rgba(163,41,41,.1);color:var(--danger);margin-bottom:1rem}
.referral-link-options:has(> :only-child){grid-template-columns:1fr}
.referral-code-body{padding:1.25rem;border-top:1px solid var(--line)}
.buy-target{font-size:.9rem;color:var(--muted)}.buy-target .link-button{font:inherit;text-decoration:underline;cursor:pointer}
/* "Complete seus dados" on the order page: the title, the hint and the buttons stay; only the fields scroll. */
.order-data-modal{overflow:hidden}.order-data-modal .modal-panel{display:flex;flex-direction:column;max-height:calc(100dvh - 2rem);overflow:hidden}.order-data-modal #order-data-form{display:flex;flex-direction:column;flex:1;min-height:0}.order-data-fields{flex:1;min-height:0;overflow-y:auto;padding:.25rem .25rem .25rem 0}.order-data-modal .modal-footer{flex:0 0 auto}
.store-name-branch:first-child::before{content:none}
.store-sort{display:flex;flex-wrap:wrap;gap:.75rem 1rem;margin-bottom:1rem}.store-sort-field{display:grid;gap:.25rem;font-size:.85rem;font-weight:700;color:var(--muted)}.store-sort-field{flex:1 1 9rem}.store-sort-field select{min-width:0;width:100%}.store-distance{white-space:nowrap}
.reputation-table caption{caption-side:top;text-align:left;font-size:.85rem;padding-bottom:.25rem}.reputation-table td small{display:inline;margin-left:.35rem}
.reputation-help{width:1.3rem;height:1.3rem;margin-left:.3rem;font-size:.8rem;font-weight:700;vertical-align:middle}
@keyframes row-changed{from{background:rgba(40,91,77,.18)}to{background:transparent}}tr.row-changed>td{animation:row-changed 2.5s ease-out}

/* Mobile fine-tuning (aesthetic only). */
@media(max-width:36rem){
/* A section title with its back button: the button goes under the title, which breaks only between words. */
.section-nav{flex-wrap:wrap;row-gap:.35rem}.section-nav-title{flex:1 1 100%;overflow-wrap:break-word}
/* An order's items: one block per item (name on top; quantity, unit and subtotal labelled below) instead of fixed columns. */
.order-page{grid-template-columns:minmax(0,1fr)}
.order-items-table,.order-items-table tbody,.order-items-table tfoot{display:block;width:100%}
.order-items-table colgroup,.order-items-table thead{display:none}
.order-items-table tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem .75rem;padding:.75rem 0;border-bottom:1px solid var(--line)}
.order-items-table td,.order-items-table th{padding:0;border:0}
.order-items-table tbody td:first-child{grid-column:1/-1;font-weight:700}
.order-items-table tbody td:nth-child(n+2){text-align:left}
.order-items-table tbody td:last-child{text-align:right}
.order-items-table tfoot tr{grid-template-columns:minmax(0,1fr) auto;border-bottom:0}
.order-items-table tfoot th,.order-items-table tfoot td{border-top:0}
.order-items-table tbody td:nth-child(2),.order-items-table tfoot td:nth-child(2){display:block}
/* Status tabs: on a phone they wrap into rows, each as wide as its label, instead of squeezing every label into an equal column. */
.status-toggle{display:flex;flex-wrap:wrap;gap:.2rem}.status-toggle-option{flex:1 1 auto;white-space:nowrap}.status-toggle .status-toggle-option{min-height:2.75rem;padding-block:.5rem}
/* Store directory: the two sort fields share the row evenly; every card's details take its full width, so they line up from card to card. */
.store-sort-field{flex:1 1 9rem}.store-sort-field select{min-width:0;width:100%}.stock-pricing{display:grid;gap:.3rem;width:100%}.stock-pricing select{width:100%;min-width:0}
.app-nav-start .app-nav-title{overflow-wrap:anywhere;min-width:0}
/* Configurações: a collapsible card's header keeps its badge and arrow on the right, the title wrapping beside them. */
.account-section-header:has(.card-toggle){display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;column-gap:.5rem}.account-section-header:has(.card-toggle) h3{margin-right:0}
/* A search box with actions beside it: the actions go under it and wrap, the fields growing to fill the row. */
.table-search:has(.table-search-actions){grid-template-columns:minmax(0,1fr)}.table-search-actions{flex-wrap:wrap;align-items:center}.table-search-actions>*{flex:1 1 auto}.table-search-actions input,.table-search-actions select{min-width:0}.store-card-details{width:100%;justify-self:stretch;align-self:stretch}.order-items-table tfoot td{text-align:right}
}

/* Card lists: on a phone every data table (data-table.js) is a list of cards, one per row, under its search box. The
   first cell is the card's title; the others show their column's name (data-label, filled from the header by
   data-table.js); the row's actions close the card. The header stays as a bar of sort buttons. ":not(#_)" outranks the
   older per-table phone rules, some of which hid columns. */
@media(max-width:36rem){
.table-wrap:has(>table[data-table]:not(#_)){overflow:visible}
table[data-table]:not(#_),table[data-table]:not(#_)>tbody{display:block;width:100%}
table[data-table]:not(#_)>colgroup{display:none}
table[data-table]:not(#_)>thead{display:block;margin-bottom:.65rem}
table[data-table]:not(#_)>thead>tr{display:flex;flex-wrap:wrap;gap:.35rem;padding:0;border:0;height:auto}
table[data-table]:not(#_)>thead>tr>th{display:none;height:auto;padding:0;border:0}
table[data-table]:not(#_)>thead>tr>th:has(.table-sort){display:block}
table[data-table]:not(#_) .table-sort{padding:.3rem .65rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-size:.78rem}
table[data-table]:not(#_)>tbody>tr[data-row]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem 1rem;align-items:start;height:auto;margin:0 0 .65rem;padding:.85rem 1rem;border:1px solid var(--line);border-radius:.75rem;background:var(--surface);box-shadow:0 4px 14px rgba(23,32,51,.05)}
table[data-table]:not(#_)>tbody>tr[data-row][hidden]{display:none}
table[data-table]:not(#_)>tbody>tr[data-row]>td{display:block;grid-row:auto;grid-column:auto;order:0;align-self:start;justify-self:stretch;width:auto;min-width:0;height:auto;padding:0;border:0;text-align:left;white-space:normal;overflow:visible}
table[data-table]:not(#_)>tbody>tr[data-row]>td:first-child{grid-column:1/-1;font-weight:700}
table[data-table]:not(#_)>tbody>tr[data-row]>td[data-label]::before{content:attr(data-label);display:block;margin:0 0 .15rem;text-align:left;color:var(--muted);font-size:.68rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
table[data-table]:not(#_)>tbody>tr[data-row]>td:first-child::before{display:none}
table[data-table]:not(#_)>tbody>tr[data-row]>td:empty{display:none}
table[data-table]:not(#_)>tbody>tr[data-row]>td{overflow-wrap:anywhere}table[data-table]:not(#_)>tbody>tr[data-row]>td :is(strong,span,small,a):not(.status-badge,.icon-button,.button,.menu-badge){white-space:normal;overflow-wrap:anywhere;max-width:100%}table[data-table]:not(#_)>tbody>tr[data-row]>td .cell-stack{flex-wrap:wrap;min-width:0}
table[data-table]:not(#_)>tbody>tr[data-row]>td:is(:has(.order-row-actions),:last-child:has(.icon-button,button,.button):not(:has(>strong,>.cell-stack,>.person-contact))){grid-column:1/-1;display:flex;flex-wrap:wrap;gap:.4rem;justify-content:flex-end;padding-top:.6rem;border-top:1px solid var(--line)}
table[data-table]:not(#_)>tbody>tr[data-row]>td:is(:has(.order-row-actions),:last-child:has(.icon-button,button,.button):not(:has(>strong,>.cell-stack,>.person-contact)))::before{display:none}
table[data-table]:not(#_)>tbody>tr[data-table-empty]{display:block}table[data-table]:not(#_)>tbody>tr[data-table-empty][hidden]{display:none}
table[data-table]:not(#_)>tbody>tr[data-table-empty]>td{display:block;padding:1.25rem 0;border:0;text-align:center}
table[data-table]:not(#_)>tbody>tr:not([data-row]):not([data-table-empty]){display:block}table[data-table]:not(#_)>tbody>tr:not([data-row]):not([data-table-empty])>td{display:block;padding:1.25rem 0;border:0;text-align:center}
}

/* Buyer group form on phones: each product a small card (choice and name, then the prices and the minimum). */
.checkbox-label input{flex:none}
@media(max-width:36rem){
.product-table-toolbar{flex-wrap:wrap}.product-table-toolbar>input{flex:1 1 100%;width:100%}
.product-select-table,.product-select-table tbody{display:block}.product-select-table colgroup{display:none}
.product-select-table thead tr{display:flex;align-items:center;gap:.5rem}.product-select-table thead th:nth-child(n+3){display:none}.product-select-table thead th{border:0}
.product-select-table tbody tr{display:grid;grid-template-columns:2rem 1fr 1fr;column-gap:.5rem;row-gap:.25rem;padding:.6rem 0;border-top:1px solid var(--line)}
.product-select-table td{border:0;padding:0;white-space:normal}
.product-select-table td:nth-child(1){grid-column:1;grid-row:1}.product-select-table td:nth-child(2){grid-column:2/4;grid-row:1;font-weight:600;text-align:left}
.product-select-table td:nth-child(3){grid-column:2;grid-row:2;align-self:start}.product-select-table td:nth-child(4){grid-column:3;grid-row:2}.product-select-table td:nth-child(5){grid-column:2/4;grid-row:3}
.product-select-table td:nth-child(n+3)::before{display:block;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.product-select-table td:nth-child(3)::before{content:"Padrão"}.product-select-table td:nth-child(4)::before{content:"Preço do grupo"}.product-select-table td:nth-child(5)::before{content:"Qtd. mínima"}
}

/* A list card holding only its empty message keeps the lists' compact padding (as rows-scroll-card). */
.card.orders-list:has(>.empty:only-child){padding-block:1rem}

/* File fields (_file_picker.html): a dashed drop area with a button and the file's name; the browser's input covers it,
   invisible, so a click or a dropped file anywhere reaches it and "required" still works. */
.file-picker{position:relative;display:flex;align-items:center;gap:.75rem;min-height:3.25rem;padding:.55rem .7rem;border:1.5px dashed #bfc4ca;border-radius:.55rem;background:var(--bg);font-weight:400;cursor:pointer;transition:border-color .15s,background .15s}
.file-picker:hover{border-color:var(--brand);background:rgba(40,91,77,.05)}
.file-picker:focus-within{outline:3px solid rgba(40,91,77,.22);border-color:var(--brand)}
.file-picker.has-file{border-style:solid;border-color:var(--brand);background:var(--surface)}
.file-picker.is-invalid{border-color:var(--danger)}
.file-picker-input{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;opacity:0;cursor:pointer}
.file-picker-button{flex:0 0 auto;padding:.45rem .8rem;border:1px solid rgba(40,91,77,.28);border-radius:.45rem;background:rgba(40,91,77,.08);color:var(--brand);font-size:.88rem;font-weight:800;white-space:nowrap}
.file-picker:hover .file-picker-button{background:rgba(40,91,77,.16)}
.file-picker-name{min-width:0;overflow:hidden;color:var(--muted);font-size:.92rem;text-overflow:ellipsis;white-space:nowrap}
.file-picker.has-file .file-picker-name{color:var(--ink);font-weight:600}
.file-picker-preview{flex:0 0 auto;display:grid;place-items:center;width:2.4rem;height:2.4rem;overflow:hidden;border:1px solid var(--line);border-radius:999px;background:#fff}
.file-picker-preview[hidden]{display:none}
.file-picker-preview img{width:100%;height:100%;object-fit:cover}
.file-picker{min-width:0}.file-picker-name{flex:1 1 0;width:0}
.file-picker-name{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal;overflow-wrap:anywhere;line-height:1.3}
@media(max-width:36rem){.file-picker{flex-wrap:wrap;row-gap:.5rem}.file-picker-name{flex:1 1 0;order:1}.file-picker-preview{order:0}.file-picker-button{order:2;flex:1 1 100%;text-align:center}}
/* Configurações → the unit's Logo card: the current logo beside the field to change it (stacked on phones). */
.account-logo-form{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:1.25rem}
.account-logo-current{display:grid;place-items:center;width:7rem;height:7rem;padding:.4rem;border:1px solid var(--line);border-radius:var(--radius);background:#fff}
.account-logo-current .account-logo-image{width:100%;height:100%;object-fit:contain}
.account-logo-current .store-initials{display:grid;place-items:center;border-radius:999px;background:var(--brand);color:#fff;font-weight:800;font-size:1.6rem}
.account-logo-save{justify-self:start}
@media(max-width:36rem){.account-logo-form{grid-template-columns:1fr}.account-logo-current{justify-self:center}.account-logo-save{justify-self:stretch}}
/* Product form → Fotos: the current photos (the first one the cover), each with "Remover", then the field for new ones. */
.product-photos{display:grid;gap:.6rem;margin:0;padding:0;border:0;min-width:0}
.product-photos legend{padding:0;margin-bottom:.4rem;font-weight:700}
.product-photo-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(6.5rem,1fr));gap:.6rem;margin:0;padding:0;list-style:none}
.product-photo-list li{position:relative;display:grid;gap:.3rem}
.product-photo-list img{width:100%;aspect-ratio:1;object-fit:cover;border:1px solid var(--line);border-radius:.55rem;background:#fff}
.product-photo-cover{position:absolute;top:.35rem;left:.35rem;padding:.1rem .45rem;border-radius:999px;background:var(--brand);color:#fff;font-size:.7rem;font-weight:800}
.product-photo-remove{display:flex;align-items:center;gap:.35rem;font-size:.82rem;font-weight:600;color:var(--danger)}
.product-photo-remove input{width:auto}
.file-picker-previews{display:flex;gap:.3rem;width:auto;height:auto;border:0;border-radius:0;background:none;overflow:visible}
.file-picker-previews img{width:2.4rem;height:2.4rem;object-fit:cover;border:1px solid var(--line);border-radius:.4rem;background:#fff}
@media(max-width:36rem){.file-picker-previews{order:0;flex:1 1 100%;flex-wrap:wrap}}
.product-visual .product-upload{width:100%;height:100%;object-fit:cover;border-radius:calc(var(--radius) - .3rem);filter:none}
.empty .link-button{font:inherit;text-decoration:underline;cursor:pointer}.empty .link-button:hover{background:none;color:var(--brand-dark)}
form[data-dirty-form]{padding-bottom:6rem}.dirty-bar[hidden]{display:none}.receipt-summary-bar>.dirty-bar-discard{flex:0 0 auto;align-self:flex-end;padding:.9rem 1.25rem max(.9rem,env(safe-area-inset-bottom));border-radius:0;background:transparent;color:var(--brand)}.receipt-summary-bar>.dirty-bar-discard:hover{background:rgba(40,91,77,.06)}.permission-row.is-changed{background:rgba(201,155,82,.14);border-radius:.45rem;box-shadow:inset 3px 0 0 var(--accent);padding-inline:.6rem}
.member-groups-badge{max-width:16rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Product photos are square (1:1), whole (contain, never cropped), on the neutral backdrop: the format of mobile catalogs, the same in cards and in the list. */.product-visual,.product-grid[data-layout="cards"] .product-visual{height:auto;aspect-ratio:1}.product-grid[data-layout="list"] .product-visual{height:auto;width:100%;aspect-ratio:1}.product-visual .product-upload{object-fit:contain;border-radius:calc(var(--radius) - .4rem)}
.product-visual:has(>.product-upload){padding-block:0}
/* A PIX that can no longer be made (_pix_unavailable.html): the notice and a reload; its dialog's "Paguei!" goes away. */
.pix-unavailable{justify-items:center;text-align:center}.pix-unavailable .notice{margin:0}.modal:has(.pix-unavailable) .order-payment-actions{display:none}
/* Mobile list pages (.data-workspace), after Material's scrollable tabs and the mobile card list: tabs and sort chips in one
   row each that scrolls sideways (the edge fades while more is hidden, data-table.js), little nesting so the content has
   the width, indicators that never overlap and compact rows. */
@media(max-width:36rem){
  .shell:has(.data-workspace){width:calc(100% - 1.5rem)}
  .section-nav{display:flex;flex-wrap:nowrap;align-items:center;gap:.25rem;min-width:0}
  .section-nav-title{min-width:0;font-size:1.15rem;line-height:1.2}
  .card.data-workspace{padding:.75rem}
  .data-workspace>.table-wrap{min-width:0;max-width:100%}
  .data-workspace .status-toggle,.data-workspace table[data-table]:not(#_)>thead>tr{display:flex;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scroll-padding-inline:.5rem;scrollbar-width:none}
  table[data-table]:not(#_)>tbody>tr[data-row] .status-badge{max-width:100%;white-space:normal;text-align:left}
  .data-workspace .status-toggle::-webkit-scrollbar,.data-workspace thead tr::-webkit-scrollbar{display:none}
  .data-workspace :is(.status-toggle,thead tr).fade-end{mask-image:linear-gradient(to right,#000 calc(100% - 2rem),transparent)}
  .data-workspace :is(.status-toggle,thead tr).fade-start{mask-image:linear-gradient(to right,transparent,#000 2rem)}
  .data-workspace :is(.status-toggle,thead tr).fade-start.fade-end{mask-image:linear-gradient(to right,transparent,#000 2rem,#000 calc(100% - 2rem),transparent)}
  .data-workspace .status-toggle .status-toggle-option{flex:1 0 auto;flex-direction:row;gap:.35rem;min-height:2.5rem;padding:.45rem .75rem;font-size:.85rem;white-space:nowrap;scroll-snap-align:start}
  .data-workspace .status-toggle-option span{min-width:1.3rem;height:1.3rem;font-size:.72rem}
  .data-workspace table[data-table]:not(#_)>thead>tr{gap:.4rem;padding:0 0 .5rem}
  .data-workspace thead th{flex:0 0 auto;scroll-snap-align:start}
  .data-workspace thead .table-sort{min-height:2.25rem;padding:.3rem .7rem;font-size:.82rem;white-space:nowrap}
  .data-workspace .table-search input{font-size:1rem}
  .data-workspace .table-summary-indicators{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem .75rem}
  .data-workspace .table-date-filter .table-summary-indicators{padding:0}
  .data-workspace .table-date-filter{gap:.75rem;padding:.75rem}
  .data-workspace .table-summary-indicator small{font-size:.72rem}
  .data-workspace .table-summary-indicator strong{font-size:clamp(1rem,5vw,1.25rem);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .data-workspace .table-date-range{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;grid-column:1/-1}
  .data-workspace .table-date-range input{min-width:0;font-size:.9rem}
}
/* The order pipeline on phones: each order a compact card, the customer and the total on the first line, the date and
   the units on the second, then the situations (each with its column's name) and the actions at the end. */
@media(max-width:36rem){
  .section-nav{justify-content:flex-start}.section-nav-title{flex:0 1 auto}
  #settlement-orders:not(#_)>tbody>tr[data-row]{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .6rem;padding:.75rem .85rem}
  #settlement-orders:not(#_)>tbody>tr[data-row]>td{order:5;flex:0 0 auto;min-width:0;padding:0;border:0;text-align:left}
  #settlement-orders:not(#_)>tbody>tr[data-row]>td::before{display:none}
  #settlement-orders:not(#_)>tbody>tr[data-row]>td[data-label="Cliente"]{order:1;flex:1 1 60%;font-size:1rem}
  #settlement-orders:not(#_)>tbody>tr[data-row]>td[data-label="Total"]{order:2;margin-left:auto;font-weight:800;text-align:right}
  #settlement-orders:not(#_)>tbody>tr[data-row]>td[data-label="Data"]{order:3;flex:1 1 60%;color:var(--muted);font-size:.85rem}
  #settlement-orders:not(#_)>tbody>tr[data-row]>td[data-label="Data"] .cell-stack{display:flex;flex-direction:row;align-items:baseline;gap:.35rem}
  #settlement-orders:not(#_)>tbody>tr[data-row]>td[data-label="Data"] small{font-size:inherit;vertical-align:baseline}
  #settlement-orders:not(#_)>tbody>tr[data-row]>td[data-label="Produtos"]{order:4;margin-left:auto;color:var(--muted);font-size:.85rem;text-align:right}
  #settlement-orders:not(#_)>tbody>tr[data-row]>td[data-label="Unidade"]{flex:1 1 100%;color:var(--muted);font-size:.85rem}
  #settlement-orders:not(#_)>tbody>tr[data-row]>td:is([data-label="Loja"],[data-label="Comissão"],[data-label="Situação"],[data-label="Vencimento"]){display:inline-flex;align-items:center;gap:.3rem}
  #settlement-orders:not(#_)>tbody>tr[data-row]>td:is([data-label="Loja"],[data-label="Comissão"],[data-label="Situação"],[data-label="Vencimento"])::before{display:inline;margin:0;font-size:.68rem}
  #settlement-orders:not(#_)>tbody>tr[data-row]>td[data-label="Ações"]{order:6;margin-left:auto}
  #settlement-orders:not(#_)>tbody>tr[data-row]>td[data-label="Vencimento"]{font-size:.85rem}
}
/* The page's title beside the logo on phones, as a native top bar: a "back" link (.nav-back) turns into a round arrow
   before the title (its accessible name keeps the destination); any other action drops below when it does not fit;
   the title breaks only between words, never letter by letter. */
@media(max-width:36rem){
  .section-nav{flex-wrap:wrap;row-gap:.35rem}
  .shell{width:calc(100% - 1.5rem)}
  .app-nav .app-nav-start>.section-nav{flex:1 1 auto;min-width:0}
  .app-nav .section-nav:not(:has(.section-nav-action)){flex-wrap:nowrap}
  .app-nav .section-nav:not(:has(.section-nav-action)) .section-nav-title{min-width:0}
  .app-nav .section-nav .section-nav-title{flex:1 1 0;min-width:min(6.5rem,100%);overflow-wrap:normal;word-break:normal}
  table[data-table]:not(#_)>tbody>tr[data-row]>td .money-input{grid-template-columns:auto minmax(0,1fr);max-width:100%;min-width:0}
  table[data-table]:not(#_)>tbody>tr[data-row]>td .money-input>input{width:100%;min-width:0}
  table[data-table]:not(#_)>tbody>tr[data-row]>td .money-input>span{white-space:nowrap;overflow-wrap:normal}
  .section-nav-action:has(>.nav-back){order:-1}
  .section-nav-action>.nav-back{display:inline-grid;place-items:center;width:2.25rem;height:2.25rem;padding:0;border-radius:999px;font-size:0;line-height:1}
  /* The arrow drawn (a shaft and a tip), always centred: a font's "←" sits off centre. */
  .section-nav-action>.nav-back{position:relative}
  .section-nav-action>.nav-back::before,.section-nav-action>.nav-back::after{content:"";position:absolute;top:50%;box-sizing:border-box}
  .section-nav-action>.nav-back::before{left:50%;width:.9rem;height:2px;border-radius:2px;background:currentColor;transform:translate(-50%,-50%)}
  .section-nav-action>.nav-back::after{left:calc(50% - .1rem);width:.55rem;height:.55rem;border-left:2px solid currentColor;border-bottom:2px solid currentColor;transform:translate(-50%,-50%) rotate(45deg)}
  /* The order's actions side by side, sharing the row. */
  .order-detail-actions-card{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:.5rem;padding:.75rem}
  .order-detail-actions-card :is(button,.button){width:100%;min-height:2.75rem;padding:.6rem .5rem;white-space:normal;line-height:1.2}
}
/* Phone cards: the row just changed or reached by its anchor lights the whole card, never each cell (grey blocks). */
@keyframes card-changed{from{background:rgba(40,91,77,.12);border-color:rgba(40,91,77,.45)}}
@media(max-width:36rem){
  table[data-table]:not(#_)>tbody>tr[data-row]:target>td,table[data-table]:not(#_)>tbody>tr[data-row].row-changed>td{background:none;animation:none}
  table[data-table]:not(#_)>tbody>tr[data-row]:target{border-color:rgba(40,91,77,.45);background:rgba(40,91,77,.05)}
  table[data-table]:not(#_)>tbody>tr[data-row].row-changed{animation:card-changed 2.5s ease-out}
  /* Pedidos de compra (/orders, /store/purchases), the same compact card as the sales: the store and the total, then the
     date and the units, then the situation and the actions. */
  #resale-orders:not(#_)>tbody>tr[data-row]{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .6rem;padding:.75rem .85rem}
  #resale-orders:not(#_)>tbody>tr[data-row]>td{order:5;flex:0 0 auto;min-width:0;padding:0;border:0;text-align:left}
  #resale-orders:not(#_)>tbody>tr[data-row]>td::before{display:none}
  #resale-orders:not(#_)>tbody>tr[data-row]>td[data-label="Loja"]{order:1;flex:1 1 55%;font-size:1rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  #resale-orders:not(#_)>tbody>tr[data-row]>td[data-label="Total"]{order:2;margin-left:auto;text-align:right}
  #resale-orders:not(#_)>tbody>tr[data-row]>td[data-label="Data"]{order:3;flex:1 1 55%;color:var(--muted);font-size:.85rem;font-weight:400}
  #resale-orders:not(#_)>tbody>tr[data-row]>td[data-label="Produtos"]{order:4;margin-left:auto;color:var(--muted);font-size:.85rem;text-align:right}
  #resale-orders:not(#_)>tbody>tr[data-row]>td[data-label="Situação"] .status-badge{min-width:0}
  #resale-orders:not(#_)>tbody>tr[data-row]>td:is([data-label="Ação"],[data-label="Ações"]){order:6;margin-left:auto}
}
/* The store switch in the menu is one of its groups (nav-group): the store in use is the title, the stores and views to
   switch to are its items, indented and sized as the other groups' items. */
@media(max-width:63.99rem){
  .app-menu .menu-store-group>form>.menu-link{min-height:2.5rem;padding:.5rem .85rem .5rem 1.85rem;font-weight:700}
  .app-menu .menu-store-group>summary .store-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}
/* The sign-in page on every screen: the whole background is the logo image's own (#011412), so the logo blends in;
   the form stays a white card and the text around it turns light. */
html:has(.login-page),body:has(.login-page){background:#011412}
@media(max-width:51.99rem){
  /* The image square, its edges faded into the page (its own vignette never shows as a box). */
  .login-showcase{width:min(72vw,16rem);aspect-ratio:1;min-height:0;margin-inline:auto;border-radius:0;box-shadow:none;background-size:cover;
    mask-image:linear-gradient(to right,transparent,#000 9%,#000 91%,transparent),linear-gradient(to bottom,transparent,#000 9%,#000 91%,transparent);mask-composite:intersect}
  .login-register{color:rgba(255,255,255,.72)}
  .login-register a{color:#9be3a8}
  .login-access .card{box-shadow:0 20px 50px rgba(0,0,0,.35)}
  /* The code's step (login_second_factor.html): its heading sits on the dark background too. */
  .login-second-factor-header{color:#fff;text-align:center}
  .login-access-header.login-second-factor-header p{color:rgba(255,255,255,.72)}
}
/* Sair: the chip's avatar opens it on large screens; below them the chip is the menu's button, so it closes the menu. */
.nav-avatar-button{border:0;padding:0;cursor:pointer;font:inherit}.nav-avatar-button:hover,.nav-avatar-button[aria-expanded="true"]{box-shadow:0 0 0 3px rgba(40,91,77,.25)}
.nav-user-card{cursor:pointer}.nav-user-chevron{align-self:center}.nav-user-card:has(.nav-avatar-button[aria-expanded="true"]) .nav-user-chevron{margin:.15rem 0 0 .1rem;transform:rotate(-135deg)}.nav-user-card [data-menu-panel]{cursor:auto}.account-menu{left:0;right:0;width:auto;min-width:0}.account-menu form{margin:0}
@media(min-width:64rem){.app-sidebar-logout{display:none}}
/* List tables show one line per cell, without subtext: a cell's <small> (secondary text) is not shown. */
.rows-scroll-card td small{display:none!important}
/* Money indicators by the cash they move, for the one looking: in (received or to receive) green, out (paid or to pay)
   red, in dispute yellow. The stock ledger's movements follow the same: in green (stock-in), out red. */
:root{--warning:#a16207}
.flow-in strong{color:var(--success)}.flow-out strong{color:var(--danger)}.flow-disputed strong{color:var(--warning)}
/* Zero calls for no attention: the text's color (flow_brl, data-table.js). */
:is(.flow-in,.flow-out,.flow-disputed) strong:is(.money-zero,:has(>.money-zero)){color:var(--ink)}
/* The order page's Pagamento: one sub-area per payment (the order's, the commission's), with the same rows. */
.order-payment-subtitle{margin:.35rem 0 0;color:var(--ink);font-size:.85rem;font-weight:800}.order-payment-subtitle+.order-page-facts{margin-top:-.15rem}
/* The unexpected-error page (error.html): the request's code, to tell support. */
.error-page{max-width:36rem;margin:4rem auto;padding:0 1rem}.error-page h1{margin:0}.error-code{display:grid;gap:.2rem;padding:.75rem 1rem;border:1px solid var(--line);border-radius:.6rem;background:var(--surface-muted,rgba(0,0,0,.03))}.error-code strong{font-family:ui-monospace,Menlo,monospace;font-size:.95rem;word-break:break-all}
.save-compare{grid-template-columns:repeat(2,minmax(0,1fr))}.save-compare dd{font-size:1.25rem;font-weight:800}
.contact-with-whatsapp{display:inline-flex;align-items:center;gap:.5rem}
/* How long since the data on screen was fetched, and its refresh (templates/_freshness.html, static/js/freshness.js):
   beside the page's title, a running timer that stands out once the data is a few minutes old or a refresh fails. */
.freshness{display:inline-flex;align-items:center;gap:.4rem;margin-left:.5rem;color:var(--muted);font-size:.82rem;font-weight:600;white-space:nowrap}
.freshness-timer{font-variant-numeric:tabular-nums;color:var(--ink,inherit);font-weight:700;min-width:2.6rem}
.freshness .icon-button{width:2rem;height:2rem}
.freshness.is-stale .freshness-timer,.freshness.is-stale .freshness-label{color:#8a5a00}
.freshness.is-failed .freshness-label{color:var(--danger)}
.freshness.is-loading .freshness-refresh svg{animation:freshness-spin .8s linear infinite}
@keyframes freshness-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.freshness.is-loading .freshness-refresh svg{animation:none}}
/* Under the title on smaller screens: beside it, the timer runs into the title and the user's chip. */
@media (max-width:56rem){
  .app-nav .section-nav:has(.freshness){flex-wrap:wrap;row-gap:.1rem}
  .app-nav .section-nav:has(.freshness) .section-nav-title{flex:1 1 100%;min-width:0}
  .freshness{margin-left:0}
  .freshness .icon-button{width:1.6rem;height:1.6rem}
}
/* With the store's logo there is no room for the whole chip too: its avatar and menu stay, as on a phone. */
@media (max-width:42rem){.app-nav:has(.freshness) .nav-user-text{display:none}}
@media (max-width:36rem){.freshness-label{display:none}}
/* The chip's store menu ends with Sair, after a divider (_app_nav.html). */
.store-menu .menu-divider{border:0;border-top:1px solid var(--line);margin:.35rem .5rem}
.store-menu > form{margin:0}
/* Usuários → Acesso (templates/_user_access.html): the refused sign-ins, one per line. */
.user-access{margin:0}.user-access .plain-list{list-style:none;margin:0;padding:0;display:grid;gap:.25rem}
/* Administração → Configurações (platform_settings.html): each card's fields side by side on larger screens. */
.platform-settings .form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:.75rem 1rem;align-items:start}
/* A field's label is a grid: in a row where a neighbour has a longer hint, it would stretch its own input. */
.platform-settings .form-grid>label{align-content:start}
/* Lojas: what each store sells, above its address (STORE_CATEGORIES). */
.store-card-category{margin:0;color:var(--brand);font-size:.78rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
/* The legal documents (legal_document.html): a readable column, tables that scroll on phones. */
.legal-page{max-width:52rem}.legal-text{line-height:1.6}.legal-text h2{margin-top:1.4rem;font-size:1.15rem}.legal-text h3{margin-top:1rem;font-size:1rem}
.legal-text ul,.legal-text ol{padding-left:1.3rem}.legal-text blockquote{margin:.8rem 0;padding:.6rem .9rem;border-left:3px solid var(--brand);background:rgba(40,91,77,.06)}
.legal-table{width:100%;border-collapse:collapse;font-size:.9rem}.legal-table th,.legal-table td{padding:.45rem .5rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.legal-accept a{text-decoration:underline}
/* Configurações → Documentos aceitos: one line per document accepted. */
.legal-acceptance-list{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}
/* The error page's code: its copy button under it, at its own width. */
.error-code .button-small{justify-self:start;margin-top:.35rem}.error-code .notice{margin:.2rem 0 0}
.menu-badge.menu-count{background:rgba(40,91,77,.1);color:var(--brand-dark)}

/* A formal store public page: room for the order footer. */
.public-store{padding-bottom:9rem}
.public-store-header{flex-wrap:wrap}.public-store-header .buy-store{flex-wrap:wrap;min-width:0}.public-store-header .buy-store>div{flex:1 1 10rem;min-width:0}
/* Layout helpers in place of style attributes, which the CSP (style-src 'self') ignores. */
.form-contents{display:contents}.self-start{justify-self:start}.push-right{margin-left:auto}.space-top{margin-top:.75rem}.space-top-sm{margin-top:.5rem}
.icon-button-text{font-weight:700;font-size:.95rem}.status-toggle-inset{padding:.5rem 1rem 0}.error-inset{margin:.5rem 1rem}.text-danger{color:var(--color-danger)}
.info-modal-body{color:var(--ink)}.info-modal-body p{margin-bottom:.75rem}.info-modal-body ul{margin:.5rem 0 1rem;padding-left:1.25rem;display:grid;gap:.35rem}.info-modal-body ul:last-child{margin-bottom:0}
.plain-table{width:100%;border-collapse:collapse;table-layout:fixed}.plain-table-first{width:45%}.plain-table th,.plain-table td{text-align:left;padding:.5rem .6rem;border-bottom:1px solid var(--line)}.plain-table th{border-bottom-width:2px}
/* A label beside its value keeps its word whole: the value wraps instead. */
.order-action-row>span:first-child{flex:none}
#store-debt>h2,#store-debt>.hint{margin:0}
/* The public directory and store pages. */
.public-directory-header{flex-wrap:wrap}.public-directory-header h1{margin:0}.public-directory-header p{margin:.25rem 0 0}.public-directory-intro{flex:1 1 16rem;min-width:0}.public-directory-mark{width:3rem;height:3rem;flex:none}.public-directory-actions{display:flex;flex-wrap:wrap;gap:.5rem}
.public-store-facts{display:grid;gap:.4rem;justify-items:start;margin-bottom:1rem}.public-store-facts p{margin:0}.public-store-facts .store-card-details{width:min(100%,28rem);margin:.25rem 0}
/* The panels' values fit their column up to R$ 1.000.000.000,00 on one line, at the same size whatever the value. */
.dashboard-summary-card{align-content:start}.dashboard-summary>div{container-type:inline-size;min-width:0}.dashboard-summary strong{font-size:clamp(1rem,10.4cqi,1.75rem);font-variant-numeric:tabular-nums}
/* On phones the lists' indicators share the row: each value fits its own column in the same way. */
@media(max-width:36rem){.table-summary-indicators:not(#_){display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.table-summary-indicators:not(#_)>.table-summary-indicator{container-type:inline-size;min-width:0;margin-left:0}.table-summary-indicators:not(#_)>.table-summary-indicator strong{font-size:clamp(.8rem,10.4cqi,1.5rem);white-space:normal;overflow-wrap:anywhere}}
/* The PDV's QR code to sign a customer up. */
.pos-signup-open{width:100%}.pos-signup-qr{display:grid;justify-items:center}.pos-signup-qr svg{display:block;width:100%;max-width:16rem;height:auto}.pos-signup-waiting{display:flex;align-items:center;justify-content:center;gap:.6rem;margin:0;padding-block:.35rem}.pos-signup-waiting::before{content:"";flex:none;width:1.15rem;height:1.15rem;border:.16rem solid var(--line);border-top-color:var(--brand);border-radius:50%;animation:freshness-spin .9s linear infinite}@media(prefers-reduced-motion:reduce){.pos-signup-waiting::before{animation-duration:2.5s}}
.pos-line-error{grid-column:1/-1}
/* The group page's actions: at the row's two ends, the same height; taking the group out of use reads as a link. */
.group-actions{display:flex;align-items:stretch;gap:.75rem}.group-actions form{display:contents}.group-deactivate,.group-deactivate:hover{padding-inline:0;background:none;box-shadow:none;color:var(--muted);text-decoration:underline}.group-deactivate:hover{color:var(--ink)}
/* A group's two tabs start at the same place: the settings keep the measures of the members' list (.rows-scroll-card). */
@media(min-width:48rem){.group-settings.card{padding-block:1rem}.group-settings .status-toggle-option{min-height:2.25rem;padding-block:.4rem}}
/* A new group starts by its kind. */
.group-kinds{display:grid;gap:.75rem}@media(min-width:48rem){.group-kinds{grid-template-columns:repeat(3,minmax(0,1fr))}}.group-kind{display:grid;align-content:start;gap:.35rem;padding:1rem;border:1px solid var(--line);border-radius:.7rem;background:var(--surface);color:var(--ink);text-decoration:none}.group-kind:hover,.group-kind:focus-visible{border-color:var(--brand);background:rgba(40,91,77,.06)}.group-kind strong{font-size:1.05rem}.group-kind-chosen{margin:0}.group-invite-conditions{margin:0;padding-left:1.25rem}
.group-billing{display:grid;gap:.35rem;margin:0;padding:0;border:0}.group-billing legend{padding:0;font-weight:700}.group-invite-contact{display:flex;align-items:center;gap:.6rem;margin:0}
.payment-ways-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.payment-ways-top .hint{margin:0}.payment-ways-help{padding-left:1.1rem}.payment-ways-top button{flex:none}.payment-ways-number{width:9.5rem}.payment-ways-days{width:8rem}.payment-ways-mode{width:11.5rem}.payment-ways th{white-space:nowrap}.payment-ways input{width:100%;min-width:0;padding:.35rem .55rem}.payment-ways td{vertical-align:middle}
@media(max-width:36rem){.payment-ways-top{flex-direction:column}}
.payment-mode{display:inline-flex;border:1px solid var(--line);border-radius:.5rem;overflow:hidden}.payment-mode label{display:block;margin:0;cursor:pointer}.payment-mode input{position:absolute;width:1px;height:1px;opacity:0}.payment-mode span{display:block;padding:.35rem .65rem;font-size:.85rem;font-weight:600;color:var(--muted)}.payment-mode input:checked+span{background:var(--brand);color:#fff}.payment-mode input:focus-visible+span{outline:2px solid var(--brand);outline-offset:-2px}.payment-mode input:disabled+span{cursor:not-allowed;opacity:.7}.payment-mode-field{display:grid;gap:.35rem;margin:0;padding:0;border:0}
.receivable-reverse{margin-top:1rem}
/* A tab that holds what is being searched (data-table.js): round and loud beside its counter. */
.status-toggle-option .tab-match{display:inline-grid;place-items:center;min-width:1.45rem;height:1.45rem;margin-left:.35rem;padding:0 .3rem;border-radius:999px;background:#e8590c;color:#fff;font-size:.74rem;font-weight:800;line-height:1;box-shadow:0 0 0 .18rem rgba(232,89,12,.25);vertical-align:middle}
.receivable-reverse [hidden]{display:none}.receivable-reverse select,.receivable-reverse label input{font-weight:400}.order-page-facts dd.fact-items{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;font-weight:600}
/* A dialog's only button takes the whole line. */
.modal-footer.modal-footer-full{display:grid;grid-template-columns:minmax(0,1fr)}.modal-footer-full>*{width:100%}
.pos .pos-term{display:grid;grid-template-columns:minmax(0,1fr);gap:.25rem;margin-top:.5rem}.pos .pos-term[hidden]{display:none}.pos .pos-term input{width:100%;font-size:1.1rem;font-weight:400;line-height:normal}
/* The closing's fields share one fixed height: a select's would otherwise depend on the font's metrics, an input's on its line height. */
.pos .pos-payment select,.pos .pos-delivery select,.pos .pos-term input{box-sizing:border-box;height:3.1rem}
.pos-pricing-options{display:grid;gap:.4rem;max-height:min(55dvh,24rem);margin:0;padding:0 .15rem 0 0;border:0;overflow-y:auto}.pos-pricing-option{display:flex;align-items:center;gap:.65rem;min-width:0;margin:0;padding:.55rem .75rem;border:1px solid var(--line);border-radius:.6rem;cursor:pointer;font-weight:500}.pos-pricing-option:has(input:checked){border-color:var(--brand);background:rgba(40,91,77,.06)}.pos-pricing-option input{flex:none;width:auto;margin:0;accent-color:var(--brand)}.pos-pricing-option span{min-width:0;overflow-wrap:anywhere}
/* The option's conditions: position:fixed without offsets stays right under the option and isn't clipped by the list's scroll. */
.pos-pricing-terms{display:none;position:fixed;z-index:1;margin:.25rem 0 0 2.1rem;padding:.5rem .75rem .5rem 1.6rem;list-style:disc;background:var(--ink);color:#fff;border-radius:.5rem;box-shadow:0 .4rem 1rem rgba(23,32,51,.25);font-size:.85rem;line-height:1.45;pointer-events:none}#pos-pricing-modal:not(.pos-pricing-keys) .pos-pricing-item:hover .pos-pricing-terms,.pos-pricing-keys .pos-pricing-item:has(input:focus) .pos-pricing-terms{display:block}
@media (hover:none){.pos-pricing-item:has(input:checked) .pos-pricing-terms{display:block;position:static;margin:.25rem 0 0;background:transparent;color:var(--muted);box-shadow:none}}
/* A list whose last column is its actions menu: the title sits over the button, at the far right. */
@media(min-width:36.01rem){table:has(>tbody>tr>td:last-child :is(.order-row-actions,.icon-button))>thead>tr>th:last-child,table:has(>tbody>tr>td:last-child :is(.order-row-actions,.icon-button))>tbody>tr[data-row]>td:last-child{text-align:right}}
/* What a checkbox means, marked and unmarked: one block under it, not loose paragraphs. */
.choice-help{display:grid;gap:.2rem;margin:.2rem 0 .9rem;padding-left:1.1rem}.choice-help li{margin:0}
[data-way-remove][hidden]{display:none}
.product-fiscal{display:grid;gap:.7rem;margin:0;padding:.9rem 1rem;border:1px solid var(--line);border-radius:.6rem}.product-fiscal legend{padding:0 .35rem;font-weight:700}
/* The permission boxes, by area: closed until needed. */
.permission-area{border:1px solid rgba(40,91,77,.15);border-radius:12px;padding:.6rem 1rem}.permission-area summary{font-weight:700;cursor:pointer}.permission-area[open] summary{margin-bottom:.35rem}.permission-tags{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.3rem}.permission-tag{padding:.05rem .5rem;border-radius:999px;background:rgba(40,91,77,.08);color:var(--muted);font-size:.75rem;font-weight:700;white-space:nowrap}.permission-tag-critical,.permission-tag-above_limit,.permission-tag-partly{background:#fdf0d5;color:#7a5b12}.permission-tag-personal_data{background:#e4eef8;color:#1f4f7a}@media(max-width:36rem){.permission-row{grid-template-columns:1fr}.permission-tags{justify-content:flex-start}}
.order-items-table .contracted-qty{width:5rem;padding:.35rem .5rem}

/* The public directory's bar (stores_public.html): the logo on its own dark, sticky while the stores scroll; the filters,
   Entrar and Criar conta in one menu. */
.public-directory-bar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:1rem;margin:0 0 1.25rem;padding:.6rem .75rem .6rem 1rem;border-radius:var(--radius);background:#011211;color:#fff;box-shadow:0 8px 24px rgba(1,18,17,.18)}
.public-directory-logo{display:flex;flex:none}.public-directory-logo img{display:block;height:2.4rem;width:auto}
.public-directory-bar h1{margin:0;flex:1;min-width:0;padding-left:1rem;border-left:1px solid rgba(255,255,255,.18);font-size:1.15rem;font-weight:700;color:#fff}
.public-directory-toggle{min-height:2.75rem;padding:.45rem .7rem;border-color:rgba(255,255,255,.25);background:transparent;color:#fff}
.public-directory-toggle[aria-expanded="true"]{background:rgba(255,255,255,.12)}
.public-directory-menu{width:min(24rem,calc(100vw - 2rem));gap:.75rem;padding:1rem;color:var(--ink)}
.public-directory-menu .store-sort{flex-direction:column;flex-wrap:nowrap;margin:0}.public-directory-menu .store-sort-field{flex:none}
.public-directory-menu .public-directory-actions{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding-top:.75rem;border-top:1px solid var(--line)}.public-directory-menu .public-directory-actions>a{flex:none;width:auto;text-align:center}.public-directory-menu .public-directory-actions>a:last-child{margin-left:auto}
@media (max-width:30rem){.public-directory-logo img{height:1.9rem}.public-directory-bar h1{padding-left:.75rem;font-size:1rem}.public-directory-menu{right:0;left:auto}}
.public-directory-bar .public-directory-toggle,.public-directory-bar .public-directory-toggle:hover,.public-directory-bar .public-directory-toggle[aria-expanded="true"]{color:#fff}

/* The directory's store card: the name, then two columns (who the store is | its facts), then the actions side by side. */
.store-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,27rem),1fr))}
.store-card{grid-template-rows:auto 1fr auto;justify-items:stretch;align-content:start;text-align:left;gap:1rem}
.store-card-name{margin:0;padding-right:2.75rem;font-size:1.2rem;line-height:1.25;text-wrap:balance}
.store-card-body{display:grid;grid-template-columns:minmax(0,10rem) minmax(0,1fr);gap:1.25rem;align-items:start}
.store-card-who{display:grid;justify-items:center;gap:.3rem;text-align:center}
.store-card-who p{margin:0}
.store-card-who .store-logo{width:6rem;height:6rem;margin-bottom:.3rem}
.store-card-branch{font-weight:700;color:var(--muted)}
.store-card-place{font-size:.88rem}
.store-card .store-card-details{width:100%;margin:0;align-self:start}
.store-card-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:.5rem}
@media (max-width:30rem){.store-card-body{grid-template-columns:1fr}.store-card-who{grid-template-columns:auto 1fr;justify-items:start;text-align:left;column-gap:.9rem}.store-card-who .store-logo{grid-row:span 3;width:4.5rem;height:4.5rem;margin:0}}
.store-card .store-card-details{align-self:center;font-size:.9rem;gap:.35rem}@media (max-width:30rem){.store-card .store-card-details{font-size:.85rem}}
.store-card{grid-template-rows:auto 1fr}.store-card-side{display:grid;gap:1rem;align-content:space-between;height:100%}.store-card-side .store-card-details{align-self:start}
.store-card-actions{grid-template-columns:repeat(auto-fit,minmax(8.75rem,1fr))}.store-card-actions .button{white-space:nowrap}
/* The store card's facts read first by their values (medium screens up: the phone keeps the card as approved). */
@media (min-width:30.0625rem){
.store-card .store-card-details{list-style:none;padding:0;gap:0}
.store-card .store-card-details li:has(>span+span){align-items:baseline;padding:.42rem 0;border-bottom:1px solid var(--line)}
.store-card .store-card-details li:has(>span+span):last-of-type{border-bottom:0}
.store-card .store-card-details li>span:first-child{font-size:.74rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.store-card .store-card-details li>span+span{font-size:.85rem;color:var(--muted)}
.store-card .store-card-details strong{font-size:1.12rem;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
.store-card .store-card-details .detail-overdue{padding-top:.45rem;font-size:.82rem}
}
/* Medium screens up: no title on top; a logo half again as large, with the store's name where the category was. */
.store-card-who-name{display:none;margin:0;font-size:1.05rem;font-weight:800;line-height:1.25;color:var(--ink);text-wrap:balance}
@media (min-width:30.0625rem){
.store-card-name{display:none}
.store-card{grid-template-rows:1fr}
.store-card-body{grid-template-columns:minmax(0,12rem) minmax(0,1fr)}
.store-card-who .store-logo{width:9rem;height:9rem}
.store-card-who .store-card-who-name{display:block}
.store-card-who .store-card-category{display:none}
.store-card:has(.store-card-share) .store-card-details{margin-top:2.5rem}
/* The actions on one line under both columns, across the card. */
.store-card-body{row-gap:1rem}
.store-card-side{display:contents}
.store-card-who{grid-column:1;grid-row:1}
.store-card-body .store-card-details{grid-column:2;grid-row:1;align-self:start}
.store-card .store-card-details li:has(>span+span){padding:.5rem 0}
.store-card .store-card-details li:has(>span+span):first-child{padding-top:0}
.store-card .store-card-details li>span:first-child{font-size:.76rem;color:var(--muted)}
.store-card .store-card-details li>span+span{font-size:.9rem}
.store-card .store-card-details strong{font-size:1.1rem;line-height:1.2;font-weight:700;letter-spacing:0}
.store-card-body .store-card-actions{grid-column:1/-1;grid-row:2;grid-template-columns:1fr 1fr}
}
/* The card's identification (name, unit, place): on the phone part of the column beside the logo, as before. */
.store-card-id{display:contents}
/* Medium screens up: name, unit and place in one line across the card, under the logo and the facts. */
@media (min-width:30.0625rem){
.store-card-who{display:contents}
.store-card-who .store-logo{grid-column:1;grid-row:1;justify-self:center;margin:0}
.store-card-id{display:block;grid-column:1/-1;grid-row:2;text-align:center}
.store-card-body .store-card-actions{grid-row:3}
.store-card-id .store-card-who-name,.store-card-id .store-card-branch,.store-card-id .store-card-place{display:inline;margin:0;line-height:1.5}
.store-card-id .store-card-who-name{font-size:1rem}
.store-card-id .store-card-branch{font-size:.95rem;font-weight:600;color:var(--muted)}.store-card-id .store-card-place{font-size:.95rem}
.store-card-id .store-card-branch::before,.store-card-id .store-card-place::before{content:" · ";font-weight:400;color:var(--muted)}
}

/* The PDV's feedback (pos.html): a short-lived dialog, its time left as a bar that empties (pos.js closes it). */
.pos-feedback .modal-panel{position:relative;overflow:hidden}
.pos-feedback p{margin:0;font-size:1.05rem}
.pos-feedback.is-error h2{color:var(--danger)}
.pos-feedback-timer{position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--brand);transform-origin:left;animation:pos-feedback-time var(--pos-feedback-ms,5000ms) linear forwards}
.pos-feedback.is-error .pos-feedback-timer{background:var(--danger)}
.pos-feedback.is-held .pos-feedback-timer{animation:none;transform:scaleX(1)}
@keyframes pos-feedback-time{from{transform:scaleX(1)}to{transform:scaleX(0)}}
@media (prefers-reduced-motion:reduce){.pos-feedback-timer{animation:none}}
.order-payment-heading-actions{display:inline-flex;align-items:center;gap:.5rem;flex:none}
#subscription-pay-modal .modal-header{align-items:flex-start}
/* A menu item with a round shortcut in the menu's icon column (Pedidos → Compra: "+" to place an order). */
.nav-group-row{position:relative}
.nav-group-row>a:first-child{display:flex;align-items:center;min-width:0;min-height:2.5rem;padding-left:3.5rem}
.app-menu .nav-group-row>a.nav-shortcut,.nav-group-row>a.nav-shortcut{position:absolute;top:0;bottom:0;left:.6875rem;display:block;width:1.625rem;min-width:0;height:1.625rem;min-height:0;margin:auto 0;padding:0;border-radius:50%;background-color:var(--brand);background-image:linear-gradient(#fff,#fff),linear-gradient(#fff,#fff);background-position:center;background-repeat:no-repeat;background-size:.75rem 2px,2px .75rem}
.app-menu .nav-group-row>a.nav-shortcut:hover,.nav-group-row>a.nav-shortcut:hover{background-color:var(--brand-dark)}
/* The phone's menu has no icon column: the shortcut closes the row. */
@media(max-width:63.99rem){.app-menu .nav-group-row>a:first-child{padding-left:1.85rem}.app-menu .nav-group-row>a.nav-shortcut{left:auto;right:.5rem}}
/* A field whose label carries a "?" (the sign-in code's recovery hint): the label and the button on one line. */
.field-with-tip{display:grid;gap:.4rem}.field-tip-label{display:flex;align-items:center;font-weight:700}.info-tip-question{font-size:.9rem;line-height:1}
/* The second factor's page: the QR code stays on white to be read in a dark theme too, and the recovery codes in two columns. */
.totp-qr{display:block;width:15rem;height:15rem;margin:0 auto;background:#fff;border-radius:.5rem}
.recovery-codes{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.5rem;padding:0;margin:0;list-style:none}
.second-factor-support{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem}.second-factor-support .hint{margin:0;flex:1 1 18rem}
/* Configurações: a collapsible card's header stays on one line, title, badge and arrow; a long badge ("Falta: …")
   ends in an ellipsis, the whole of it on hover (its title). */
.account-section-header:has(.card-toggle){flex-wrap:nowrap}.account-section-header:has(.card-toggle) h3{flex:0 0 auto}
.account-section-header:has(.card-toggle) .account-badge{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:36rem){.account-section-header:has(.card-toggle){grid-template-columns:auto minmax(0,1fr) auto}.account-section-header:has(.card-toggle) .account-badge{justify-self:end;max-width:100%}}
/* Two fields per row (Atendimento e LGPD: support's pair, then the data protection officer's), one on a phone. */
@media(min-width:36rem){.form-grid.form-grid-pairs{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Lojas → a store's registration documents: the partner on the left, the links to each file on the right. */
.store-documents h3{margin:0;font-size:1rem}.document-links{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:flex-end}
