/* SARJOS Panel — componentes reutilizables: toast, modales, botones, inputs, tablas, badges, checklist, galería */
  /* ---------- Toast (notificación flotante) ---------- */
  .toast { position: fixed; left: 50%; bottom: 32px; transform: translateX(-50%) translateY(20px);
           background: var(--verde); color: #fff; padding: 14px 24px; border-radius: 30px; font-weight: 600;
           box-shadow: 0 6px 20px rgba(0,0,0,.25); z-index: 100; opacity: 0; transition: opacity .25s, transform .25s; max-width: 90%; text-align: center; }
  .toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }
  .toast.error { background: #C0392B; }

  /* ---------- Modal de confirmación ---------- */
  .confirm-card { background: #fff; border-radius: 18px; max-width: 380px; width: 92%; padding: 28px 24px; text-align: center; box-shadow: 0 10px 30px rgba(0,0,0,.25); }
  .confirm-ico { font-size: 40px; margin-bottom: 6px; }
  .confirm-card h3 { margin: 6px 0 8px; color: var(--marron-osc); }
  .confirm-card p { color: var(--marron); margin: 0 0 22px; font-size: 15px; }
  .confirm-acciones { display: flex; gap: 12px; justify-content: center; }
  .btn-cancelar { padding: 12px 26px; border-radius: 27px; border: 1.5px solid var(--border); background: #fff; color: var(--marron-osc); font-weight: 600; cursor: pointer; }
  .btn-cancelar:hover { background: var(--crema-light); }

  /* ---------- Botón Volver al Inicio (flotante, grande y centrado abajo) ---------- */
  .home-float { position: fixed; left: 50%; bottom: 26px; transform: translateX(-50%);
                display: flex; align-items: center; gap: 10px; z-index: 90;
                background: var(--verde); color: #fff; border: none; border-radius: 32px;
                padding: 15px 30px; font-size: 16px; font-weight: 700; cursor: pointer;
                box-shadow: 0 6px 20px rgba(35,89,53,.45); transition: transform .12s, background .2s; }
  .home-float:hover { background: var(--verde-osc); transform: translateX(-50%) translateY(-2px); }
  .home-float svg { display: block; }
  .input { display: flex; align-items: center; gap: 10px; border: 1.5px solid var(--border); border-radius: 12px; padding: 0 16px; margin: 0 0 18px; background: var(--bg); height: 56px; }
  .input:focus-within { border-color: var(--verde2); }
  .input span { color: var(--marron); font-size: 20px; }
  .input input { border: none; outline: none; width: 100%; font-size: 15px; background: transparent; color: var(--marron-osc); }
  .btn-primary { width: 100%; height: 54px; background: var(--verde); color: #fff; border: none; border-radius: 27px; font-size: 16px; font-weight: 600; cursor: pointer; transition: background 0.2s; margin-top: 8px; box-shadow: 0 2px 4px rgba(0,0,0,.15); }
  .btn-primary:hover { background: var(--verde-osc); }
  .forgot-link { display: block; text-align: right; color: var(--verde2); font-size: 13px; font-weight: 600; text-decoration: none; margin: -6px 0 24px; cursor: pointer; }
  .divider { display: flex; align-items: center; margin: 24px 48px; gap: 16px; }
  .divider div { flex: 1; height: 1px; background: var(--divider); }
  .divider span { color: var(--hint); font-size: 13px; }
  .register-link { display: flex; justify-content: center; gap: 6px; margin-bottom: 24px; font-size: 14px; color: var(--marron); }
  .register-link b { color: var(--verde); cursor: pointer; }
  .err { color: var(--error, #D32F2F); font-size: 14px; min-height: 18px; margin-top: 10px; }
  /* ---------- Contenido genérico ---------- */
  main { max-width: 920px; margin: 0 auto; padding: 22px 18px 60px; }
  .seccion-tit { color: var(--verde); font-weight: 700; font-size: 13px; letter-spacing: 1px; margin: 18px 0 8px; }
  .campo { display: flex; align-items: center; gap: 10px; border: 1.5px solid var(--border); border-radius: 12px; padding: 0 14px; margin: 10px 0; background: #fff; }
  .campo span { color: var(--marron); }
  .campo input, .campo select { border: none; outline: none; padding: 13px 0; width: 100%; font-size: 15px; background: transparent; color: var(--marron-osc); }
  .tarjeta { background: var(--crema-light); border: 1px solid var(--crema); border-radius: 14px; padding: 16px; margin: 14px 0; }
  .tarjeta .cab { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
  .tarjeta .cab b { color: var(--marron-osc); }
  .tarjeta .cab .x { background: none; border: none; color: var(--error,#D32F2F); font-size: 20px; cursor: pointer; }
  .btn-outline { width: 100%; padding: 14px; background: #fff; border: 1.5px solid var(--verde); color: var(--verde); border-radius: 12px; font-weight: 700; cursor: pointer; }
  .btn-outline:hover { background: var(--crema-light); }
  .acciones { margin-top: 22px; }
  .upload-box { border: 2px dashed var(--border); border-radius: 12px; padding: 22px; margin: 14px 0; background: var(--crema-light); text-align: center; }
  .upload-box input[type=file] { width: 100%; font-size: 14px; color: var(--marron-osc); }
  .ok { color: var(--verde); font-weight: 600; }

  /* ---------- Listas / vacíos ---------- */
  .vacio { text-align: center; color: var(--marron); padding: 60px 20px; }
  .vacio .big { font-size: 54px; color: var(--marron); }
  .vacio h3 { color: var(--marron-osc); margin: 14px 0 4px; }
  table { width: 100%; border-collapse: collapse; background: #fff; border-radius: 12px; overflow: hidden; box-shadow: 0 2px 8px rgba(0,0,0,.06); }
  th { background: var(--verde); color: #fff; text-align: left; padding: 11px 14px; font-size: 13px; }
  td { padding: 10px 14px; border-top: 1px solid #f0eadf; font-size: 14px; }
  tr:hover td { background: var(--crema-light); }

  /* ---------- Filtros registro de pedidos ---------- */
  .filtros-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
  @media (max-width: 640px) { .filtros-grid { grid-template-columns: 1fr; } }

  /* ---------- Insignias de estado ---------- */
  .badge { display: inline-block; padding: 3px 10px; border-radius: 12px; font-size: 12px; font-weight: 600; white-space: nowrap; }
  .badge.pendiente   { background: #FDECC8; color: #8A6D1B; }
  .badge.despacho    { background: #D6E4FF; color: #1E4E8C; }
  .badge.completado  { background: #D8F0DE; color: #1E6B36; }
  .badge.cancelado   { background: #F6D6D6; color: #9B2C2C; }
  .badge.empacado    { background: var(--verde); color: #fff; }
  .btn-mini { padding: 6px 12px; border-radius: 8px; border: 1.5px solid var(--verde); background: #fff; color: var(--verde); font-weight: 600; font-size: 13px; cursor: pointer; white-space: nowrap; }
  .btn-mini:hover { background: var(--crema-light); }
  .btn-mini:disabled { border-color: var(--border); color: var(--hint); background: #f7f3ea; cursor: default; }

  /* ---------- Checklist de items (lista de empaque) ---------- */
  .det-row > td { background: var(--crema-light); padding: 14px 18px; }
  .check-progress { font-weight: 700; color: var(--marron-osc); margin-bottom: 10px; }
  .check-list { display: grid; gap: 8px; }
  .check-item { display: flex; align-items: center; gap: 10px; cursor: pointer; font-size: 14px; background: #fff; border: 1px solid #efe9dc; border-radius: 10px; padding: 9px 12px; }
  .check-item input { width: 20px; height: 20px; accent-color: var(--verde); cursor: pointer; }
  .check-item.done span { text-decoration: line-through; color: var(--hint); }
  .check-ready { color: var(--verde); font-weight: 700; margin-top: 10px; }
  .agotados-box { margin-top: 10px; padding: 8px 10px; border: 1px dashed var(--border); border-radius: 10px; background: #faf7f0; }
  .agotados-tit { font-size: 12px; font-weight: 600; color: #c0392b; margin-bottom: 4px; }
  .agotado-item { font-size: 12px; color: var(--hint); }
  /* ---------- Modal galería ---------- */
  .modal-bg { position: fixed; inset: 0; background: rgba(0,0,0,.55); display: flex; align-items: center; justify-content: center; z-index: 50; padding: 20px; }
  .modal { background: #fff; border-radius: 16px; max-width: 620px; width: 100%; max-height: 90vh; overflow: auto; }
  .modal .mh { background: var(--verde); color: #fff; padding: 14px 20px; display: flex; justify-content: space-between; align-items: center; }
  .modal .mh button { background: none; border: none; color: #fff; font-size: 24px; cursor: pointer; }
  .modal .mb { padding: 20px; }
  .modal .principal { width: 100%; height: 320px; object-fit: contain; background: #fff; border: 1px solid var(--divider); border-radius: 12px; }
  /* Agregar al pedido desde el zoom */
  .modal-add { display: flex; align-items: center; gap: 12px; margin-top: 14px; }
  .modal-add .stepper-lbl { font-weight: 600; color: var(--marron-osc); }
  .modal-add button.step { width: 40px; height: 40px; border-radius: 10px; border: 1.5px solid var(--verde); background: #fff; color: var(--verde); font-size: 22px; cursor: pointer; }
  .modal-add button.step:hover { background: var(--crema-light); }
  .modal-add .mqty { min-width: 46px; text-align: center; font-size: 18px; font-weight: 700; color: var(--marron-osc); }
  .modal-add .add-go { margin-left: auto; }
  .modal .minis { display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap; }
  .modal .minis img { width: 60px; height: 60px; object-fit: cover; border-radius: 8px; cursor: pointer; border: 2px solid transparent; }
  .modal .minis img.sel { border-color: var(--verde); }
  .modal-info { margin-top: 16px; }
  .modal-precio { font-weight: 700; color: var(--verde); font-size: 16px; margin: 10px 0 6px; }
  .modal-medidas { color: var(--marron-osc); font-size: 14px; line-height: 1.5; background: var(--crema-light); border: 1px solid var(--crema); border-radius: 10px; padding: 10px 12px; }
  .cat-chip { display: inline-block; background: var(--verde); color: #fff; font-size: 11px; font-weight: 600; padding: 2px 9px; border-radius: 10px; }
  .prod .meta .cat-chip { background: var(--crema); color: var(--marron-osc); margin-left: 4px; }
</style>
