/* ═══════════════════════════════════════════════════════════════
   Persianas Pro — Estilos Generales
   ═══════════════════════════════════════════════════════════════ */

:root {
  --pp-primary:    #1a3a5c;
  --pp-accent:     #e8892b;
  --pp-accent2:    #2196a6;
  --pp-bg:         #f4f6f9;
  --pp-card:       #ffffff;
  --pp-border:     #dde1e8;
  --pp-text:       #1e2a38;
  --pp-muted:      #6b7a8d;
  --pp-success:    #27ae60;
  --pp-danger:     #e74c3c;
  --pp-warn:       #f39c12;
  --pp-radius:     10px;
  --pp-shadow:     0 2px 12px rgba(0,0,0,.08);
  --pp-transition: .2s ease;
}

/* ── Base ──────────────────────────────────────────────────── */
.pp-panel {
  font-family: 'Segoe UI', system-ui, sans-serif;
  color: var(--pp-text);
  background: var(--pp-bg);
  min-height: 500px;
  padding: 0;
}

.pp-aviso {
  padding: 16px 20px;
  background: #fff3cd;
  border-left: 4px solid var(--pp-warn);
  border-radius: var(--pp-radius);
  margin: 20px 0;
}

/* ── Nav tabs ──────────────────────────────────────────────── */
.pp-nav {
  display: flex;
  gap: 4px;
  background: var(--pp-primary);
  padding: 10px 16px 0;
  border-radius: var(--pp-radius) var(--pp-radius) 0 0;
  flex-wrap: wrap;
}

.pp-tab {
  background: rgba(255,255,255,.12);
  border: none;
  color: rgba(255,255,255,.75);
  padding: 10px 18px;
  border-radius: 8px 8px 0 0;
  font-size: .9rem;
  font-weight: 600;
  cursor: pointer;
  transition: var(--pp-transition);
  white-space: nowrap;
}

.pp-tab:hover { background: rgba(255,255,255,.22); color:#fff; }
.pp-tab.active { background: var(--pp-bg); color: var(--pp-primary); }

/* ── Sections ──────────────────────────────────────────────── */
.pp-section {
  display: none;
  padding: 24px;
  background: var(--pp-bg);
  border-radius: 0 var(--pp-radius) var(--pp-radius) var(--pp-radius);
  animation: ppFadeIn .2s;
}
.pp-section.active { display: block; }

@keyframes ppFadeIn { from{opacity:0;transform:translateY(4px)} to{opacity:1;transform:none} }

/* ── Toolbar ───────────────────────────────────────────────── */
.pp-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
  flex-wrap: wrap;
  gap: 10px;
}
.pp-toolbar h2 { margin: 0; font-size: 1.25rem; color: var(--pp-primary); }

