/* Promociones de sucursal (promociones.php). Estilo propio de la pantalla: todo va bajo .pr / .pr-modal
   para no tocar el resto de Kapital. sistema.css fuerza .form-control a 20px: aquí se corrige. */
.pr, .pr-modal {
  --pr-fondo: #f5f7fa;
  --pr-surface: #ffffff;
  --pr-borde: #e3e8ef;
  --pr-borde-2: #eef1f5;
  --pr-texto: #1e293b;
  --pr-texto-2: #475569;
  --pr-muted: #8a96a8;
  --pr-acento: #2563eb;
  --pr-acento-2: #1d4ed8;
  --pr-acento-suave: #eff4ff;
  --pr-ok: #15803d; --pr-ok-suave: #e8f7ee;
  --pr-alerta: #b45309; --pr-alerta-suave: #fef6e7;
  --pr-peligro: #c02626; --pr-peligro-suave: #fdecec;
  --pr-pos: #7c3aed; --pr-pos-suave: #f3edff;
  /* Tipo de promoción: siempre el mismo color */
  --pr-t1: #2563eb; --pr-t1-suave: #eff4ff;
  --pr-t2: #7c3aed; --pr-t2-suave: #f3edff;
  --pr-t3: #c2410c; --pr-t3-suave: #fff1e8;
  --pr-radio: 8px;
  color: var(--pr-texto);
  font-size: 13px;
}

.demo, #demo-setting { display: none !important; }
#content.pr { padding: 18px 20px 40px; background: var(--pr-fondo); min-height: calc(100vh - 100px); }
.pr [hidden], .pr-modal [hidden] { display: none !important; }
.pr .text-muted, .pr-modal .text-muted { color: var(--pr-muted) !important; }

