.mssn-backoffice-wrap{width:100%;max-width:none;margin:0 auto;padding:16px}
.mssn-backoffice-wrap.mssn-wide{width:100%;max-width:none}
.mssn-backoffice-card{background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 6px 22px rgba(0,0,0,.06);padding:16px}

/* Simple tab nav (admin-like) */
.mssn-backoffice-nav{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.mssn-backoffice-nav a{display:inline-block;padding:10px 12px;border:1px solid #e5e7eb;border-radius:12px;text-decoration:none;font-weight:800;font-size:16px;background:#f9fafb;color:#111827}
.mssn-backoffice-nav a:hover{background:#fff}
.mssn-backoffice-nav a.is-active{background:#111827;color:#fff;border-color:#111827}

/* Normalize WP admin markup when rendered in frontend */
.mssn-backoffice .wrap{margin:0}
.mssn-backoffice h1{font-size:28px;margin:0 0 10px}
.mssn-backoffice h2{font-size:22px;margin:20px 0 10px}
.mssn-backoffice .notice{border:1px solid #e5e7eb;border-left-width:6px;border-radius:12px;background:#fff;padding:10px 12px;margin:12px 0}
.mssn-backoffice .notice-success{border-left-color:#16a34a}
.mssn-backoffice .notice-error{border-left-color:#dc2626}
.mssn-backoffice .notice-warning{border-left-color:#f59e0b}
.mssn-backoffice .notice p{margin:0}

.mssn-backoffice .button,.mssn-backoffice .button-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 12px;border-radius:12px;border:1px solid #d1d5db;background:#fff;color:#111827;text-decoration:none;font-weight:800;cursor:pointer}
.mssn-backoffice .button:hover{background:#f9fafb}
.mssn-backoffice .button-primary{background:#111827;border-color:#111827;color:#fff}
.mssn-backoffice .button-primary:hover{opacity:.9}

.mssn-backoffice input[type="text"],
.mssn-backoffice input[type="number"],
.mssn-backoffice input[type="date"],
.mssn-backoffice input[type="email"],
.mssn-backoffice input[type="tel"],
.mssn-backoffice select,
.mssn-backoffice textarea{width:100%;max-width:860px;padding:12px 14px;border:1px solid #d1d5db;border-radius:14px;font-size:16px;line-height:1.35;min-width:0;box-sizing:border-box}
.mssn-backoffice textarea{min-height:90px}
.mssn-backoffice label{font-weight:800}

.mssn-backoffice .form-table{width:100%;border-collapse:collapse;margin-top:10px}
.mssn-backoffice .form-table th{width:260px;text-align:left;vertical-align:top;padding:10px 10px 10px 0}
.mssn-backoffice .form-table td{padding:10px 0}

/* Never allow controls to overflow their cell (desktop + mobile) */
.mssn-backoffice input[type="text"],
.mssn-backoffice input[type="number"],
.mssn-backoffice input[type="date"],
.mssn-backoffice input[type="email"],
.mssn-backoffice input[type="tel"],
.mssn-backoffice select,
.mssn-backoffice textarea{max-width:100%;min-width:0}

.mssn-backoffice table.widefat{width:100%;border-collapse:collapse;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;background:#fff}
.mssn-backoffice table.widefat thead th{background:#f9fafb;border-bottom:1px solid #e5e7eb;padding:10px 12px;text-align:left}
.mssn-backoffice table.widefat tbody td{border-bottom:1px solid #f1f5f9;padding:10px 12px}
.mssn-backoffice table.widefat tbody tr:last-child td{border-bottom:none}

.mssn-backoffice .mssn-muted{opacity:.75}

@media (max-width: 640px){
  .mssn-backoffice-wrap{padding:12px}
  .mssn-backoffice .form-table th{width:auto;display:block;padding-right:0}
  .mssn-backoffice .form-table td{display:block}

  /* Tabs: no aplastar, mejor scroll horizontal */
  .mssn-backoffice-nav{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}
  .mssn-backoffice-nav a{white-space:nowrap;flex:0 0 auto}

  /* List tables: permitir scroll horizontal */
  .mssn-backoffice-card{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .mssn-backoffice table.widefat{display:block;min-width:720px}

  /* WP admin “tablenav” suele romper en móvil */
  .mssn-backoffice .tablenav{display:flex;flex-direction:column;gap:8px;align-items:stretch}
  .mssn-backoffice .tablenav .tablenav-pages{float:none;text-align:left}
  .mssn-backoffice .tablenav .alignleft.actions{float:none}
}

/* =========================================================
   UX polish (v1.0.88) — frontend Backoffice (Ajustes/Ventas/Stats)
   ========================================================= */
.mssn-backoffice-wrap, .mssn-backoffice-wrap *{box-sizing:border-box}
.mssn-backoffice-card{border-radius:16px}

/* Make nav easy on mobile */
.mssn-backoffice-nav{overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;padding-bottom:4px}
.mssn-backoffice-nav a{white-space:nowrap;border-radius:999px}

/* Tables: always scroll in small containers */
.mssn-backoffice .widefat{width:100%}
.mssn-backoffice .widefat-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:14px}
.mssn-backoffice table.widefat{min-width:720px}

/* WP admin forms rendered in frontend */
.mssn-backoffice input[type="text"],
.mssn-backoffice input[type="number"],
.mssn-backoffice input[type="email"],
.mssn-backoffice select,
.mssn-backoffice textarea{
  border-radius:12px;
}

/* Slightly tighter on very small screens */
@media (max-width:420px){
  .mssn-backoffice h1{font-size:22px}
  .mssn-backoffice h2{font-size:18px}
}



/* Prevent layout overflow on narrow containers */
.mssn-backoffice-card{min-width:0}

/* =========================================================
   v1.0.99 — Frontend Backoffice (mssn_pos_backoffice) mobile-first
   - Stacks the 2-column "Lista / Editor" grid
   - Makes filter bar + pagination wrap nicely
   - Converts widefat tables into cards on mobile (progressive enhancement)
   ========================================================= */

/* Softer 3D card look */
.mssn-backoffice-card{
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.86));
  border-color: rgba(229,231,235,.95);
  box-shadow: 0 18px 60px rgba(0,0,0,.10);
}

/* Sticky tabs on mobile so navigation is always reachable */
@media (max-width: 720px){
  .mssn-backoffice-nav{
    position: sticky;
    top: 10px;
    z-index: 50;
    background: rgba(243,244,246,.72);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    border-radius: 999px;
    padding: 6px;
    margin-bottom: 10px;
    border: 1px solid rgba(229,231,235,.9);
  }
  .mssn-backoffice-nav a{padding:10px 14px}
}

/* =========================================================
   v1.0.105 — Desktop polish for frontend Backoffice
   - Two-column layout (sticky navigation + content)
   - Better spacing/typography on PC
   ========================================================= */

@media (min-width: 1024px){
  .mssn-backoffice-wrap{padding:22px 18px}

  /* Only when we are in the "tabs" view */
  .mssn-backoffice-wrap.mssn-has-tabs{
    display:grid;
    grid-template-columns: 280px minmax(0, 1fr);
    gap:18px;
    align-items:start;
  }

  .mssn-backoffice-wrap.mssn-has-tabs .mssn-backoffice-nav{
    grid-column:1;
    flex-direction:column;
    flex-wrap:nowrap;
    overflow:visible;
    position:sticky;
    top:18px;
    margin:0;
    padding:12px;
    border-radius:18px;
    background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.82));
    border:1px solid rgba(229,231,235,.95);
    box-shadow: 0 14px 44px rgba(0,0,0,.10);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
  }

  .mssn-backoffice-wrap.mssn-has-tabs .mssn-backoffice-nav a{
    width:100%;
    justify-content:flex-start;
    border-radius:14px;
    font-size:15px;
    padding:10px 12px;
  }

  .mssn-backoffice-wrap.mssn-has-tabs .mssn-backoffice-card{grid-column:2}

  .mssn-backoffice h1{font-size:32px}
  .mssn-backoffice h2{font-size:24px}

  /* Make admin tables feel less cramped */
  .mssn-backoffice table.widefat thead th{padding:12px 14px}
  .mssn-backoffice table.widefat tbody td{padding:12px 14px}
  .mssn-backoffice table.widefat tbody tr:hover{background:#f9fafb}

  /* Tablenav: align controls and pages on one line when possible */
  .mssn-backoffice .tablenav{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
  .mssn-backoffice .tablenav .tablenav-pages{margin-left:auto;float:none}
  .mssn-backoffice .tablenav .alignleft.actions{float:none;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
}

@media (min-width: 1600px){
  /* Prevent ultra-wide stretching on big monitors */
  .mssn-backoffice-wrap{max-width:1800px;margin:0 auto}
}

/* =========================================================
   v1.0.107 — PC fix for Productos/Tiendas editor forms
   The admin pages render a "Lista / Editor" grid (1fr 420px).
   When combined with the left tab sidebar, the right editor column gets too tight
   and WP's form-table layout breaks.
   ========================================================= */

/* Force grid children to shrink correctly (prevents overflow) */
.mssn-backoffice .wrap > div[style*="grid-template-columns: 1fr 420px"]{
  grid-template-columns: minmax(0, 1fr) minmax(0, 420px) !important;
  align-items: start !important;
}

/* On laptops / mid screens, stack Lista + Editor for usability */
@media (max-width: 1320px){
  .mssn-backoffice .wrap > div[style*="grid-template-columns: 1fr 420px"]{
    grid-template-columns: 1fr !important;
  }
}

/* In the editor panel (right column), stack labels above inputs even on desktop */
.mssn-backoffice .wrap > div[style*="grid-template-columns: 1fr 420px"] .form-table,
.mssn-backoffice .wrap > div[style*="grid-template-columns: 1fr 420px"] .form-table tbody,
.mssn-backoffice .wrap > div[style*="grid-template-columns: 1fr 420px"] .form-table tr,
.mssn-backoffice .wrap > div[style*="grid-template-columns: 1fr 420px"] .form-table th,
.mssn-backoffice .wrap > div[style*="grid-template-columns: 1fr 420px"] .form-table td{
  display: block;
  width: 100% !important;
}
.mssn-backoffice .wrap > div[style*="grid-template-columns: 1fr 420px"] .form-table th{
  padding: 0 0 6px 0 !important;
  margin: 0;
}
.mssn-backoffice .wrap > div[style*="grid-template-columns: 1fr 420px"] .form-table td{
  padding: 0 0 12px 0 !important;
}

/* Keep action buttons tidy in narrow panel */
.mssn-backoffice .wrap > div[style*="grid-template-columns: 1fr 420px"] p .button,
.mssn-backoffice .wrap > div[style*="grid-template-columns: 1fr 420px"] p .button-primary{
  width: 100%;
  justify-content: center;
  margin: 0 0 8px;
}

/* Stack inline grid layouts used in admin pages when rendered in frontend */
@media (max-width: 980px){
  .mssn-backoffice .wrap > div[style*="grid-template-columns"]{
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }
}

/* Make the filter bar usable on mobile */
@media (max-width: 720px){
  .mssn-backoffice form[method="get"]{
    display: grid !important;
    grid-template-columns: 1fr;
    gap: 10px;
    align-items: stretch !important;
  }
  .mssn-backoffice form[method="get"] label{font-weight:900}
  .mssn-backoffice form[method="get"] input[type="text"],
  .mssn-backoffice form[method="get"] select{
    max-width: none !important;
    width: 100% !important;
    min-width: 0 !important;
  }
  .mssn-backoffice form[method="get"] .button{
    width: 100%;
    justify-content: center;
  }
}

/* Mobile tables: card mode (enabled by JS adding .mssn-cards) */
@media (max-width: 720px){
  .mssn-backoffice table.widefat.mssn-cards{
    display:block;
    min-width:0 !important;
    border:0;
    background:transparent;
  }
  .mssn-backoffice table.widefat.mssn-cards thead{display:none}
  .mssn-backoffice table.widefat.mssn-cards tbody{display:block}
  .mssn-backoffice table.widefat.mssn-cards tbody tr{
    display:block;
    background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.78));
    border:1px solid rgba(229,231,235,.95);
    border-radius:18px;
    padding:12px 12px 10px;
    margin:0 0 12px;
    box-shadow: 0 12px 34px rgba(0,0,0,.09);
  }
  .mssn-backoffice table.widefat.mssn-cards tbody td{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    padding:7px 0;
    border:0;
    border-bottom:1px dashed rgba(226,232,240,.95);
  }
  .mssn-backoffice table.widefat.mssn-cards tbody td::before{
    content: attr(data-label);
    font-weight: 900;
    opacity: .70;
    padding-right: 10px;
    flex: 0 0 44%;
    max-width: 44%;
  }
  .mssn-backoffice table.widefat.mssn-cards tbody td:last-child{
    border-bottom:0;
    padding-top:10px;
    flex-direction:column;
    align-items:stretch;
    gap:10px;
  }
  .mssn-backoffice table.widefat.mssn-cards tbody td:last-child::before{content:'';display:none}
  .mssn-backoffice table.widefat.mssn-cards tbody td .button,
  .mssn-backoffice table.widefat.mssn-cards tbody td .button-primary{
    width:100%;
    justify-content:center;
  }
}

@media (max-width: 720px){
  .mssn-backoffice table.widefat.mssn-cards tbody td[data-label=""]::before{display:none}
}

/* =========================================================
   v1.0.101 — Mobile full-bleed + input containment
   - Full width on mobile even inside narrow theme containers
   - Prevent inputs/selects from overflowing their containers
   ========================================================= */

@media (max-width: 720px){
  /* Full-bleed wrapper (ignore theme content padding) */
  .mssn-backoffice-wrap.alignfull{
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding-left: 12px;
    padding-right: 12px;
    overflow-x: clip;
  }

  /* Hard guardrails: never let form controls overflow */
  .mssn-backoffice input[type="text"],
  .mssn-backoffice input[type="number"],
  .mssn-backoffice input[type="date"],
  .mssn-backoffice input[type="email"],
  .mssn-backoffice input[type="tel"],
  .mssn-backoffice select,
  .mssn-backoffice textarea,
  .mssn-backoffice button,
  .mssn-backoffice .button,
  .mssn-backoffice .button-primary{
    max-width: 100% !important;
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box;
  }

  /* Keep small action buttons usable without breaking layout */
  .mssn-backoffice .button,
  .mssn-backoffice .button-primary{
    justify-content: center;
  }

  /* Prevent any grid/flex children from forcing overflow */
  .mssn-backoffice .wrap,
  .mssn-backoffice-card,
  .mssn-backoffice .form-table,
  .mssn-backoffice .form-table td,
  .mssn-backoffice .form-table th{
    min-width: 0;
  }
}


/* =========================================================
   Ventas — responsive + ticket actions (v1.0.102)
   ========================================================= */

.mssn-backoffice table.mssn-sales-table{table-layout:auto}
.mssn-backoffice .mssn-sale-detail{display:flex;flex-direction:column;gap:6px;margin:8px 0 0}
.mssn-backoffice .mssn-sale-line{display:flex;justify-content:space-between;gap:10px;padding:6px 8px;border:1px solid #e5e7eb;border-radius:12px;background:#fff}
.mssn-backoffice .mssn-sale-line .l{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mssn-backoffice .mssn-sale-line .r{white-space:nowrap}
.mssn-backoffice .mssn-actions-cell{white-space:nowrap}
.mssn-backoffice .mssn-actions-cell .button{margin:2px 6px 2px 0}

@media (max-width: 720px){
  /* Ventas: quitar scroll horizontal y convertir a tarjetas */
  .mssn-backoffice table.mssn-sales-table{min-width:0 !important;display:table !important;width:100% !important}
  .mssn-backoffice table.mssn-sales-table thead{display:none}
  .mssn-backoffice table.mssn-sales-table tbody{display:block}
  .mssn-backoffice table.mssn-sales-table tbody tr{display:block;margin:0 0 14px;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 8px 24px rgba(0,0,0,.08);background:#fff;overflow:hidden}
  .mssn-backoffice table.mssn-sales-table tbody td{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid #f1f5f9}
  .mssn-backoffice table.mssn-sales-table tbody td:before{content:attr(data-label);font-weight:800;opacity:.75;padding-right:10px;white-space:nowrap}
  .mssn-backoffice table.mssn-sales-table tbody td:last-child{border-bottom:none}

  .mssn-backoffice table.mssn-sales-table details{width:100%}
  .mssn-backoffice table.mssn-sales-table details summary{cursor:pointer;font-weight:800}

  .mssn-backoffice .mssn-sale-line{padding:8px 10px}
  .mssn-backoffice .mssn-actions-cell{display:flex;flex-wrap:wrap;justify-content:flex-end}
  .mssn-backoffice .mssn-actions-cell .button{width:100%;text-align:center;margin:4px 0 0}
  .mssn-backoffice .mssn-actions-cell .button-link-delete{width:100%}
}



/* ===== Split layout fixes: Productos / Tiendas (admin + frontend) ===== */
.mssn-bo-split{
  display:grid;
  grid-template-columns:minmax(0,1fr) 420px;
  gap:18px;
  align-items:start;
}
.mssn-bo-split > .mssn-bo-col{min-width:0}

/* List side: prevent tables from bleeding under the editor */
.mssn-bo-list{
  min-width:0;
  overflow:auto;
  -webkit-overflow-scrolling:touch;
  border-radius:14px;
}

/* In the split view, never let the list table spill into the editor column */
.mssn-bo-list table.widefat{
  min-width:0 !important;
  width:100% !important;
  table-layout:fixed;
}
.mssn-bo-list table.widefat th,
.mssn-bo-list table.widefat td{
  overflow:hidden;
  text-overflow:ellipsis;
}
/* Let product/store names wrap instead of forcing extra width */
.mssn-bo-list table.widefat td:nth-child(2){
  white-space:normal;
  word-break:break-word;
}

/* Editor side: stable, readable forms on desktop */
.mssn-bo-editor{min-width:0}
.mssn-bo-editor form{
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:14px;
  box-shadow:0 10px 30px rgba(0,0,0,.06);
  padding:14px;
}
.mssn-bo-editor .form-table{margin:0}
.mssn-bo-editor .form-table th{
  width:auto;
  display:block;
  padding:10px 0 4px;
}
.mssn-bo-editor .form-table td{
  display:block;
  padding:0 0 10px;
}
.mssn-bo-editor input[type="text"],
.mssn-bo-editor input[type="number"],
.mssn-bo-editor input[type="date"],
.mssn-bo-editor select,
.mssn-bo-editor textarea{
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box;
}

/* Medium screens: stack to avoid crowding */
@media (max-width: 980px){
  .mssn-bo-split{grid-template-columns:1fr}
}
