/* Shoopped v10 — Responsive hardening. Cargado DESPUÉS de las capas anteriores. */
:root{--page-gutter:clamp(12px,2.4vw,36px)}
html{max-width:100%;overflow-x:clip;scroll-padding-top:90px}
body{max-width:100%;min-width:0;overflow-x:clip}
*,*::before,*::after{box-sizing:border-box}
img,video,iframe,svg,canvas{max-width:100%}
img{height:auto}
:where(.admin-layout,.admin-shell,.admin-main,.store-content,.panel,.section-heading,.admin-page-heading,.row,.actions,.product,.shop-mini-product,.shop-mini-body,.store-header,.store-nav,.shop-feature-head,.shop-promo,.shop-slide-content)>*{min-width:0}
:where(.panel,.stat,.product,.shop-mini-product,.store-search,.shop-promo,.shop-slide,.shop-feature-head,.admin-main,.admin-shell){min-width:0}
:where(h1,h2,h3,h4,p,td,th,.shop-mini-title,.shop-mini-brand,.shop-mini-pricing,.supplier-item strong,.breadcrumbs,.alert){overflow-wrap:anywhere}
input,select,textarea,button{max-width:100%}
textarea{max-width:100%;min-width:0}
input[type="file"]{min-width:0;width:100%}
:where(.row)>*{min-width:min(100%,180px)}
:where(.scroll){overflow-x:auto;overflow-y:visible;max-width:100%;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.scroll table{width:100%;min-width:700px}
.supplier-table{min-width:1000px!important}
:where(.admin-main,.store-content) table:not(.scroll table){max-width:100%}
.admin-main .panel:has(>table){overflow-x:auto;-webkit-overflow-scrolling:touch}
.admin-main .panel>table{min-width:620px}
.admin-main .panel:has(>table)::-webkit-scrollbar{height:7px}
.admin-main .panel:has(>table)::-webkit-scrollbar-thumb{background:#ced2d8;border-radius:8px}
.ui-admin .admin-page-heading{flex-wrap:wrap}
.ui-admin .admin-topbar{min-width:0}
.ui-admin .breadcrumbs{min-width:0}
.ui-admin .breadcrumbs strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:min(30vw,300px)}
.ui-admin .sidebar{max-width:min(90vw,290px)}
.ui-store .store-header{min-width:0}
.ui-store .store-search{min-width:0}
.ui-store .store-search input{width:100%;min-width:0}
.ui-store .product .pic,.shop-mini-image{overflow:hidden}
.ui-store .product .pic img,.shop-mini-image img{max-width:100%;object-fit:contain}
.ui-store .price,.shop-mini-pricing strong{font-variant-numeric:tabular-nums}
.ui-store .product .info{min-width:0}
.ui-store .product h3,.shop-mini-title{overflow-wrap:anywhere}
.ui-store .product-detail{min-width:0;grid-template-columns:repeat(2,minmax(0,1fr))}
.ui-store .detail-img{min-width:0;overflow:hidden}
.ui-store .shop-feature-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.ui-store .shop-carousel,.ui-store .shop-slide,.ui-store .shop-carousel-track{min-width:0;max-width:100%}
.ui-store .shop-slide picture,.ui-store .shop-slide picture img{max-width:100%}
.ui-store .shop-slide-content{min-width:0;max-width:min(680px,100%)}
.ui-store .shop-slide-content h1{overflow-wrap:anywhere}
.ui-store .shop-promo{min-width:0}
.ui-store .shop-promo span{min-width:0}
.ui-tabs{max-width:100%;overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}
.ui-tab{white-space:nowrap;flex:none}
.ui-modal-backdrop{padding:clamp(10px,3vw,24px);overflow-y:auto;overscroll-behavior:contain}
.ui-modal{max-height:calc(100dvh - 24px);overflow-y:auto;max-width:100%}
.ui-toast-stack{max-width:calc(100vw - 24px)}
.media-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr))}
.media-tile{min-width:0}
.shop-benefits>span{min-width:0}
/* Touch-targets and focus */
button,[role="button"],.side-link,.btn,.store-nav a{touch-action:manipulation}
:focus-visible{outline:3px solid rgba(240,23,33,.55);outline-offset:3px}
[hidden]{display:none!important}
@media(max-width:1200px){
 .ui-admin .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
 .ui-store .shop-feature-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .ui-store .store-header{gap:18px}
 .ui-store .store-nav{gap:14px}
}
@media(max-width:900px){
 .ui-store .container{width:calc(100% - 32px)}
 .ui-store .shop-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .ui-store .grid-products{grid-template-columns:repeat(2,minmax(0,1fr))}
 .ui-store .product-detail{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
 .ui-admin .admin-main{padding:22px 18px}
 .ui-admin .sidebar{max-width:min(90vw,290px)}
 .ui-admin.sidebar-open{overflow:hidden}
 .admin-overlay{cursor:pointer}
}
@media(max-width:640px){
 .ui-store .container{width:calc(100% - 24px)}
 .ui-store .store-header{gap:10px;row-gap:10px;padding:12px 0;align-items:center}
 .ui-store .store-brand{min-width:0}
 .ui-store .store-brand strong{font-size:clamp(19px,5vw,24px)}
 .ui-store .store-search{order:3;flex:0 0 100%;max-width:100%}
 .ui-store .store-search input{font-size:16px}
 .ui-store .store-nav{margin-left:auto;gap:10px}
 .ui-store .store-nav>a{font-size:12px}
 .ui-store .store-search button{padding-inline:12px;min-width:44px}
 .ui-store .shop-feature-head{align-items:flex-start;flex-wrap:wrap}
 .ui-store .shop-feature-head h2{font-size:clamp(19px,5vw,24px)}
 .ui-store .shop-feature-head .shop-more{margin-left:auto}
 .ui-store .shop-carousel{margin-top:12px}
 .ui-store .shop-slide{min-height:300px}
 .ui-store .shop-slide-content{padding:32px 16px 65px}
 .ui-store .shop-slide-content h1{font-size:clamp(25px,7vw,35px);line-height:1.16}
 .ui-store .shop-slide-content p{font-size:13px;max-width:36ch}
 .ui-store .shop-carousel-controls{right:10px;bottom:8px}
 .ui-store .shop-benefits{justify-content:center;text-align:center;font-size:11px;gap:8px}
 .ui-store .shop-benefits span{flex:1 1 130px}
 .ui-store .shop-feature-grid,.ui-store .grid-products{gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}
 .ui-store .shop-mini-image{padding:9px}
 .ui-store .shop-mini-body{padding:10px;gap:6px}
 .ui-store .shop-mini-title{font-size:12px;min-height:0}
 .ui-store .shop-mini-pricing strong{font-size:clamp(15px,4vw,18px)}
 .ui-store .shop-mini-stock{font-size:10px}
 .ui-store .shop-mini-body .btn,.ui-store .product .btn{padding:9px 7px;font-size:11px;min-height:40px}
 .ui-store .product-detail{grid-template-columns:1fr;gap:16px}
 .ui-store .detail-img{height:260px}
 .ui-store .shop-promo-grid{grid-template-columns:1fr}
 .ui-store .shop-promo{min-height:145px}
 .ui-admin .admin-main{padding:15px 12px 32px}
 .ui-admin .admin-topbar{padding:0 12px;gap:8px}
 .ui-admin .admin-top-left,.ui-admin .admin-top-actions{gap:8px;min-width:0}
 .ui-admin .breadcrumbs span:not(:last-child),.ui-admin .crumb-slash{display:none}
 .ui-admin .breadcrumbs strong{max-width:38vw}
 .ui-admin .admin-page-heading{margin-bottom:16px}
 .ui-admin .admin-page-heading h1{font-size:clamp(22px,6vw,28px)}
 .ui-admin .admin-page-heading p{font-size:12px}
 .ui-admin .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
 .ui-admin .stat{padding:13px;min-height:104px}
 .ui-admin .stat strong{font-size:clamp(22px,6.2vw,30px)}
 .ui-admin .panel{padding:15px 12px;max-width:100%}
 .ui-admin .panel .row{gap:9px}
 .ui-admin .panel .row>div{flex:1 1 100%!important;max-width:100%!important}
 .ui-admin .panel .row>button{flex:0 1 auto!important}
 .ui-admin .admin-foot{padding:14px 12px}
 .ui-admin .admin-foot span{display:none}
 .ui-admin .actions{gap:6px}
 .ui-admin .actions .btn{font-size:11px}
 .ui-tabs{width:100%;gap:4px}
 .ui-tab{padding:9px 12px}
 .ui-modal{padding:18px 15px;border-radius:14px}
 .ui-modal-actions{flex-direction:column-reverse}
 .ui-modal-actions .btn{min-height:44px;width:100%}
 .ui-auth .panel{padding:21px 15px}
}
@media(max-width:380px){
 .ui-store .store-nav>a:not(.cart-link){display:none}
 .ui-store .grid-products,.ui-store .shop-feature-grid{gap:8px}
 .ui-store .product .info{padding:9px}
 .ui-store .product h3{font-size:11.5px}
 .ui-store .product .pic{height:132px}
 .ui-store .shop-mini-body .btn,.ui-store .product .btn{font-size:10.5px}
 .ui-store .shop-slide{min-height:270px}
 .ui-store .shop-slide-content h1{font-size:25px}
 .ui-admin .admin-avatar{display:none}
 .ui-admin .stat{padding:11px}
 .ui-admin .stat strong{font-size:23px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}

body.modal-open{overflow:hidden}