/* Campos de formulario (sistema.css los deja en 20px) */
.pr .form-control, .pr-modal .form-control {
  height: 36px !important; padding: 7px 11px; font-size: 13px !important; line-height: 20px;
  color: var(--pr-texto); background: #fff; border: 1px solid #d5dce6; border-radius: 6px; box-shadow: none;
  transition: border-color .15s, box-shadow .15s;
}
.pr textarea.form-control, .pr-modal textarea.form-control { height: auto !important; }
.pr .form-control:focus, .pr-modal .form-control:focus { border-color: var(--pr-acento); box-shadow: 0 0 0 3px rgba(37, 99, 235, .15) !important; }
.pr-modal .input-group-addon { border-radius: 0 6px 6px 0; border-color: #d5dce6; background: #f3f5f8; color: var(--pr-texto-2); font-weight: 600; }
.pr-modal .input-group .form-control { border-radius: 6px 0 0 6px; }
.pr-modal label, .pr label { font-weight: 600; }

/* Botones */
.pr .btn, .pr-modal .btn { border-radius: 6px; font-weight: 600; font-size: 13px; padding: 7px 14px; line-height: 20px; transition: background-color .15s, border-color .15s, box-shadow .15s; }
.pr .btn-sm, .pr-modal .btn-sm { padding: 5px 11px; font-size: 12px; }
.pr .btn-xs, .pr-modal .btn-xs { padding: 3px 9px; font-size: 12px; line-height: 18px; border-radius: 5px; }
.pr .btn-default, .pr-modal .btn-default { background: #fff; border: 1px solid #d5dce6; color: var(--pr-texto); }
.pr .btn-default:hover, .pr-modal .btn-default:hover { background: #f5f7fa; border-color: #c3ccd8; }
.pr .btn-primary, .pr-modal .btn-primary { background: var(--pr-acento); border-color: var(--pr-acento); color: #fff; }
.pr .btn-primary:hover, .pr-modal .btn-primary:hover { background: var(--pr-acento-2); border-color: var(--pr-acento-2); }
.pr .btn:focus-visible, .pr-modal .btn:focus-visible { outline: 0; box-shadow: 0 0 0 3px rgba(37, 99, 235, .25); }
.pr .btn[disabled], .pr-modal .btn[disabled] { opacity: .55; }

/* ── Encabezado ─────────────────────────────── */
.pr-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.pr-head h1 { margin: 0; font-size: 22px; font-weight: 700; letter-spacing: -.01em; color: var(--pr-texto); }
.pr-head h1 .fa { color: var(--pr-acento); margin-right: 6px; }
.pr-head p { margin: 4px 0 0; color: var(--pr-texto-2); }

/* Contexto: tipo de sucursal, BD base y vista */
.pr-contexto { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(260px, 1.2fr) minmax(220px, .9fr); gap: 14px; padding: 14px 16px; margin-bottom: 14px; background: var(--pr-surface); border: 1px solid var(--pr-borde); border-radius: var(--pr-radio); }
.pr-campo { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.pr-campo > label { margin: 0; font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--pr-muted); }
.pr-bd { display: flex; align-items: center; gap: 8px; height: 36px; padding: 0 12px; border: 1px solid var(--pr-borde); border-radius: 6px; background: #fafbfc; font-size: 12px; white-space: nowrap; overflow: hidden; }
.pr-bd::before { content: ""; flex: 0 0 8px; height: 8px; border-radius: 50%; background: #cbd5e1; }
.pr-bd.ok::before { background: #22c55e; box-shadow: 0 0 0 3px rgba(34, 197, 94, .18); }
.pr-bd.error::before { background: #ef4444; box-shadow: 0 0 0 3px rgba(239, 68, 68, .18); }
.pr-bd .fa-database { display: none; }
.pr-bd .bd { font-family: Consolas, monospace; font-weight: 700; color: var(--pr-texto); }
.pr-bd .host { color: var(--pr-muted); font-family: Consolas, monospace; overflow: hidden; text-overflow: ellipsis; }

/* Avisos */
.pr-aviso { display: flex; gap: 10px; align-items: flex-start; padding: 11px 14px; margin-bottom: 14px; border: 1px solid #f6d7a7; border-radius: var(--pr-radio); background: var(--pr-alerta-suave); color: #7c4a03; font-size: 13px; }
.pr-banner-suc { position: relative; padding: 12px 16px 12px 18px; margin-bottom: 14px; border: 1px solid #e6dcfb; border-radius: var(--pr-radio); background: #faf7ff; color: var(--pr-texto-2); font-size: 13px; line-height: 1.55; }
.pr-banner-suc::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; border-radius: var(--pr-radio) 0 0 var(--pr-radio); background: var(--pr-pos); }
.pr-banner-suc > .fa { color: var(--pr-pos); margin-right: 4px; }
.pr-banner-suc b.suc { color: var(--pr-texto); font-size: 14px; }
.pr-banner-suc .modo { display: inline-block; padding: 1px 9px; margin: 0 6px; border-radius: 999px; font-size: 11px; font-weight: 700; color: var(--pr-ok); background: var(--pr-ok-suave); }
.pr-banner-suc .modo.pos { color: var(--pr-pos); background: var(--pr-pos-suave); }
.pr-banner-suc .aviso { display: block; margin-top: 6px; color: var(--pr-alerta); }

/* ── Tarjeta principal ──────────────────────── */
.pr-card { background: var(--pr-surface); border: 1px solid var(--pr-borde); border-radius: var(--pr-radio); box-shadow: 0 1px 2px rgba(15, 23, 42, .04); overflow: hidden; }
.pr-card-head { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 0 16px; border-bottom: 1px solid var(--pr-borde); }
.pr-tabs-l { display: flex; gap: 4px; margin-right: auto; align-self: stretch; }
.pr-tabs-l a { display: inline-flex; align-items: center; gap: 7px; padding: 14px 4px; margin-right: 14px; border-bottom: 2px solid transparent; color: var(--pr-texto-2); font-weight: 600; font-size: 13px; text-decoration: none !important; }
.pr-tabs-l a:hover { color: var(--pr-texto); }
.pr-tabs-l a.activo { color: var(--pr-acento); border-bottom-color: var(--pr-acento); }
.pr-card-acciones { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 10px 0; }
.pr-buscar { position: relative; width: 280px; max-width: 100%; }
.pr-buscar .fa { position: absolute; left: 12px; top: 11px; color: var(--pr-muted); pointer-events: none; }
.pr .pr-buscar .form-control { padding-left: 34px; }

/* Filtros por estado */
.pr-filtros { display: flex; flex-wrap: wrap; gap: 6px; padding: 12px 16px; border-bottom: 1px solid var(--pr-borde-2); background: #fbfcfd; }
.pr-filtro { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border: 1px solid var(--pr-borde); border-radius: 999px; background: #fff; color: var(--pr-texto-2); font-size: 12px; font-weight: 600; cursor: pointer; user-select: none; transition: all .15s; }
.pr-filtro:hover { border-color: #c3ccd8; color: var(--pr-texto); }
.pr-filtro b { min-width: 20px; padding: 0 6px; border-radius: 999px; background: var(--pr-borde-2); color: var(--pr-texto-2); font-size: 11px; text-align: center; }
.pr-filtro.activo { border-color: var(--pr-acento); background: var(--pr-acento-suave); color: var(--pr-acento); }
.pr-filtro.activo b { background: var(--pr-acento); color: #fff; }
.pr-filtro .punto { width: 8px; height: 8px; border-radius: 50%; }

/* Tabla de promociones */
.pr-tabla { width: 100%; margin: 0; border-collapse: collapse; }
.pr-tabla > thead > tr > th { padding: 10px 12px; border-bottom: 1px solid var(--pr-borde) !important; background: #fbfcfd; color: var(--pr-muted); font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; }
.pr-tabla > tbody > tr > td { padding: 12px; border-top: 1px solid var(--pr-borde-2); vertical-align: middle; font-size: 13px; color: var(--pr-texto); }
.pr-tabla > tbody > tr:first-child > td { border-top: 0; }
.pr-tabla > tbody > tr:hover > td { background: #fafbfe; }
.pr-tabla > tbody > tr.inactiva > td { color: var(--pr-muted); }
.pr-tabla input[type="checkbox"] { width: 16px; height: 16px; margin: 0; accent-color: var(--pr-acento); cursor: pointer; vertical-align: middle; }
.pr-nombre { font-weight: 700; font-size: 14px; color: var(--pr-texto); }
.pr-tabla tr.inactiva .pr-nombre { color: var(--pr-texto-2); }
.pr-regla { display: inline-flex; align-items: center; gap: 6px; margin-top: 5px; padding: 2px 9px; border-radius: 999px; font-size: 12px; font-weight: 700; }
.pr-regla.pr-tipo-1 { color: var(--pr-t1); background: var(--pr-t1-suave); }
.pr-regla.pr-tipo-2 { color: var(--pr-t2); background: var(--pr-t2-suave); }
.pr-regla.pr-tipo-3 { color: var(--pr-t3); background: var(--pr-t3-suave); }
.pr-tabla tr.inactiva .pr-regla { filter: grayscale(.7); opacity: .75; }
.pr-sub { display: block; margin-top: 3px; font-size: 12px; color: var(--pr-muted); }
.pr-sub .fa { margin-right: 3px; }
.pr-fecha { font-weight: 600; white-space: nowrap; font-variant-numeric: tabular-nums; }
.pr-chip { display: inline-block; padding: 2px 9px; margin: 1px 3px 1px 0; border-radius: 999px; background: var(--pr-borde-2); color: var(--pr-texto-2); font-size: 12px; font-weight: 600; white-space: nowrap; }
.pr-chip.on { background: var(--pr-acento-suave); color: var(--pr-acento); }

.pr-estado { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; white-space: nowrap; }
.pr-estado::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.st-hoy { background: var(--pr-ok-suave); color: var(--pr-ok); }
.st-vigente { background: var(--pr-acento-suave); color: var(--pr-acento); }
.st-programada { background: var(--pr-alerta-suave); color: var(--pr-alerta); }
.st-vencida { background: var(--pr-peligro-suave); color: var(--pr-peligro); }
.st-inactiva { background: #f1f3f6; color: #64748b; }
.punto.st-hoy { background: #22c55e; } .punto.st-vigente { background: var(--pr-acento); } .punto.st-programada { background: #f59e0b; }
.punto.st-vencida { background: #ef4444; } .punto.st-inactiva { background: #94a3b8; }

/* Interruptor activa / inactiva */
.pr-switch { position: relative; display: inline-block; width: 38px; height: 22px; padding: 0; border: 0; border-radius: 999px; background: #cbd5e1; cursor: pointer; vertical-align: middle; transition: background-color .18s; }
.pr-switch::after { content: ""; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(0, 0, 0, .25); transition: transform .18s; }
.pr-switch.on { background: #22c55e; }
.pr-switch.on::after { transform: translateX(16px); }
.pr-switch:focus-visible { outline: 0; box-shadow: 0 0 0 3px rgba(37, 99, 235, .3); }

.pr-acc { white-space: nowrap; text-align: right; }
.pr-icono { display: inline-grid; place-items: center; width: 32px; height: 32px; margin-left: 2px; padding: 0; border: 1px solid transparent; border-radius: 6px; background: none; color: var(--pr-texto-2); vertical-align: middle; }
.pr-icono:hover { border-color: var(--pr-borde); background: #f5f7fa; color: var(--pr-texto); }
.pr-acc .btn-sucursales { margin-left: 6px; }

.pr-vacio { text-align: center; padding: 56px 16px !important; color: var(--pr-muted); }
.pr-vacio i.fa-3x { display: block; margin-bottom: 12px; color: #cbd5e1; }
.pr-pie { display: flex; gap: 8px; padding: 12px 16px; border-top: 1px solid var(--pr-borde-2); background: #fbfcfd; color: var(--pr-muted); font-size: 12px; line-height: 1.5; }
.pr-pie .fa { margin-top: 3px; }
.pr-origen { display: inline-block; padding: 1px 8px; margin-left: 8px; border-radius: 999px; font-size: 10px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; vertical-align: 2px; }
.pr-origen.central { background: var(--pr-acento-suave); color: var(--pr-acento); }
.pr-origen.local { background: #f1f3f6; color: #64748b; }
.pr-origen.borrar { background: #fdecec; color: #c0392b; }
.pr-pendiente { margin-left: 6px; color: var(--pr-pos); }

/* Bitácora (DataTables) */
#panelBitacora { padding: 14px 16px; }
.pr-bit-barra { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 10px; }
#tablaBitacora { border-collapse: collapse !important; margin: 0 !important; }
#tablaBitacora thead th { padding: 9px 10px; border-bottom: 1px solid var(--pr-borde) !important; background: #fbfcfd; color: var(--pr-muted); font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
#tablaBitacora tbody td { padding: 9px 10px; border-top: 1px solid var(--pr-borde-2) !important; font-size: 12px; }
#tablaBitacora.table-striped > tbody > tr:nth-of-type(odd) { background: #fff; }
.pr .dataTables_wrapper .dataTables_filter { float: none; text-align: left; margin-bottom: 10px; }
.pr .dataTables_wrapper .dataTables_filter input { width: 260px; margin: 0; }
.pr .dataTables_wrapper .dataTables_info { padding-top: 12px; color: var(--pr-muted); font-size: 12px; }
.pr .dataTables_wrapper .dataTables_paginate { padding-top: 8px; }
.pr .pagination > li > a, .pr .pagination > li > span { border-color: var(--pr-borde); color: var(--pr-texto-2); }
.pr .pagination > .active > a { background: var(--pr-acento); border-color: var(--pr-acento); color: #fff; }

/* ── select2 ────────────────────────────────── */
.pr .select2-container .select2-selection--single,
.pr-modal .select2-container .select2-selection--single { height: 36px; border: 1px solid #d5dce6; border-radius: 6px; background: #fff; }
.pr .select2-container .select2-selection--single .select2-selection__rendered,
.pr-modal .select2-container .select2-selection--single .select2-selection__rendered { padding-left: 11px; padding-right: 28px; line-height: 34px; color: var(--pr-texto); font-size: 13px; }
.pr .select2-container .select2-selection--single .select2-selection__arrow,
.pr-modal .select2-container .select2-selection--single .select2-selection__arrow { height: 34px; right: 6px; }
.pr .select2-container--open .select2-selection--single,
.pr .select2-container--focus .select2-selection--single,
.pr-modal .select2-container--open .select2-selection--single,
.pr-modal .select2-container--focus .select2-selection--single { border-color: var(--pr-acento); box-shadow: 0 0 0 3px rgba(37, 99, 235, .15); }
.select2-container .select2-dropdown { border-color: #d5dce6; border-radius: 6px; box-shadow: 0 10px 30px rgba(15, 23, 42, .14); overflow: hidden; z-index: 1061; }
.select2-container .select2-search--dropdown { padding: 8px; }
.select2-container .select2-search--dropdown .select2-search__field { height: 32px; padding: 5px 9px; border: 1px solid #d5dce6; border-radius: 5px; font-size: 13px; }
.select2-container .select2-results__option { padding: 8px 12px; font-size: 13px; }
.select2-container .select2-results__option--highlighted[aria-selected] { background: var(--pr-acento-suave) !important; color: var(--pr-texto) !important; }
.select2-container .select2-results__option[aria-selected="true"] { background: #f1f5fb; font-weight: 600; }
.pr-op { display: flex; align-items: center; gap: 8px; }
.pr-op .clave { min-width: 40px; padding: 1px 6px; border-radius: 4px; background: var(--pr-borde-2); color: var(--pr-texto-2); font-size: 11px; font-weight: 700; text-align: center; }
.pr-op .tag-pos { margin-left: auto; padding: 0 7px; border-radius: 999px; background: var(--pr-pos-suave); color: var(--pr-pos); font-size: 10px; font-weight: 800; }
.pr-op .fa-database { color: var(--pr-acento); }

/* ── Modales ───────────────────────────────── */
.pr-modal .modal-dialog { margin: 24px auto; }
.pr-modal .modal-content { display: flex; flex-direction: column; max-height: calc(100vh - 48px); border: 0; border-radius: 12px; box-shadow: 0 24px 60px rgba(15, 23, 42, .28); overflow: hidden; }
.pr-modal .modal-header, .pr-modal .modal-footer { flex: 0 0 auto; }
.pr-modal .modal-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 16px 20px; border-bottom: 1px solid var(--pr-borde); background: #fff; }
.pr-modal .modal-header::before, .pr-modal .modal-header::after { display: none; }
.pr-modal .modal-header .close { order: 2; margin: 2px 0 0; font-size: 24px; color: var(--pr-muted); opacity: 1; text-shadow: none; }
.pr-modal .modal-header .close:hover { color: var(--pr-texto); }
.pr-modal .modal-title { margin: 2px 0 0; font-size: 18px; font-weight: 700; color: var(--pr-texto); }
.pr-modal .pr-mh-sub { font-size: 12px; font-weight: 600; color: var(--pr-muted); }
.pr-modal .pr-mh-sub .fa { margin-right: 4px; }
.pr-modal .modal-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 18px 20px; background: var(--pr-fondo); }
.pr-modal .modal-footer { display: flex; align-items: center; justify-content: flex-end; gap: 8px; padding: 12px 20px; border-top: 1px solid var(--pr-borde); background: #fff; }
.pr-modal .modal-footer::before, .pr-modal .modal-footer::after { display: none; }
.pr-modal .modal-footer .btn + .btn { margin-left: 0; }
.pr-modal .modal-footer .pr-izq { margin-right: auto; }
.pr-modal .form-group { margin-bottom: 14px; }
.pr-modal .form-group > label { display: block; margin-bottom: 5px; font-size: 12px; color: var(--pr-texto-2); }

/* Formulario por secciones */
.pr-sec { padding: 16px 18px; margin-bottom: 14px; background: #fff; border: 1px solid var(--pr-borde); border-radius: 10px; }
.pr-sec-tit { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px; margin-bottom: 14px; font-size: 14px; font-weight: 700; color: var(--pr-texto); }
.pr-sec-tit .num { display: inline-grid; place-items: center; width: 22px; height: 22px; margin-right: 8px; border-radius: 50%; background: var(--pr-acento-suave); color: var(--pr-acento); font-size: 12px; font-weight: 800; }
.pr-sec-sub { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px; margin: 4px 0 8px; font-size: 12px; font-weight: 700; color: var(--pr-texto-2); }

.pr-tipos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 14px; }
.pr-tipo-op { --t: var(--pr-t1); --ts: var(--pr-t1-suave); display: flex; align-items: flex-start; gap: 12px; padding: 12px 14px; border: 1.5px solid var(--pr-borde); border-radius: 10px; background: #fff; cursor: pointer; transition: border-color .15s, background-color .15s, box-shadow .15s; }
.pr-tipo-op[data-tipo="2"] { --t: var(--pr-t2); --ts: var(--pr-t2-suave); }
.pr-tipo-op[data-tipo="3"] { --t: var(--pr-t3); --ts: var(--pr-t3-suave); }
.pr-tipo-op .ico { flex: 0 0 36px; height: 36px; display: grid; place-items: center; border-radius: 9px; background: var(--ts); color: var(--t); font-size: 15px; }
.pr-tipo-op b { display: block; font-size: 14px; color: var(--pr-texto); }
.pr-tipo-op small { display: block; margin-top: 2px; color: var(--pr-muted); font-size: 12px; line-height: 1.35; }
.pr-tipo-op:hover { border-color: #c3ccd8; }
.pr-tipo-op.activo { border-color: var(--t); background: var(--ts); box-shadow: 0 0 0 3px color-mix(in srgb, var(--t) 14%, transparent); }
.pr-tipo-op.activo .ico { background: var(--t); color: #fff; }

.pr-presets { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 14px; font-size: 12px; font-weight: 600; color: var(--pr-muted); }
.pr-modal .pr-presets .btn { padding: 4px 12px; border-radius: 999px; font-size: 12px; background: #fff; border: 1px dashed #c3ccd8; color: var(--pr-texto-2); }
.pr-modal .pr-presets .btn:hover { border-style: solid; border-color: var(--pr-acento); color: var(--pr-acento); background: var(--pr-acento-suave); }
.pr-reglas { display: grid; grid-template-columns: minmax(220px, 1fr) repeat(3, 130px); gap: 12px; }
.pr-reglas .form-group { margin-bottom: 0; }

/* Interruptores de días y pedidos */
.pr-toggles { display: flex; flex-wrap: wrap; gap: 6px; }
.pr-toggles label { margin: 0; }
.pr-toggles input { position: absolute; opacity: 0; pointer-events: none; }
.pr-toggles span { display: inline-block; min-width: 54px; padding: 7px 13px; border: 1px solid #d5dce6; border-radius: 6px; background: #fff; color: var(--pr-texto-2); font-size: 13px; font-weight: 600; text-align: center; cursor: pointer; user-select: none; transition: all .12s; }
.pr-toggles span:hover { border-color: #b7c2d0; }
.pr-toggles input:checked + span { border-color: var(--pr-acento); background: var(--pr-acento); color: #fff; }
.pr-toggles input:focus-visible + span { box-shadow: 0 0 0 3px rgba(37, 99, 235, .25); }
.pr-atajos { display: inline-flex; gap: 4px; font-size: 12px; font-weight: 600; }
.pr-atajos a { padding: 2px 8px; border-radius: 999px; color: var(--pr-acento); cursor: pointer; text-decoration: none !important; }
.pr-atajos a:hover { background: var(--pr-acento-suave); }
.pr-horario { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 6px; }

/* Selector de platillos */
.pr-picker { margin-bottom: 18px; }
.pr-picker:last-child { margin-bottom: 0; }
.pr-picker-tit { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px; margin-bottom: 8px; font-size: 13px; font-weight: 700; color: var(--pr-texto); }
.pr-picker-tit small { font-weight: 500; color: var(--pr-muted); }
.pr-picker-tit .cuenta { display: inline-block; min-width: 22px; padding: 0 7px; margin-left: 6px; border-radius: 999px; background: var(--pr-acento-suave); color: var(--pr-acento); font-size: 11px; font-weight: 800; text-align: center; }
.pr-picker-tit .pk-abrir { margin-left: auto; font-size: 12px; font-weight: 600; color: var(--pr-acento); text-decoration: none !important; }
.pk-cuerpo { border: 1px solid var(--pr-borde); border-radius: 8px; overflow: hidden; background: #fff; }
.pk-elegidos { display: flex; flex-wrap: wrap; gap: 5px; min-height: 44px; max-height: 120px; padding: 8px; overflow-y: auto; background: #fafbfd; border-bottom: 1px solid var(--pr-borde); }
.pk-chip { display: inline-flex; align-items: center; gap: 6px; padding: 3px 6px 3px 10px; border-radius: 999px; background: var(--pr-acento-suave); color: var(--pr-acento-2); font-size: 12px; font-weight: 600; }
.pk-chip .x { display: inline-grid; place-items: center; width: 16px; height: 16px; border-radius: 50%; cursor: pointer; font-size: 10px; }
.pk-chip .x:hover { background: var(--pr-acento); color: #fff; }
.pk-vacio { align-self: center; padding: 0 4px; color: var(--pr-muted); font-size: 12px; }
.pk-barra { display: flex; gap: 8px; padding: 8px; border-bottom: 1px solid var(--pr-borde-2); }
.pk-buscar { position: relative; flex: 2; min-width: 0; }
.pk-buscar .fa { position: absolute; left: 11px; top: 11px; color: var(--pr-muted); font-size: 12px; pointer-events: none; }
.pr-modal .pk-buscar .form-control { padding-left: 31px; }
.pk-cat-wrap { flex: 1; min-width: 160px; }
.pk-lista { max-height: 230px; overflow-y: auto; }
.pk-item { display: flex; align-items: center; gap: 10px; margin: 0; padding: 8px 12px; border-bottom: 1px solid var(--pr-borde-2); font-weight: 400 !important; font-size: 13px; cursor: pointer; }
.pk-item:last-child { border-bottom: 0; }
.pk-item:hover { background: #f7f9fc; }
.pk-item.on { background: var(--pr-acento-suave); }
.pk-item input { width: 16px; height: 16px; margin: 0; accent-color: var(--pr-acento); }
.pk-item .nom { flex: 1; min-width: 0; color: var(--pr-texto); }
.pk-item.on .nom { font-weight: 700; }
.pk-item .nom small { margin-left: 4px; color: var(--pr-muted); font-family: Consolas, monospace; font-weight: 400; }
.pk-item .cat { color: var(--pr-muted); font-size: 12px; white-space: nowrap; }
.pk-item .precio { width: 76px; text-align: right; color: var(--pr-texto-2); font-variant-numeric: tabular-nums; }
.pk-nada { padding: 22px; text-align: center; color: var(--pr-muted); font-size: 13px; }
.pk-pie { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; padding: 8px 12px; border-top: 1px solid var(--pr-borde-2); background: #fafbfd; font-size: 12px; }
.pk-pie .pk-num { margin-right: auto; color: var(--pr-muted); }
.pk-pie a { color: var(--pr-acento); font-weight: 600; cursor: pointer; text-decoration: none !important; }

/* Resumen fijo arriba del formulario */
.pr-resumen { position: sticky; top: -18px; z-index: 5; margin: -18px -20px 16px; padding: 12px 20px; border-bottom: 1px solid var(--pr-borde); background: #fff; color: var(--pr-texto-2); font-size: 13px; line-height: 1.6; box-shadow: 0 6px 12px -10px rgba(15, 23, 42, .25); }
.pr-resumen b { color: var(--pr-texto); font-size: 14px; }
.pr-resumen .falta { padding: 0 6px; border-radius: 4px; background: var(--pr-alerta-suave); color: var(--pr-alerta); font-weight: 600; }
.pr-error { display: none; padding: 10px 14px; margin-bottom: 14px; border: 1px solid #f5c2c2; border-radius: 8px; background: var(--pr-peligro-suave); color: #991b1b; font-size: 13px; }
.pr-activar { display: flex; align-items: center; gap: 12px; padding: 14px 18px; margin-bottom: 0; background: #fff; border: 1px solid var(--pr-borde); border-radius: 10px; }
.pr-activar label { margin: 0; cursor: pointer; }
.pr-activar input { width: 16px; height: 16px; margin: 0 6px 0 0; vertical-align: -3px; accent-color: var(--pr-acento); }

/* Envío a sucursales */
.pr-envio-cont { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.pr-suc-clave { display: inline-block; min-width: 44px; padding: 1px 7px; margin-right: 8px; border-radius: 4px; background: var(--pr-borde-2); color: var(--pr-texto-2); font-size: 11px; font-weight: 800; text-align: center; }
.pr-tabla-suc { margin: 0; background: #fff; border: 1px solid var(--pr-borde); border-radius: 10px; border-collapse: separate; border-spacing: 0; overflow: hidden; }
.pr-tabla-suc > thead > tr > th { padding: 10px 12px; border-bottom: 1px solid var(--pr-borde) !important; background: #fbfcfd; color: var(--pr-muted); font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.pr-tabla-suc > tbody > tr > td { padding: 10px 12px !important; border-top: 1px solid var(--pr-borde-2) !important; vertical-align: middle !important; font-size: 13px; }
.pr-tabla-suc > tbody > tr:first-child > td { border-top: 0 !important; }
.estado-ok { color: var(--pr-ok); font-weight: 700; }
.estado-error { color: var(--pr-peligro); font-weight: 700; }
.pr-nota { margin-top: 10px; font-size: 12px; color: var(--pr-muted); }

.pr-masivo-promos { display: flex; flex-wrap: wrap; gap: 6px; }
.pr-masivo-sucs { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 8px; }
.pr-masivo-sucs label { display: flex; align-items: center; gap: 8px; margin: 0; padding: 9px 11px; border: 1px solid var(--pr-borde); border-radius: 8px; background: #fff; font-weight: 500 !important; font-size: 13px; cursor: pointer; transition: border-color .12s, background-color .12s; }
.pr-masivo-sucs label:hover { border-color: #c3ccd8; }
.pr-masivo-sucs label:has(input:checked) { border-color: var(--pr-acento); background: var(--pr-acento-suave); }
.pr-masivo-sucs input, #checkTodasSuc { width: 16px; height: 16px; margin: 0; accent-color: var(--pr-acento); }

/* Permisos especiales: body.sin-X oculta los elementos .perm-X */
body.sin-editar .perm-editar,
body.sin-enviar .perm-enviar,
body.sin-bitacora .perm-bitacora,
body.sin-editar_sucursal .perm-editar_sucursal { display: none !important; }
/* Vista de UNA sucursal: oculta lo que solo aplica a la BD base (y al revés) */
body.pr-vista-sucursal .pr-solo-base, body:not(.pr-vista-sucursal) .pr-solo-sucursal { display: none !important; }

/* SmartAdmin: avisos pequeños */
#divSmallBoxes .SmallBox { border-radius: 8px !important; }

@media (max-width: 991px) {
  .pr-contexto { grid-template-columns: 1fr 1fr; }
  .pr-reglas { grid-template-columns: 1fr 1fr 1fr; }
  .pr-reglas > :first-child { grid-column: 1 / -1; }
}
@media (max-width: 767px) {
  #content.pr { padding: 12px; }
  .pr-contexto, .pr-tipos, .pr-horario { grid-template-columns: 1fr; }
  .pr-buscar { width: 100%; }
  .pr-col-sm, .pk-item .cat { display: none; }
  .pk-barra { flex-direction: column; }
}

/* SmartAdmin pinta su propia flecha (caja gris + ícono): se reemplaza por un chevron limpio */
.pr .select2-container .select2-selection--single .select2-selection__arrow,
.pr-modal .select2-container .select2-selection--single .select2-selection__arrow { width: 30px !important; height: 34px !important; top: 0 !important; right: 2px !important; border: 0 !important; background: none !important; }
.pr .select2-selection__arrow b, .pr-modal .select2-selection__arrow b { display: none !important; }
.pr .select2-selection__arrow::after, .pr-modal .select2-selection__arrow::after { content: "\f107"; position: absolute; inset: 0; font-family: FontAwesome; font-size: 15px; line-height: 34px; text-align: center; color: var(--pr-muted); }
.pr .select2-container--open .select2-selection__arrow::after, .pr-modal .select2-container--open .select2-selection__arrow::after { content: "\f106"; color: var(--pr-acento); }
.pr, .pr-modal, .select2-container { font-family: 'Open Sans', -apple-system, 'Segoe UI', Arial, sans-serif; }

/* Pantallas medianas (1024-1280): Aplica y Platillos se ocultan; días y pedidos van bajo la vigencia */
.pr-solo-angosto { display: none !important; }
.pr-regla { white-space: nowrap; }
.pr-nombre { min-width: 170px; }
@media (max-width: 1280px) {
  .pr-tabla .pr-col-sm { display: none; }
  .pr-solo-angosto { display: block !important; }
  .pr-acc .btn-sucursales .lbl { display: none; }
  .pr-acc .btn-sucursales { padding: 5px 8px; margin-left: 2px; }
  .pr-icono { width: 28px; height: 28px; margin-left: 0; }
  #content.pr { padding-left: 14px; padding-right: 14px; }
  .pr-tabla > tbody > tr > td:first-child, .pr-tabla > thead > tr > th:first-child { padding-left: 12px; padding-right: 4px; }
  .pr-tabla > tbody > tr > td, .pr-tabla > thead > tr > th { padding-left: 10px; padding-right: 10px; }
}

/* ─── Matriz promociones × sucursales (tab "Matriz por sucursal") ─── */
#panelMatriz { padding: 14px 16px 18px; }
.pr-mx-sucs-head { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 10px; }
.pr-mx-sucs-head .btn { margin-left: auto; }
.pr-mx-sucs { grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 6px; max-height: 190px; overflow-y: auto; padding: 2px; }
.pr-mx-sucs label { padding: 6px 9px; font-size: 12px; }
.pr-mx-sucs .tag-pos { margin-left: auto; padding: 0 6px; border-radius: 4px; background: var(--pr-pos-suave); color: var(--pr-pos); font-size: 10px; font-weight: 800; }
.pr-mx-leyenda { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; margin: 14px 0 10px; font-size: 12px; color: var(--pr-texto-2); }
.pr-mx-leyenda > span { display: inline-flex; align-items: center; gap: 6px; }
.pr-mx-op { display: inline-flex; align-items: center; gap: 6px; margin: 0; font-weight: 600 !important; cursor: pointer; }
.pr-mx-op:first-of-type { margin-left: auto; }
.pr-mx-op input { margin: 0; accent-color: var(--pr-acento); }
.pr-mx-c { display: inline-block; width: 18px; height: 12px; border: 1px solid #b9c3d1; border-radius: 2px; }

.pr-mx-wrap { overflow: auto; max-height: calc(100vh - 260px); border: 1px solid var(--pr-borde); border-radius: 6px; }
.pr-mx { border-collapse: separate; border-spacing: 0; font-size: 12px; }
.pr-mx th, .pr-mx td { border-right: 1px solid var(--pr-borde); border-bottom: 1px solid var(--pr-borde); }
.pr-mx thead th { position: sticky; top: 0; z-index: 2; background: #f8fafc; padding: 6px 4px; font-weight: 700; color: var(--pr-texto-2); vertical-align: bottom; text-align: center; }
.pr-mx thead th.suc { min-width: 74px; max-width: 96px; line-height: 1.2; }
.pr-mx thead th.suc .clave { display: block; font-size: 10px; font-weight: 800; color: var(--pr-muted); }
.pr-mx thead th.suc.err { color: var(--pr-peligro); }
.pr-mx .promo { position: sticky; left: 0; z-index: 1; min-width: 260px; max-width: 360px; padding: 5px 10px; background: #fff; text-align: left; font-weight: 600; color: var(--pr-texto); }
.pr-mx thead th.promo { z-index: 3; background: #f8fafc; vertical-align: middle; }
.pr-mx .promo small { display: block; font-weight: 500; color: var(--pr-muted); font-size: 11px; }
.pr-mx tr.inactiva-base .promo { color: var(--pr-muted); }
.pr-mx .tot { min-width: 54px; text-align: center; font-weight: 700; color: var(--pr-texto-2); background: #f8fafc; }
.pr-mx tr.sec td { position: sticky; left: 0; padding: 6px 10px; background: var(--pr-borde-2); font-weight: 700; color: var(--pr-texto-2); text-transform: uppercase; font-size: 11px; letter-spacing: .03em; }
.pr-mx tbody tr:hover td.promo { background: var(--pr-acento-suave); }

.pr-mx td.c, .pr-mx-c { position: relative; }
.pr-mx td.c { height: 26px; padding: 0; text-align: center; color: #fff; }
.pr-mx td.c.on, .pr-mx-c.on { background: #2f5597; }
.pr-mx td.c.off, .pr-mx-c.off { background: repeating-linear-gradient(135deg, #c9d6ee 0 4px, #e8eef9 4px 8px); }
.pr-mx td.c.no, .pr-mx-c.no { background: #fff; }
.pr-mx td.c.err, .pr-mx-c.err { background: repeating-linear-gradient(135deg, #f3f4f6 0 4px, #e5e7eb 4px 8px); }
.pr-mx td.c.cargando { background: #fff; color: var(--pr-muted); }
.pr-mx td.c.off { color: var(--pr-acento-2); }
.pr-mx td.c .fa-clock-o { font-size: 11px; }
.pr-mx td.c.on .fa-clock-o { color: #ffd166; }

/* Diferencias con la base */
.pr-mx td.c.dif, .pr-mx-c.dif { box-shadow: inset 0 0 0 3px #f59e0b; }
.pr-mx td.c.dif .fa-exclamation { color: #fbbf24; font-weight: 700; }
.pr-mx td.c.off.dif .fa-exclamation { color: #b45309; }
.pr-mx td.c.clic { cursor: pointer; }
.pr-mx td.c.clic:hover { outline: 2px solid var(--pr-acento); outline-offset: -2px; }
.pr-mx-dif { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 10px; padding: 8px 12px; border-radius: 6px; background: var(--pr-borde-2); font-size: 12px; color: var(--pr-texto-2); }
.pr-mx-dif.hay { background: var(--pr-alerta-suave); color: var(--pr-alerta); }
.pr-mx-dif .btn { margin-left: auto; }
.pr-mx-solo-num { display: none; font-weight: 700; color: var(--pr-alerta); }
body.sin-enviar .pr-mx-solo-num { display: inline; }
.pr-dif td.base { color: var(--pr-ok); font-weight: 600; }
.pr-dif td.suc { color: var(--pr-peligro); font-weight: 600; }
.pr-dif-chip { display: inline-block; padding: 2px 8px; margin: 2px 4px 2px 0; border-radius: 999px; font-size: 12px; font-weight: 600; }
.pr-dif-chip.falta { background: var(--pr-ok-suave); color: var(--pr-ok); }
.pr-dif-chip.sobra { background: var(--pr-peligro-suave); color: var(--pr-peligro); text-decoration: line-through; }
.pr-dif-ok { padding: 14px; border-radius: 6px; background: var(--pr-ok-suave); color: var(--pr-ok); font-weight: 600; }
