:root{
  --min-operating-width:320px;
  --min-operating-height:480px;
}

html{
  min-width:0;
  max-width:100%;
  overflow-x:hidden;
  text-size-adjust:100%;
}

body{
  max-width:100%;
  min-width:0;
  overflow-x:hidden;
}

*,*::before,*::after{
  box-sizing:border-box;
}

img,svg,canvas,video,iframe{
  max-width:100%;
}

img,video{
  height:auto;
}

table{
  max-width:100%;
}

input,select,textarea,button{
  max-width:100%;
}

button:not(.eye-btn),
.btn,
.button,
.actions a,
.store-cta,
.primary-account-action,
.admin-switcher a,
.nav-item,
.header a,
.top a{
  min-height:44px!important;
  line-height:1.2;
  touch-action:manipulation;
}

.btn,
.button,
.actions a,
.store-cta,
.primary-account-action,
.admin-switcher a,
.header a,
.top a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}

input:not([type=checkbox]):not([type=radio]),
select,
textarea{
  min-height:44px!important;
}

.cart-toggle{
  width:50px!important;
  min-width:50px!important;
  min-height:44px!important;
  padding-left:0!important;
  padding-right:0!important;
}

.menu-trigger{
  width:44px!important;
  min-width:44px!important;
  min-height:44px!important;
  padding-left:0!important;
  padding-right:0!important;
}

.actions,
.header-actions,
.session-actions,
.panel-actions,
.button-row,
.range-buttons,
.admin-switcher{
  gap:10px;
}

.theme-bg{
  position:fixed;
  inset:0;
  z-index:0;
  background:var(--theme-bg-image) var(--theme-bg-position,center)/cover var(--theme-bg-repeat,no-repeat);
  opacity:var(--theme-bg-opacity,.22);
  pointer-events:none;
}

.theme-bg[hidden]{
  display:none!important;
}

.theme-bg::after{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.46);
}

body.has-theme-bg > :not(.theme-bg){
  position:relative;
  z-index:1;
}

.container,.wrap,.card,.panel,.modal-card,.grid,.admin-layout,.dashboard-top{
  min-width:0;
}

.table-wrap,.responsive-table-wrap{
  width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}

.table-wrap > table:not(.responsive-table),
.responsive-table-wrap > table:not(.responsive-table){
  min-width:680px;
  max-width:none;
}

.responsive-table{
  min-width:0;
}

.responsive-card-table{
  max-width:100%;
}

.logo,.brand,h1,h2,h3,.section-title,.title,.modal-head h2,button,.admin-switcher a,.nav-item,.badge{
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
}

.muted,.note,.helper,.client-meta,.order-items,.detail-value{
  overflow-wrap:anywhere;
}

@media(max-width:900px){
  .container,.wrap{
    width:100%;
    padding-left:clamp(14px,4vw,24px);
    padding-right:clamp(14px,4vw,24px);
  }

  .header{
    width:100%;
  }

  button:not(.eye-btn),
  .btn,
  .button,
  .actions a,
  .store-cta,
  .primary-account-action,
  .header a,
  .top a{
    min-height:48px!important;
    padding-top:12px!important;
    padding-bottom:12px!important;
  }

  .admin-switcher a,
  .nav-item{
    min-height:44px!important;
    padding-top:10px!important;
    padding-bottom:10px!important;
  }

  .cart-toggle{
    width:52px!important;
    min-width:52px!important;
    min-height:48px!important;
  }

  .menu-trigger{
    width:48px!important;
    min-width:48px!important;
    min-height:48px!important;
  }

  input:not([type=checkbox]):not([type=radio]),
  select,
  textarea{
    min-height:48px!important;
    font-size:16px;
  }

  .actions,
  .panel-actions,
  .button-row,
  .range-buttons{
    gap:10px;
  }

  .actions button,
  .panel-actions button,
  .button-row button,
  .range-buttons button{
    flex:1 1 180px;
  }
}