/* ── Buttons ───────────────────────────────────────────────── */
.pp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 9px 18px;
  border: none;
  border-radius: 7px;
  font-size: .875rem;
  font-weight: 600;
  cursor: pointer;
  transition: var(--pp-transition);
  text-decoration: none;
  line-height: 1.4;
  white-space: nowrap;
  font-family: inherit;
}
.pp-btn-primary   { background: var(--pp-accent); color: #fff; }
.pp-btn-primary:hover { background: #cf7520; color:#fff; }
.pp-btn-secondary { background: var(--pp-primary); color: #fff; }
.pp-btn-secondary:hover { background: #122c47; color:#fff; }
.pp-btn-outline   { background: transparent; color: var(--pp-primary); border: 2px solid var(--pp-primary); }
.pp-btn-outline:hover { background: var(--pp-primary); color: #fff; }
.pp-btn-danger    { background: var(--pp-danger); color: #fff; }
.pp-btn-danger:hover { background: #c0392b; color:#fff; }
.pp-btn-sm        { padding: 5px 12px; font-size: .78rem; }

/* ── Cards catálogo (proveedor) ────────────────────────────── */
.pp-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
  gap: 16px;
}

.pp-prod-card {
  background: var(--pp-card);
  border-radius: var(--pp-radius);
  box-shadow: var(--pp-shadow);
  overflow: hidden;
  transition: var(--pp-transition);
  border: 1px solid var(--pp-border);
}
.pp-prod-card:hover { transform: translateY(-3px); box-shadow: 0 6px 20px rgba(0,0,0,.12); }

.pp-prod-card-img {
  width: 100%;
  height: 130px;
  object-fit: cover;
  background: #e8edf2;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--pp-muted);
  font-size: 2rem;
}
.pp-prod-card-img img { width: 100%; height: 130px; object-fit: cover; display: block; }

.pp-prod-card-body { padding: 12px 14px; }
.pp-prod-card-body h4 { margin: 0 0 4px; font-size: .95rem; color: var(--pp-primary); }
.pp-prod-card-sku { font-size: .75rem; color: var(--pp-muted); margin: 0 0 6px; }
.pp-prod-card-tipo { display: inline-block; background: #e8f4fd; color: var(--pp-accent2); font-size: .72rem; font-weight: 700; border-radius: 20px; padding: 2px 10px; margin-bottom: 8px; }
.pp-prod-card-precio { font-size: 1rem; font-weight: 700; color: var(--pp-accent); }
.pp-prod-card-actions { display: flex; gap: 6px; padding: 0 14px 14px; }

/* ── Tabla ─────────────────────────────────────────────────── */
.pp-table {
  width: 100%;
  border-collapse: collapse;
  background: var(--pp-card);
  border-radius: var(--pp-radius);
  overflow: hidden;
  box-shadow: var(--pp-shadow);
  font-size: .875rem;
}
.pp-table th {
  background: var(--pp-primary);
  color: #fff;
  padding: 12px 14px;
  text-align: left;
  font-weight: 600;
  font-size: .8rem;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.pp-table td { padding: 11px 14px; border-bottom: 1px solid var(--pp-border); vertical-align: middle; }
.pp-table tr:last-child td { border-bottom: none; }
.pp-table tr:hover td { background: #f8fafc; }

/* ── Estatus badge ─────────────────────────────────────────── */
.pp-badge {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 20px;
  font-size: .75rem;
  font-weight: 700;
  text-transform: uppercase;
}
.pp-badge-pendiente   { background: #fff3cd; color: #856404; }
.pp-badge-confirmado  { background: #d1ecf1; color: #0c5460; }
.pp-badge-en_proceso  { background: #d4edda; color: #155724; }
.pp-badge-entregado   { background: #c3e6cb; color: #155724; }
.pp-badge-cancelado   { background: #f8d7da; color: #721c24; }

/* ── Filters ───────────────────────────────────────────────── */
.pp-filters { margin-bottom: 14px; display: flex; gap: 10px; flex-wrap: wrap; }
.pp-filters select { padding: 8px 12px; border: 1px solid var(--pp-border); border-radius: 7px; font-size: .875rem; background: #fff; }

/* ── Form grid ─────────────────────────────────────────────── */
.pp-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.pp-field { display: flex; flex-direction: column; gap: 5px; }
.pp-field label { font-size: .8rem; font-weight: 600; color: var(--pp-muted); text-transform: uppercase; letter-spacing: .04em; }
.pp-field input,
.pp-field select,
.pp-field textarea {
  padding: 9px 12px;
  border: 1.5px solid var(--pp-border);
  border-radius: 7px;
  font-size: .9rem;
  transition: var(--pp-transition);
  font-family: inherit;
  box-sizing: border-box;
}
.pp-field input:focus,
.pp-field select:focus,
.pp-field textarea:focus { outline: none; border-color: var(--pp-accent); box-shadow: 0 0 0 3px rgba(232,137,43,.15); }
.pp-field-full { grid-column: 1 / -1; }

/* ── Modal ─────────────────────────────────────────────────── */
.pp-modal-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.55);
  backdrop-filter: blur(4px);
  z-index: 999990;
  align-items: center;
  justify-content: center;
  padding: 20px;
  box-sizing: border-box;
}
.pp-modal-overlay.open { display: flex !important; }

.pp-modal {
  background: var(--pp-card);
  border-radius: 16px;
  width: 100%;
  max-width: 600px;
  max-height: 90vh;
  overflow-y: auto;
  padding: 32px 28px 24px;
  position: relative;
  animation: ppModalIn .25s cubic-bezier(.34,1.56,.64,1);
  box-shadow: 0 24px 80px rgba(0,0,0,.3);
}
.pp-modal-sm { max-width: 440px; }
.pp-modal-lg { max-width: 780px; }

@keyframes ppModalIn { from{opacity:0;transform:scale(.9)} to{opacity:1;transform:none} }

.pp-modal h3 { margin: 0 40px 20px 0; color: var(--pp-primary); font-size: 1.2rem; line-height: 1.3; }

/* ── Botón cerrar modal — FIXED ─────────────────────────────── */
.pp-modal-close {
  position: absolute !important;
  top: 14px !important;
  right: 14px !important;
  background: #f0f0f0 !important;
  border: none !important;
  width: 34px !important;
  height: 34px !important;
  border-radius: 50% !important;
  font-size: 1rem !important;
  line-height: 1 !important;
  cursor: pointer !important;
  color: #555 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  transition: background .2s, color .2s !important;
  z-index: 10 !important;
  box-shadow: none !important;
  text-shadow: none !important;
  font-family: Arial, sans-serif !important;
  font-weight: 400 !important;
  min-width: unset !important;
}
.pp-modal-close:hover {
  background: var(--pp-danger) !important;
  color: #fff !important;
}

.pp-modal-footer {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid var(--pp-border);
  flex-wrap: wrap;
  align-items: center;
}

/* ── POS Layout ────────────────────────────────────────────── */
.pp-pos-layout {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 20px;
  min-height: 600px;
}

.pp-pos-search {
  display: flex;
  gap: 10px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}
.pp-pos-search input {
  flex: 1;
  padding: 9px 14px;
  border: 1.5px solid var(--pp-border);
  border-radius: 8px;
  font-size: .9rem;
  font-family: inherit;
}
.pp-pos-search input:focus { outline: none; border-color: var(--pp-accent); }
.pp-pos-search select {
  padding: 9px 12px;
  border: 1.5px solid var(--pp-border);
  border-radius: 8px;
  font-size: .875rem;
  font-family: inherit;
}

.pp-pos-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(155px, 1fr));
  gap: 12px;
  max-height: 560px;
  overflow-y: auto;
  padding-right: 4px;
}

/* tarjeta POS */
.pp-pos-card {
  background: var(--pp-card);
  border: 1.5px solid var(--pp-border);
  border-radius: 10px;
  overflow: hidden;
  cursor: pointer;
  transition: var(--pp-transition);
}
.pp-pos-card:hover { border-color: var(--pp-accent); box-shadow: 0 4px 14px rgba(232,137,43,.25); transform: translateY(-2px); }
.pp-pos-card-img { width: 100%; height: 100px; object-fit: cover; background: #e8edf2; display: flex; align-items: center; justify-content: center; font-size: 1.8rem; color: var(--pp-muted); }
.pp-pos-card-img img { width: 100%; height: 100px; object-fit: cover; display: block; }
.pp-pos-card-body { padding: 9px 10px; }
.pp-pos-card-body h5 { margin: 0 0 3px; font-size: .82rem; color: var(--pp-primary); line-height: 1.3; }
.pp-pos-card-body .pp-sku { font-size: .7rem; color: var(--pp-muted); margin: 0 0 4px; }
.pp-pos-card-body .pp-precio { font-size: .85rem; font-weight: 700; color: var(--pp-accent); }

/* ── Carrito ───────────────────────────────────────────────── */
.pp-pos-cart {
  background: var(--pp-card);
  border-radius: var(--pp-radius);
  box-shadow: var(--pp-shadow);
  padding: 18px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-height: 680px;
  overflow-y: auto;
}
.pp-pos-cart h3 { margin: 0; color: var(--pp-primary); font-size: 1rem; }

#cart-items { flex: 1; display: flex; flex-direction: column; gap: 8px; }

.pp-cart-item {
  background: #f8fafc;
  border: 1px solid var(--pp-border);
  border-radius: 8px;
  padding: 10px 12px;
  font-size: .82rem;
  position: relative;
}
.pp-cart-item h5 { margin: 0 24px 3px 0; font-size: .85rem; color: var(--pp-primary); }
.pp-cart-item-meta { color: var(--pp-muted); margin-bottom: 4px; }
.pp-cart-item-precio { font-weight: 700; color: var(--pp-accent); }
.pp-cart-item-remove {
  position: absolute; top: 8px; right: 8px;
  background: none !important; border: none !important; cursor: pointer;
  color: var(--pp-muted); font-size: 1rem; line-height: 1;
  padding: 0 !important; min-width: unset !important;
  width: 20px !important; height: 20px !important;
}
.pp-cart-item-remove:hover { color: var(--pp-danger) !important; }

.pp-empty { color: var(--pp-muted); font-size: .85rem; text-align: center; padding: 20px 0; }

.pp-cart-totals { border-top: 1px solid var(--pp-border); padding-top: 12px; display: flex; flex-direction: column; gap: 8px; }
.pp-cart-row { display: flex; justify-content: space-between; font-size: .875rem; align-items: center; }
.pp-cart-row-opt label { display: flex; align-items: center; gap: 6px; cursor: pointer; }
.pp-cart-total { font-size: 1.1rem; font-weight: 700; color: var(--pp-primary); padding-top: 8px; border-top: 2px solid var(--pp-border); }

/* ── Cliente form ──────────────────────────────────────────── */
.pp-cliente-form { border-top: 1px solid var(--pp-border); padding-top: 12px; }
.pp-cliente-form h4 { margin: 0 0 10px; font-size: .85rem; color: var(--pp-muted); text-transform: uppercase; letter-spacing: .05em; }
.pp-cliente-form input,
.pp-cliente-form textarea {
  width: 100%;
  box-sizing: border-box;
  margin-bottom: 8px;
  padding: 8px 10px;
  border: 1.5px solid var(--pp-border);
  border-radius: 7px;
  font-size: .85rem;
  font-family: inherit;
}
.pp-cliente-form input:focus,
.pp-cliente-form textarea:focus { outline: none; border-color: var(--pp-accent); }

.pp-cart-actions { display: flex; flex-direction: column; gap: 7px; }
.pp-cart-actions .pp-btn { justify-content: center; }

/* ── Modal item precio calc ────────────────────────────────── */
.pp-prod-modal-preview {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  margin-bottom: 18px;
  padding: 12px;
  background: #f8fafc;
  border-radius: 8px;
}
.pp-prod-modal-preview img { width: 80px; height: 80px; object-fit: cover; border-radius: 7px; background: #e8edf2; }

.pp-sku  { font-size: .78rem; color: var(--pp-muted); margin: 0 0 4px; }
.pp-tipo-badge { font-size: .75rem; color: var(--pp-accent2); font-weight: 700; }

.pp-precio-calc {
  background: #f0f7ff;
  border: 1px solid #c8e0f5;
  border-radius: 8px;
  padding: 12px 16px;
  margin-top: 14px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.pp-precio-row { display: flex; justify-content: space-between; font-size: .875rem; }
.pp-precio-highlight { font-size: 1.05rem; font-weight: 700; color: var(--pp-accent); padding-top: 6px; border-top: 1px solid #c8e0f5; }

/* ── Configuración ─────────────────────────────────────────── */
.pp-config-card {
  background: var(--pp-card);
  border-radius: var(--pp-radius);
  box-shadow: var(--pp-shadow);
  padding: 24px;
  max-width: 500px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.pp-config-card small { color: var(--pp-muted); font-size: .8rem; }
#cfg-msg { padding: 10px; border-radius: 6px; font-size: .875rem; }
#cfg-msg.ok  { background: #d4edda; color: #155724; display: block !important; }
#cfg-msg.err { background: #f8d7da; color: #721c24; display: block !important; }

/* ── Ticket Impresión ──────────────────────────────────────── */
.pp-ticket {
  font-family: 'Courier New', monospace;
  max-width: 360px;
  margin: 0 auto;
  padding: 20px;
  font-size: 13px;
  line-height: 1.5;
}
.pp-ticket-header { text-align: center; margin-bottom: 14px; border-bottom: 2px dashed #333; padding-bottom: 10px; }
.pp-ticket-header h2 { margin: 0; font-size: 1.1rem; }
.pp-ticket-header h3 { margin: 2px 0; font-size: .95rem; font-weight: normal; }
.pp-ticket h4 { text-align: center; margin: 10px 0; letter-spacing: .1em; }
.pp-ticket-cliente { margin-bottom: 10px; border-bottom: 1px dashed #aaa; padding-bottom: 8px; font-size: .85rem; }
.pp-ticket-table { width: 100%; border-collapse: collapse; font-size: .8rem; }
.pp-ticket-table th { border-bottom: 1px solid #333; padding: 4px 2px; text-align: left; }
.pp-ticket-table td { padding: 3px 2px; border-bottom: 1px dotted #ccc; }
.pp-ticket-totales { margin-top: 10px; border-top: 2px dashed #333; padding-top: 8px; font-size: .9rem; }
.pp-ticket-totales .total-final { font-size: 1rem; font-weight: bold; margin-top: 4px; }
.pp-ticket-footer { text-align: center; font-size: .75rem; color: #666; margin-top: 14px; border-top: 1px dashed #aaa; padding-top: 8px; }

/* ── Loading / Empty ───────────────────────────────────────── */
.pp-loading { color: var(--pp-muted); font-style: italic; text-align: center; padding: 30px 0; }

/* ── Responsive ────────────────────────────────────────────── */
@media (max-width: 768px) {
  .pp-pos-layout { grid-template-columns: 1fr; }
  .pp-form-grid  { grid-template-columns: 1fr; }
  .pp-pos-cart   { max-height: none; }
}

@media print {
  body > *:not(#pp-ticket-print) { display: none !important; }
  #pp-ticket-print { display: block !important; }
}

/* ═══════════════════════════════════════════════════════════════
   Pantalla completa + Header + Logout (v1.2)
   ═══════════════════════════════════════════════════════════════ */

/* Forzar ancho completo — sobrescribir contenedor del tema */
.pp-fullscreen,
.pp-fullscreen ~ * { box-sizing: border-box; }

body:has(.pp-fullscreen) .entry-content,
body:has(.pp-fullscreen) .post-content,
body:has(.pp-fullscreen) .page-content,
body:has(.pp-fullscreen) article,
body:has(.pp-fullscreen) .container,
body:has(.pp-fullscreen) .wp-block-group,
body:has(.pp-fullscreen) main { max-width: 100% !important; width: 100% !important; padding: 0 !important; margin: 0 !important; }

.pp-fullscreen {
  width: 100%;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  border-radius: 0 !important;
}

/* ── Header ───────────────────────────────────────────────────── */
.pp-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: var(--pp-primary);
  padding: 10px 20px;
  gap: 12px;
  flex-shrink: 0;
  flex-wrap: wrap;
}

.pp-header-left { display: flex; align-items: center; gap: 10px; }
.pp-header-logo { height: 36px; object-fit: contain; }
.pp-header-icon { font-size: 1.6rem; line-height: 1; }
.pp-header-title { color: #fff; font-size: 1rem; font-weight: 700; letter-spacing: .02em; }

.pp-header-right { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.pp-header-user { color: rgba(255,255,255,.75); font-size: .85rem; }

.pp-logout-btn {
  color: rgba(255,255,255,.85) !important;
  border-color: rgba(255,255,255,.35) !important;
  font-size: .78rem !important;
  padding: 5px 12px !important;
}
.pp-logout-btn:hover { background: rgba(255,255,255,.15) !important; color: #fff !important; }

/* Nav sin border-radius arriba cuando hay header */
.pp-fullscreen .pp-nav { border-radius: 0; }
.pp-fullscreen .pp-section { border-radius: 0; flex: 1; }

/* ── Texto de ayuda ───────────────────────────────────────────── */
.pp-help-text {
  background: #e8f4fd;
  border-left: 4px solid var(--pp-accent2);
  border-radius: 6px;
  padding: 10px 14px;
  font-size: .875rem;
  color: var(--pp-text);
  margin-bottom: 16px;
}

/* ── Grid de tipos (tarjetas) ─────────────────────────────────── */
.pp-tipo-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 14px;
}

.pp-tipo-card {
  background: var(--pp-card);
  border: 2px solid var(--pp-border);
  border-radius: var(--pp-radius);
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  transition: var(--pp-transition);
}
.pp-tipo-card:hover { border-color: var(--pp-accent); box-shadow: var(--pp-shadow); }

.pp-tipo-card-top { display: flex; align-items: center; gap: 10px; }
.pp-tipo-card-icono { font-size: 1.8rem; line-height: 1; }
.pp-tipo-card-nombre { font-weight: 700; color: var(--pp-primary); font-size: .95rem; }
.pp-tipo-card-uv {
  display: inline-block;
  background: var(--pp-primary);
  color: #fff;
  font-size: .7rem;
  font-weight: 700;
  border-radius: 20px;
  padding: 2px 10px;
  text-transform: uppercase;
  letter-spacing: .04em;
  align-self: flex-start;
}
.pp-tipo-card-desc { font-size: .82rem; color: var(--pp-muted); }
.pp-tipo-card-actions { display: flex; gap: 6px; margin-top: 4px; }

/* ── Selector de unidad de venta ──────────────────────────────── */
.pp-unidad-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 8px;
  margin-top: 6px;
}

.pp-unidad-opt {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 12px 8px;
  border: 2px solid var(--pp-border);
  border-radius: 10px;
  cursor: pointer;
  transition: var(--pp-transition);
  text-align: center;
  background: #fafbfc;
  user-select: none;
}
.pp-unidad-opt:hover { border-color: var(--pp-accent); background: #fff8f2; }
.pp-unidad-opt.selected { border-color: var(--pp-accent); background: #fff3e6; box-shadow: 0 0 0 3px rgba(232,137,43,.15); }
.pp-unidad-opt-icono { font-size: 1.5rem; line-height: 1; }
.pp-unidad-opt-label { font-size: .75rem; font-weight: 600; color: var(--pp-text); line-height: 1.3; }

/* ── Info box de unidad seleccionada ──────────────────────────── */
.pp-info-box {
  background: #f0f7ff;
  border: 1px solid #c8e0f5;
  border-radius: 8px;
  padding: 10px 14px;
  font-size: .85rem;
  color: var(--pp-text);
}

/* ── Badge tipo seleccionado en modal producto ────────────────── */
.pp-tipo-selected-info {
  background: #e8f4fd;
  border: 1px solid #c8e0f5;
  border-radius: 8px;
  padding: 10px 14px;
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: .875rem;
}
.pp-tipo-selected-info .pp-tip-icono { font-size: 1.4rem; }
.pp-tipo-selected-info .pp-tip-uv { font-weight: 700; color: var(--pp-primary); }
.pp-tipo-selected-info .pp-tip-label { color: var(--pp-muted); font-size: .8rem; }

/* ═══════════════════════════════════════════════════════════════
   FIXES v1.3
   ═══════════════════════════════════════════════════════════════ */

/* FIX 1: Logo centrado en login */
.pp-login-logo {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  margin-bottom: 18px;
}
.pp-login-logo img {
  max-height: 80px;
  max-width: 220px;
  object-fit: contain;
  display: block;
  margin: 0 auto;
}

/* FIX 2: Ocultar TODO lo del tema cuando hay panel fullscreen */
/* Header / navbar del tema */
body:has(.pp-fullscreen) header:not(.pp-header),
body:has(.pp-fullscreen) .site-header,
body:has(.pp-fullscreen) .masthead,
body:has(.pp-fullscreen) #masthead,
body:has(.pp-fullscreen) .navbar,
body:has(.pp-fullscreen) nav:not(.pp-nav),
body:has(.pp-fullscreen) #site-navigation,
body:has(.pp-fullscreen) .top-bar,
body:has(.pp-fullscreen) .header-area,
body:has(.pp-fullscreen) #header,
body:has(.pp-fullscreen) .hero,
body:has(.pp-fullscreen) .page-hero,
body:has(.pp-fullscreen) .entry-header,
body:has(.pp-fullscreen) .wp-site-blocks > header,
/* Footer */
body:has(.pp-fullscreen) footer,
body:has(.pp-fullscreen) .site-footer,
body:has(.pp-fullscreen) #colophon,
body:has(.pp-fullscreen) #footer,
/* Sidebars */
body:has(.pp-fullscreen) aside,
body:has(.pp-fullscreen) .sidebar,
body:has(.pp-fullscreen) #secondary,
/* Breadcrumbs / page titles */
body:has(.pp-fullscreen) .page-title,
body:has(.pp-fullscreen) .breadcrumbs,
body:has(.pp-fullscreen) .breadcrumb,
body:has(.pp-fullscreen) .woocommerce-breadcrumb {
  display: none !important;
}

/* Quitar padding/margin del body y del contenedor de página */
body:has(.pp-fullscreen) {
  padding: 0 !important;
  margin: 0 !important;
  overflow-x: hidden;
}
body:has(.pp-fullscreen) #page,
body:has(.pp-fullscreen) #content,
body:has(.pp-fullscreen) .site,
body:has(.pp-fullscreen) .site-content,
body:has(.pp-fullscreen) main,
body:has(.pp-fullscreen) #main,
body:has(.pp-fullscreen) .main-content,
body:has(.pp-fullscreen) article,
body:has(.pp-fullscreen) .entry-content,
body:has(.pp-fullscreen) .post-content,
body:has(.pp-fullscreen) .page-content,
body:has(.pp-fullscreen) .container,
body:has(.pp-fullscreen) .container-fluid,
body:has(.pp-fullscreen) .wp-block-group,
body:has(.pp-fullscreen) [class*="container"] {
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  float: none !important;
}

/* Mismo tratamiento para el shortcode de login */
body:has(#pp-login-fullscreen) header,
body:has(#pp-login-fullscreen) .site-header,
body:has(#pp-login-fullscreen) #masthead,
body:has(#pp-login-fullscreen) footer,
body:has(#pp-login-fullscreen) .site-footer,
body:has(#pp-login-fullscreen) #colophon,
body:has(#pp-login-fullscreen) aside,
body:has(#pp-login-fullscreen) .sidebar,
body:has(#pp-login-fullscreen) nav:not(.pp-nav),
body:has(#pp-login-fullscreen) .hero,
body:has(#pp-login-fullscreen) .entry-header {
  display: none !important;
}
body:has(#pp-login-fullscreen) {
  overflow: hidden;
  padding: 0 !important;
  margin: 0 !important;
}
body:has(#pp-login-fullscreen) #page,
body:has(#pp-login-fullscreen) #content,
body:has(#pp-login-fullscreen) main,
body:has(#pp-login-fullscreen) article,
body:has(#pp-login-fullscreen) .entry-content {
  padding: 0 !important;
  margin: 0 !important;
  max-width: 100% !important;
}

/* FIX 3: Modal de confirmación propio (reemplaza confirm() del navegador) */
.pp-confirm-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.6);
  backdrop-filter: blur(3px);
  z-index: 9999999;
  align-items: center;
  justify-content: center;
}
.pp-confirm-overlay.open { display: flex !important; }

.pp-confirm-box {
  background: #fff;
  border-radius: 16px;
  padding: 28px 32px;
  max-width: 380px;
  width: 90%;
  text-align: center;
  box-shadow: 0 20px 60px rgba(0,0,0,.3);
  animation: ppModalIn .2s cubic-bezier(.34,1.56,.64,1);
}
.pp-confirm-box h4 {
  margin: 0 0 8px;
  font-size: 1.1rem;
  color: var(--pp-primary);
}
.pp-confirm-box p {
  margin: 0 0 22px;
  color: var(--pp-muted);
  font-size: .9rem;
  line-height: 1.5;
}
.pp-confirm-btns {
  display: flex;
  gap: 10px;
  justify-content: center;
}

/* ═══════════════════════════════════════════════════════════════
   KADENCE THEME — Overrides completos (v1.4)
   ═══════════════════════════════════════════════════════════════ */

/* ── Ocultar header de Kadence ─────────────────────────────────── */
body:has(.pp-fullscreen) #masthead,
body:has(.pp-fullscreen) .site-header-wrap,
body:has(.pp-fullscreen) .site-top-header-wrap,
body:has(.pp-fullscreen) .kadence-sticky-header,
body:has(.pp-fullscreen) #kt-sticky-header,
body:has(.pp-fullscreen) .kadence-sticky-header-inner,
body:has(#pp-login-fullscreen) #masthead,
body:has(#pp-login-fullscreen) .site-header-wrap,
body:has(#pp-login-fullscreen) .site-top-header-wrap,
body:has(#pp-login-fullscreen) .kadence-sticky-header,
body:has(#pp-login-fullscreen) #kt-sticky-header { display: none !important; }

/* ── Ocultar footer de Kadence ─────────────────────────────────── */
body:has(.pp-fullscreen) #colophon,
body:has(.pp-fullscreen) .site-footer,
body:has(.pp-fullscreen) .kadence-footer-inner,
body:has(#pp-login-fullscreen) #colophon,
body:has(#pp-login-fullscreen) .site-footer { display: none !important; }

/* ── Quitar padding-top que Kadence pone por el sticky header ──── */
body:has(.pp-fullscreen),
body:has(#pp-login-fullscreen) {
  padding-top: 0 !important;
  margin-top:  0 !important;
}
body:has(.pp-fullscreen) #page,
body:has(#pp-login-fullscreen) #page { padding-top: 0 !important; }

/* ── Resetear el wrapper principal de Kadence ──────────────────── */
body:has(.pp-fullscreen) #wrapper,
body:has(.pp-fullscreen) #inner-wrap,
body:has(.pp-fullscreen) .kadence-inner-wrap,
body:has(.pp-fullscreen) #content,
body:has(.pp-fullscreen) #primary,
body:has(.pp-fullscreen) .content-area,
body:has(.pp-fullscreen) .site-content,
body:has(#pp-login-fullscreen) #wrapper,
body:has(#pp-login-fullscreen) #inner-wrap,
body:has(#pp-login-fullscreen) #content,
body:has(#pp-login-fullscreen) .site-content {
  padding:    0 !important;
  margin:     0 !important;
  max-width:  100% !important;
  width:      100% !important;
}

/* ── Eliminar el contenedor con ancho máximo de Kadence ─────────── */
body:has(.pp-fullscreen) .entry-content,
body:has(.pp-fullscreen) article.page,
body:has(.pp-fullscreen) .page-content,
body:has(.pp-fullscreen) .kadence-page-wrap,
body:has(.pp-fullscreen) .wp-site-blocks,
body:has(.pp-fullscreen) .alignfull {
  max-width:  100% !important;
  width:      100% !important;
  padding:    0 !important;
  margin:     0 !important;
}

/* ── Ocultar título de página que Kadence agrega arriba ─────────── */
body:has(.pp-fullscreen) .entry-header,
body:has(.pp-fullscreen) .page-title,
body:has(.pp-fullscreen) .kadence-breadcrumbs,
body:has(.pp-fullscreen) .kadence-page-header,
body:has(#pp-login-fullscreen) .entry-header,
body:has(#pp-login-fullscreen) .page-title,
body:has(#pp-login-fullscreen) .kadence-page-header { display: none !important; }

/* ── Ocultar hero/banner de página de Kadence ───────────────────── */
body:has(.pp-fullscreen) .kadence-page-hero,
body:has(.pp-fullscreen) .entry-hero,
body:has(#pp-login-fullscreen) .kadence-page-hero,
body:has(#pp-login-fullscreen) .entry-hero { display: none !important; }

/* ── Que el article ocupe todo sin paddings de Kadence ─────────── */
body:has(.pp-fullscreen) article.type-page {
  padding: 0 !important;
  margin:  0 !important;
}

/* ═══════════════════════════════════════════════════════════════
   FIXES v1.5
   ═══════════════════════════════════════════════════════════════ */

/* FIX: Logo centrado en login — más específico */
#pp-login-fullscreen .pp-login-logo,
.pp-login-logo {
  width: 100% !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  margin: 0 auto 18px !important;
  text-align: center !important;
}
#pp-login-fullscreen .pp-login-logo img,
.pp-login-logo img {
  display: block !important;
  margin: 0 auto !important;
  max-height: 80px !important;
  max-width: 200px !important;
  object-fit: contain !important;
  float: none !important;
}

/* FIX: Confirm overlay dentro del panel (position absolute no fixed) */
.pp-panel .pp-confirm-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999999;
}

/* Credenciales de distribuidor */
.pp-credenciales-box {
  background: #f0f7ff;
  border: 1px solid #c8e0f5;
  border-radius: 10px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 4px;
}
.pp-cred-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: .9rem;
  gap: 10px;
}
.pp-cred-row span { color: var(--pp-muted); flex-shrink: 0; }
.pp-cred-row strong { color: var(--pp-primary); word-break: break-all; font-family: monospace; }
.pp-cred-row a { color: var(--pp-accent); word-break: break-all; font-size: .8rem; }

/* SKU status indicator */
#prod-sku-status { pointer-events: none; }

/* ═══════════════════════════════════════════════════════════════
   v1.6 — Cotizaciones, Reportes, Buscador
   ═══════════════════════════════════════════════════════════════ */

/* Buscador catálogo proveedor */
.pp-catalog-search {
  display: flex; gap: 10px; margin-bottom: 16px; flex-wrap: wrap;
}
.pp-catalog-search input {
  flex: 1; padding: 9px 14px; border: 1.5px solid var(--pp-border);
  border-radius: 8px; font-size: .9rem; font-family: inherit; min-width: 180px;
}
.pp-catalog-search input:focus { outline: none; border-color: var(--pp-accent); }
.pp-catalog-search select {
  padding: 9px 12px; border: 1.5px solid var(--pp-border);
  border-radius: 8px; font-size: .875rem; font-family: inherit;
}

/* Botón guardar cotización */
.pp-btn-accent { background: #6c5ce7; color: #fff; }
.pp-btn-accent:hover { background: #5a4bd1; color: #fff; }

/* Badge de estatus cotización */
.pp-badge-activa    { background: #d4edda; color: #155724; }
.pp-badge-convertida{ background: #d1ecf1; color: #0c5460; }
.pp-badge-vencida   { background: #f8d7da; color: #721c24; }
.pp-badge-cancelada { background: #e2e3e5; color: #383d41; }

/* Reportes */
.pp-reportes-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 16px;
  margin-bottom: 24px;
}
.pp-reporte-card {
  background: var(--pp-card);
  border-radius: var(--pp-radius);
  padding: 20px;
  box-shadow: var(--pp-shadow);
  border-left: 4px solid var(--pp-accent);
  display: flex; flex-direction: column; gap: 4px;
}
.pp-reporte-card.verde  { border-left-color: var(--pp-success); }
.pp-reporte-card.azul   { border-left-color: var(--pp-accent2); }
.pp-reporte-card.morado { border-left-color: #6c5ce7; }
.pp-reporte-card-label { font-size: .78rem; color: var(--pp-muted); font-weight: 600; text-transform: uppercase; letter-spacing: .05em; }
.pp-reporte-card-valor { font-size: 1.6rem; font-weight: 800; color: var(--pp-primary); line-height: 1; }
.pp-reporte-card-sub   { font-size: .8rem; color: var(--pp-muted); }

.pp-reportes-section { margin-bottom: 24px; }
.pp-reportes-section h3 { font-size: 1rem; color: var(--pp-primary); margin: 0 0 12px; padding-bottom: 8px; border-bottom: 2px solid var(--pp-border); }

/* Tabla de top productos */
.pp-top-table { width: 100%; border-collapse: collapse; font-size: .85rem; }
.pp-top-table th { background: var(--pp-primary); color:#fff; padding: 8px 12px; text-align:left; font-size:.75rem; text-transform:uppercase; }
.pp-top-table td { padding: 8px 12px; border-bottom: 1px solid var(--pp-border); }
.pp-top-table tr:last-child td { border-bottom: none; }
.pp-top-table tr:hover td { background: #f8fafc; }

/* Barras de gráfica sencilla */
.pp-bar-chart { display: flex; flex-direction: column; gap: 8px; }
.pp-bar-row { display: flex; align-items: center; gap: 10px; font-size: .82rem; }
.pp-bar-label { width: 80px; color: var(--pp-muted); flex-shrink:0; text-align:right; }
.pp-bar-track { flex: 1; background: #e8edf2; border-radius: 4px; height: 22px; overflow: hidden; }
.pp-bar-fill  { height: 100%; border-radius: 4px; background: var(--pp-accent); transition: width .6s ease; display: flex; align-items:center; padding-left: 8px; }
.pp-bar-fill.verde  { background: var(--pp-success); }
.pp-bar-fill.azul   { background: var(--pp-accent2); }
.pp-bar-val   { font-weight: 700; color: var(--pp-primary); width: 90px; flex-shrink:0; text-align:right; }

/* Cotizaciones tabla acciones */
.pp-cot-actions { display: flex; gap: 6px; flex-wrap: wrap; }