@media(max-width:760px){
  .header,
  .topbar,
  .head,
  .page-head,
  .dashboard-top,
  .modal-head,
  .statement-modal-head{
    align-items:flex-start!important;
    flex-direction:column!important;
    gap:12px!important;
  }

  .header-right,
  .header-actions,
  .session-actions,
  .admin-switcher{
    width:100%!important;
    justify-content:flex-start!important;
  }

  .grid,
  .split,
  .detail,
  .detail-grid,
  .summary-grid,
  .kpi-grid,
  .context,
  .admin-layout,
  .dashboard-grid,
  .statement-range-grid,
  .address-grid,
  .order-card-head,
  .order-form,
  .order-nature,
  .workflow,
  .cover-studio,
  .port-grid{
    grid-template-columns:1fr!important;
  }

  .span-12,
  .span-8,
  .span-6,
  .span-4,
  .span-3,
  .full,
  .wide{
    grid-column:1 / -1!important;
  }

  .control{
    min-width:100%!important;
    flex-basis:100%!important;
  }

  .table-wrap,
  .responsive-table-wrap{
    overflow-x:auto!important;
  }

  .table-wrap > table.responsive-card-table,
  .responsive-table-wrap > table.responsive-card-table,
  table.responsive-table{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    table-layout:auto!important;
  }

  .table-wrap > table.responsive-card-table thead,
  .responsive-table-wrap > table.responsive-card-table thead,
  table.responsive-table thead{
    display:none!important;
  }

  .table-wrap > table.responsive-card-table tbody,
  .responsive-table-wrap > table.responsive-card-table tbody,
  .table-wrap > table.responsive-card-table tr,
  .responsive-table-wrap > table.responsive-card-table tr,
  table.responsive-table tbody,
  table.responsive-table tr{
    display:block!important;
    width:100%!important;
  }

  .table-wrap > table.responsive-card-table tr,
  .responsive-table-wrap > table.responsive-card-table tr,
  table.responsive-table tr{
    margin:0 0 12px!important;
    padding:10px!important;
    border:1px solid rgba(255,255,255,.10)!important;
    border-radius:8px!important;
    background:rgba(255,255,255,.025)!important;
  }

  .table-wrap > table.responsive-card-table th,
  .responsive-table-wrap > table.responsive-card-table th,
  .table-wrap > table.responsive-card-table td,
  .responsive-table-wrap > table.responsive-card-table td,
  table.responsive-table th,
  table.responsive-table td{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    padding:8px 0!important;
    border-bottom:0!important;
    text-align:left!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    word-break:normal!important;
  }

  .table-wrap > table.responsive-card-table td::before,
  .responsive-table-wrap > table.responsive-card-table td::before,
  table.responsive-table td::before{
    content:attr(data-label);
    display:block;
    margin-bottom:4px;
    color:var(--muted,#9a9a9a);
    font-size:11px;
    font-weight:700;
    line-height:1.2;
  }

  .table-wrap > table.responsive-card-table td[data-label=""]::before,
  .responsive-table-wrap > table.responsive-card-table td[data-label=""]::before,
  table.responsive-table td[data-label=""]::before{
    display:none;
  }
}

@media(max-width:520px){
  h1{
    font-size:clamp(22px,7vw,30px);
  }

  h2{
    font-size:clamp(18px,6vw,24px);
  }

  .card,.panel,.modal-card{
    padding:clamp(14px,4vw,18px);
  }

  .actions,
  .panel-actions,
  .button-row,
  .header-actions{
    display:grid;
    grid-template-columns:1fr;
    width:100%;
  }

  .actions button,
  .actions a,
  .panel-actions button,
  .button-row button,
  .header-actions button,
  .header-actions a{
    width:100%;
  }
}

body::before,
body::after{
  display:none;
}

@media(max-width:319px){
  body{
    min-height:100vh;
    overflow:hidden!important;
  }

  body > *{
    filter:blur(6px)!important;
    pointer-events:none!important;
    user-select:none!important;
  }

  body::before{
    content:"";
    display:block;
    position:fixed;
    inset:0;
    z-index:9998;
    background:rgba(8,8,8,.72);
    backdrop-filter:blur(2px);
  }

  body::after{
    content:"Tamano minimo recomendado: 320 px de ancho. Amplia la ventana o gira tu dispositivo para operar el sistema con seguridad.";
    display:flex;
    position:fixed;
    left:50%;
    top:50%;
    z-index:9999;
    width:min(88vw,340px);
    min-height:140px;
    transform:translate(-50%,-50%);
    align-items:center;
    justify-content:center;
    padding:22px;
    border:1px solid rgba(255,196,0,.45);
    border-radius:8px;
    background:#111;
    color:#fff;
    box-shadow:0 20px 60px rgba(0,0,0,.45);
    font-family:Arial,sans-serif;
    font-size:15px;
    font-weight:700;
    line-height:1.45;
    text-align:center;
  }
}
