/* =====================================================================================
   PEDIDOS MAIMON -- tema "fresco y calido" (Bootstrap 5.3)
   Lo usan MasterCliente (tienda) y MasterNegocio (panel). Cargar DESPUES de bootstrap.min.css.
   Paleta: coral (marca) + amarillo sol + crema; tipografia Nunito.
   ===================================================================================== */
:root {
    --pm-red: #e8434b;
    --pm-red-dark: #c9323b;
    --pm-red-soft: #ffe9e7;
    --pm-accent: #ffb703;
    --pm-accent-soft: #fff1c9;
    --pm-mint: #2a9d8f;
    --pm-mint-soft: #e0f4f1;
    --pm-ink: #2b2320;
    --pm-muted: #8a7a70;
    --pm-bg: #fff8f1;
    --pm-card: #ffffff;
    --pm-line: #f1e4d8;
    --pm-shadow: 0 8px 24px rgba(120, 70, 40, .09);
    --pm-shadow-lg: 0 18px 44px rgba(120, 70, 40, .16);
    --pm-radius: 18px;

    /* Bootstrap */
    --bs-body-font-family: 'Nunito', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --bs-body-color: var(--pm-ink);
    --bs-body-bg: var(--pm-bg);
    --bs-primary: var(--pm-red);
    --bs-primary-rgb: 232, 67, 75;
    --bs-danger: var(--pm-red);
    --bs-danger-rgb: 232, 67, 75;
    --bs-warning: var(--pm-accent);
    --bs-warning-rgb: 255, 183, 3;
    --bs-success: var(--pm-mint);
    --bs-success-rgb: 42, 157, 143;
    --bs-link-color: var(--pm-red-dark);
    --bs-link-hover-color: var(--pm-red);
    --bs-border-color: var(--pm-line);
    --bs-border-radius: .75rem;
    --bs-border-radius-lg: 1.1rem;
    --bs-secondary-color: var(--pm-muted);
    --bs-tertiary-bg: #fff3e6;
}

body {
    font-family: var(--bs-body-font-family);
    background: var(--pm-bg);
    color: var(--pm-ink);
    -webkit-font-smoothing: antialiased;
    /* evita el desplazamiento lateral en movil (la pagina no debe ser mas ancha que la pantalla) */
    overflow-x: hidden;
    max-width: 100%;
}

h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { font-weight: 800; letter-spacing: -.01em; }
h4, .h4 { font-size: 1.45rem; }
.text-muted, .text-body-secondary { color: var(--pm-muted) !important; }
.text-success { color: var(--pm-mint) !important; }
.bg-success { background-color: var(--pm-mint) !important; }
.border-success { border-color: var(--pm-mint) !important; }
::selection { background: var(--pm-accent-soft); }

/* ---------- Botones ---------- */
.btn { border-radius: 12px; font-weight: 700; letter-spacing: .005em; transition: transform .15s ease, box-shadow .2s ease, background-color .2s ease; }
.btn:active { transform: translateY(1px); }
.btn-sm { border-radius: 10px; }
.btn-lg { border-radius: 14px; }

.btn-danger, .btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--pm-red);
    --bs-btn-border-color: var(--pm-red);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--pm-red-dark);
    --bs-btn-hover-border-color: var(--pm-red-dark);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--pm-red-dark);
    --bs-btn-active-border-color: var(--pm-red-dark);
    --bs-btn-focus-shadow-rgb: 232, 67, 75;
    --bs-btn-disabled-bg: var(--pm-red);
    --bs-btn-disabled-border-color: var(--pm-red);
    box-shadow: 0 6px 16px rgba(232, 67, 75, .28);
}
.btn-danger:hover, .btn-primary:hover { box-shadow: 0 8px 20px rgba(232, 67, 75, .36); transform: translateY(-1px); }

.btn-outline-danger, .btn-outline-primary {
    --bs-btn-color: var(--pm-red-dark);
    --bs-btn-border-color: #f6c3bf;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--pm-red);
    --bs-btn-hover-border-color: var(--pm-red);
    --bs-btn-active-bg: var(--pm-red-dark);
    --bs-btn-active-border-color: var(--pm-red-dark);
}
.btn-success {
    --bs-btn-bg: var(--pm-mint);
    --bs-btn-border-color: var(--pm-mint);
    --bs-btn-hover-bg: #23857a;
    --bs-btn-hover-border-color: #23857a;
    --bs-btn-active-bg: #23857a;
    --bs-btn-active-border-color: #23857a;
    box-shadow: 0 6px 16px rgba(42, 157, 143, .25);
}
.btn-outline-success { --bs-btn-color: var(--pm-mint); --bs-btn-border-color: var(--pm-mint); --bs-btn-hover-bg: var(--pm-mint); --bs-btn-hover-border-color: var(--pm-mint); }
.btn-warning { --bs-btn-bg: var(--pm-accent); --bs-btn-border-color: var(--pm-accent); --bs-btn-hover-bg: #f5a900; --bs-btn-hover-border-color: #f5a900; --bs-btn-color: #3b2a00; }
.btn-light { --bs-btn-bg: #fff; --bs-btn-border-color: var(--pm-line); --bs-btn-hover-bg: #fff3e6; --bs-btn-hover-border-color: #f6dcc3; }
.btn-outline-secondary { --bs-btn-color: #6b5a4f; --bs-btn-border-color: #e6d6c8; --bs-btn-hover-bg: #fff3e6; --bs-btn-hover-color: var(--pm-ink); --bs-btn-hover-border-color: #e6d6c8; --bs-btn-active-bg: #ffe9d4; --bs-btn-active-color: var(--pm-ink); }

/* ---------- Formularios ---------- */
.form-control, .form-select {
    border-radius: 12px;
    border-color: #ead9ca;
    background-color: #fff;
    padding-top: .55rem; padding-bottom: .55rem;
}
.form-control:focus, .form-select:focus {
    border-color: var(--pm-red);
    box-shadow: 0 0 0 .25rem rgba(232, 67, 75, .16);
}
.form-control::placeholder { color: #b9a99d; }
.form-label { font-weight: 700; color: #5a4a40; }
.form-check-input:checked { background-color: var(--pm-red); border-color: var(--pm-red); }
.form-check-input:focus { border-color: var(--pm-red); box-shadow: 0 0 0 .25rem rgba(232, 67, 75, .16); }
.input-group-text { border-radius: 12px; border-color: #ead9ca; background: #fff8f1; }

/* ---------- Tarjetas, tablas, alertas ---------- */
.card { border: 1px solid var(--pm-line); border-radius: var(--pm-radius); background: var(--pm-card); }
.card.shadow-sm, .shadow-sm { box-shadow: var(--pm-shadow) !important; }
.card-header { background: transparent; border-bottom-color: var(--pm-line); font-weight: 800; }
.card-header:first-child { border-radius: var(--pm-radius) var(--pm-radius) 0 0; }

.table { --bs-table-hover-bg: #fff6ec; --bs-table-border-color: var(--pm-line); }
.table > thead > tr > th, .table-light, .table-light > th, .table > thead.table-light th {
    background-color: #fff3e6 !important;
    color: #7a6355;
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    font-weight: 800;
    border-bottom-color: #f1dcc6;
}
.table > tfoot.table-light > tr > td { background-color: #fff3e6 !important; }

.alert { border-radius: 14px; border-width: 0; border-left: 5px solid; }
.alert-success { background: var(--pm-mint-soft); border-left-color: var(--pm-mint); color: #14564d; }
.alert-danger { background: var(--pm-red-soft); border-left-color: var(--pm-red); color: #8d1f27; }
.alert-warning { background: var(--pm-accent-soft); border-left-color: var(--pm-accent); color: #6b4d00; }
.alert-info { background: #e6f1ff; border-left-color: #4c8dff; color: #1c3f7a; }
.alert-light { background: #fff; border-left-color: #ead9ca; }
.badge { font-weight: 800; border-radius: 999px; padding: .4em .7em; }
.badge.bg-warning { color: #3b2a00 !important; }
.badge.bg-light { background: #fff3e6 !important; }

.dropdown-menu { border: 1px solid var(--pm-line); border-radius: 16px; box-shadow: var(--pm-shadow-lg); padding: .5rem; animation: pmFade .18s ease; }
.dropdown-item { border-radius: 10px; font-weight: 600; }
.dropdown-item:hover, .dropdown-item:focus { background: #fff3e6; color: var(--pm-ink); }
@keyframes pmFade { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } }

.modal-content { border: 0; border-radius: 22px; box-shadow: var(--pm-shadow-lg); }
.modal-header, .modal-footer { border-color: var(--pm-line); }
.nav-pills .nav-link.active, .page-item.active .page-link { background-color: var(--pm-red); border-color: var(--pm-red); }
.page-link { color: var(--pm-red-dark); border-radius: 10px; }
.progress { border-radius: 99px; background: #f6e7d9; }
.progress-bar { background: var(--pm-red); }
.list-group-item { border-color: var(--pm-line); }
hr { border-color: var(--pm-line); opacity: 1; }
code { color: var(--pm-red-dark); background: #fff0ec; padding: .1em .4em; border-radius: 6px; }

/* SweetAlert2 */
.swal2-popup { border-radius: 24px !important; font-family: var(--bs-body-font-family) !important; }
.swal2-title { font-weight: 800 !important; }
.swal2-styled.swal2-confirm { border-radius: 12px !important; font-weight: 700 !important; box-shadow: 0 6px 16px rgba(232, 67, 75, .28) !important; }
.swal2-styled.swal2-cancel { border-radius: 12px !important; font-weight: 700 !important; }
.swal2-input { border-radius: 12px !important; }

/* Select2 */
.select2-container--bootstrap-5 .select2-selection { border-radius: 12px !important; border-color: #ead9ca !important; }

/* =====================================================================================
   TIENDA (MasterCliente)
   ===================================================================================== */
.pm-header {
    background: linear-gradient(135deg, #ff6a5c 0%, var(--pm-red) 48%, var(--pm-red-dark) 100%);
    box-shadow: 0 6px 22px rgba(201, 50, 59, .28);
    z-index: 1030;
    position: relative;
    overflow: visible;
}
.pm-header::before {
    content: ''; position: absolute; right: -60px; top: -90px; width: 260px; height: 260px; border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 183, 3, .38), transparent 70%); pointer-events: none;
}
.pm-header > .container { position: relative; }

.pm-brand { color: #fff; font-weight: 900; letter-spacing: -.02em; text-decoration: none; display: flex; align-items: center; gap: .6rem; white-space: nowrap; }
.pm-brand:hover { color: #fff; }
.pm-brand-ico {
    width: 42px; height: 42px; border-radius: 14px; background: #fff; color: var(--pm-red);
    display: inline-flex; align-items: center; justify-content: center; font-size: 1.35rem;
    box-shadow: 0 6px 14px rgba(0, 0, 0, .16); transform: rotate(-6deg);
}

.pm-search { display: flex; background: #fff; border-radius: 999px; overflow: hidden; box-shadow: 0 8px 22px rgba(120, 30, 20, .22); flex: 1 1 auto; padding: 4px; }
.pm-search select { border: 0; background: transparent; padding: 0 .9rem; font-size: .85rem; font-weight: 700; color: var(--pm-ink); max-width: 190px; outline: none; border-right: 1px solid var(--pm-line); border-radius: 0; box-shadow: none; }
.pm-search input[type=text] { border: 0; outline: none; flex: 1 1 auto; padding: .6rem 1rem; font-size: .95rem; min-width: 0; background: transparent; box-shadow: none; }
.pm-search button { border: 0; background: var(--pm-accent); color: #3b2a00; font-weight: 800; padding: 0 1.3rem; display: flex; align-items: center; gap: .4rem; border-radius: 999px; transition: background .2s; }
.pm-search button:hover { background: #ffa200; }

.pm-action { color: #fff !important; display: flex; align-items: center; gap: .4rem; padding: .45rem .7rem; border-radius: 12px; font-weight: 700; font-size: .9rem; text-decoration: none; transition: background .2s; }
.pm-action:hover { background: rgba(255, 255, 255, .18); }
.pm-btn-negocio { background: #fff; color: var(--pm-red-dark) !important; border-radius: 999px; font-weight: 800; font-size: .85rem; padding: .5rem .95rem; text-decoration: none; display: inline-flex; align-items: center; gap: .4rem; white-space: nowrap; box-shadow: 0 4px 12px rgba(0, 0, 0, .14); }
.pm-btn-negocio:hover { background: var(--pm-accent-soft); }

.pm-catbar { background: #fff; border-bottom: 1px solid var(--pm-line); }
.pm-catbar .scroller { display: flex; gap: .45rem; overflow-x: auto; padding: .65rem 0; scrollbar-width: none; }
.pm-catbar .scroller::-webkit-scrollbar { display: none; }
.pm-catbar a { white-space: nowrap; padding: .4rem .95rem; border-radius: 999px; font-size: .85rem; font-weight: 700; color: var(--pm-ink); text-decoration: none; background: #fff7ee; border: 1px solid #f6e3cf; transition: all .2s; }
.pm-catbar a:hover { background: var(--pm-accent-soft); border-color: #ffd97a; }
.pm-catbar a.activa { background: var(--pm-red); color: #fff; border-color: var(--pm-red); box-shadow: 0 4px 12px rgba(232, 67, 75, .3); }

body main.container { min-height: 55vh; }
body footer.bg-white { background: #fff !important; border-top: 1px solid var(--pm-line) !important; }

/* Portada */
body .pm-hero {
    background:
        radial-gradient(520px 260px at 92% 110%, rgba(255, 255, 255, .22), transparent 70%),
        radial-gradient(420px 220px at 8% -30%, rgba(255, 183, 3, .55), transparent 70%),
        linear-gradient(120deg, #ff6a5c 0%, var(--pm-red) 55%, #d2353f 100%);
    color: #fff;
    border-radius: 26px;
    box-shadow: 0 18px 40px rgba(232, 67, 75, .28);
    position: relative; overflow: hidden;
}
body .pm-hero::after { content: '🍽️'; position: absolute; right: 1.2rem; bottom: -1.2rem; font-size: 7rem; opacity: .16; transform: rotate(-12deg); pointer-events: none; }
body .pm-hero-tag { background: rgba(255, 255, 255, .22); color: #fff; font-weight: 800; }
body .pm-hero-sub { color: #ffeceb; }
body .pm-hero-points div { background: rgba(255, 255, 255, .18); border: 1px solid rgba(255, 255, 255, .3); backdrop-filter: blur(4px); border-radius: 16px; }
body .pm-hero-points i { color: var(--pm-accent-soft); }

body .pm-side { background: var(--pm-card); border: 1px solid var(--pm-line); border-radius: 22px; box-shadow: var(--pm-shadow); }
body .pm-side-title { color: var(--pm-muted); }
body .pm-cat { color: var(--pm-ink); font-weight: 700; }
body .pm-cat b { background: #fff1e2; color: #a2765a; }
body .pm-cat:hover { background: #fff4e8; }
body .pm-cat.activa { background: var(--pm-red-soft); color: var(--pm-red-dark); }
body .pm-cat.sub { border-left-color: #f1d9c1; }
body .pm-chip { border-color: #f1d9c1; background: #fff; font-weight: 700; }
body .pm-chip:hover { border-color: var(--pm-red); color: var(--pm-red-dark); background: var(--pm-red-soft); }

/* Tarjeta de producto */
body .pm-card { background: var(--pm-card); border: 1px solid var(--pm-line); border-radius: 22px; box-shadow: 0 2px 8px rgba(120, 70, 40, .05); }
body .pm-card:hover { transform: translateY(-6px); box-shadow: var(--pm-shadow-lg); border-color: transparent; }
body .pm-card-img { background: #fff0e0; }
body .pm-off { background: var(--pm-accent); color: #3b2a00; box-shadow: 0 4px 10px rgba(255, 183, 3, .45); }
body .pm-fotos { background: rgba(43, 35, 32, .62); }
body .pm-card-cat { color: var(--pm-red); }
body .pm-card-title { font-weight: 800; }
body .pm-card-store { color: var(--pm-muted); font-weight: 600; }
body .pm-price { font-weight: 900; font-size: 1.25rem; color: var(--pm-red-dark); }
body .pm-price-old { color: var(--pm-muted); }
body .pm-add { border-radius: 999px; font-weight: 800; }
body .pm-horario.cierra { color: #b86e00; }
body .pm-card.cerrada .pm-price { color: var(--pm-muted); }
body .pm-add.aspNetDisabled, body .pm-add.disabled { background: #e6d9cd; border-color: #e6d9cd; color: #fff; box-shadow: none; }
body .pm-empty { background: #fff; border: 2px dashed #f1d9c1; border-radius: 26px; }
body .pm-empty i { color: var(--pm-red); }
body .pm-pag .page-link { border: 0; color: var(--pm-ink); font-weight: 700; border-radius: 12px !important; }
body .pm-pag .active .page-link { background: var(--pm-red); color: #fff; box-shadow: 0 4px 12px rgba(232, 67, 75, .3); }
body .icon-box { background: var(--pm-red-soft); color: var(--pm-red-dark); border-radius: 14px; }

/* Mis pedidos */
body .pm-tabs { background: #fff; border-color: var(--pm-line); border-radius: 999px; box-shadow: var(--pm-shadow); }
body .pm-tabs button { border-radius: 999px; font-weight: 800; }
body .pm-tabs button.on { background: var(--pm-red); box-shadow: 0 4px 12px rgba(232, 67, 75, .3); }
body .pm-order { border-radius: 24px; border-color: var(--pm-line); box-shadow: 0 2px 8px rgba(120, 70, 40, .05); }
body .pm-order.curso { border-color: #f7c7c2; box-shadow: var(--pm-shadow); }
body .pm-step::before, body .pm-step::after { background: #eddccc; }
body .pm-step.hecho::before, body .pm-step.hecho::after { background: var(--pm-mint); }
body .pm-step.actual::after { background: var(--pm-mint); }
body .pm-step.actual::before { background: var(--pm-red); box-shadow: 0 0 0 5px rgba(232, 67, 75, .2); }
body .pm-track { border-radius: 20px; border-color: var(--pm-line); }
body .pm-track .info { background: #fff6ee; }

/* Checkout */
body .direccion-card { border: 2px solid var(--pm-line) !important; border-radius: 18px; background: #fff; }
body .direccion-card:hover { border-color: #f4a8a3 !important; background: #fff8f5; }
body .direccion-card.selected { border-color: var(--pm-red) !important; background: var(--pm-red-soft); box-shadow: 0 6px 18px rgba(232, 67, 75, .14); }
body .text-secondary { color: var(--pm-muted) !important; }

/* Carrito */
body .pmc-modal .modal-content { background: var(--pm-bg); }
body .pmc-head { background: #fff; border-bottom-color: var(--pm-line); }
body .pmc-tienda { background: #fff; border-color: var(--pm-line); border-radius: 22px; box-shadow: 0 2px 8px rgba(120, 70, 40, .05); }
body .pmc-tienda-h { background: #fff6ec; border-bottom-color: var(--pm-line); }
body .pmc-tienda-h .sub, body .pmc-unit, body .pmc-seguro { color: var(--pm-muted); }
body .pmc-estado.ok { background: var(--pm-mint-soft); color: #14564d; }
body .pmc-estado.cierra { background: var(--pm-accent-soft); color: #7a5600; }
body .pmc-estado.cerrada { background: var(--pm-red-soft); color: #8d1f27; }
body .pmc-item { border-bottom-color: #f6ebe0; }
body .pmc-img { border-color: var(--pm-line); border-radius: 16px; }
body .pmc-qty { border-color: #ead9ca; }
body .pmc-qty a:hover { background: #fff3e6; }
body .pmc-resumen { background: #fff; border-color: var(--pm-line); border-radius: 22px; box-shadow: var(--pm-shadow); }
body .pmc-fila { color: #6b5a4f; }
body .pmc-total-g .v, body .pmc-quitar:hover { color: var(--pm-red-dark); }

/* =====================================================================================
   PANEL ADMINISTRATIVO (MasterNegocio)
   ===================================================================================== */
:root { --sidebar-w: 276px; }
.app-shell { min-height: 100vh; display: flex; }

.sidebar {
    width: var(--sidebar-w);
    background: linear-gradient(180deg, #f2554f 0%, var(--pm-red) 38%, #c2303a 100%);
    color: #fff;
    position: sticky; top: 0; height: 100vh;
    overflow-y: auto; scrollbar-width: thin;
    box-shadow: 8px 0 30px rgba(201, 50, 59, .16);
}
.sidebar .brand { padding: 20px 18px 14px; border-bottom: 1px solid rgba(255, 255, 255, .16); }
.brand-logo { width: 44px; height: 44px; border-radius: 14px; background: #fff; display: flex; align-items: center; justify-content: center; box-shadow: 0 6px 14px rgba(0, 0, 0, .16); transform: rotate(-5deg); }
.brand-logo i { color: var(--pm-red) !important; }
.sidebar .brand .fw-semibold { font-weight: 900 !important; letter-spacing: -.01em; font-size: 1.05rem; }
.sidebar .px-3 > .p-3, .sidebar .mt-auto .p-3 { background: rgba(255, 255, 255, .16) !important; border: 1px solid rgba(255, 255, 255, .2); }
.sidebar a.nav-link { color: #ffe7e4; border-radius: 14px; padding: 10px 14px; margin: 3px 12px; font-weight: 700; transition: background .2s, color .2s, transform .15s; }
.sidebar a.nav-link i { width: 1.25rem; text-align: center; }
.sidebar a.nav-link:hover { background: rgba(255, 255, 255, .18); color: #fff; transform: translateX(2px); }
.sidebar a.nav-link.active { background: #fff; color: var(--pm-red-dark); box-shadow: 0 8px 18px rgba(120, 20, 25, .25); }
.sidebar .section-title { font-size: .72rem; font-weight: 800; letter-spacing: .1em; opacity: .75; padding: 16px 20px 6px; }
.sidebar .btn-light { color: var(--pm-red-dark); font-weight: 800; border-radius: 12px; }

.content-area { flex: 1; display: flex; flex-direction: column; min-width: 0; max-width: 100%; overflow-x: clip; }
.topbar { background: rgba(255, 255, 255, .88); backdrop-filter: blur(10px); border-bottom: 1px solid var(--pm-line); position: sticky; top: 0; z-index: 1020; }
.topbar .fw-semibold { font-weight: 800 !important; }
.page-wrap { padding: 22px; min-width: 0; max-width: 100%; }
.page-wrap h4 { font-weight: 900; }
.page-wrap .card { box-shadow: var(--pm-shadow); }
.card-soft { border: 1px solid var(--pm-line); border-radius: 22px; box-shadow: var(--pm-shadow); }

@media (max-width: 991.98px) {
    .sidebar { position: fixed; left: -290px; z-index: 1040; transition: left .25s ease; }
    .sidebar.show { left: 0; }
    .overlay { display: none; position: fixed; inset: 0; background: rgba(43, 35, 32, .45); z-index: 1030; }
    .overlay.show { display: block; }
    .page-wrap { padding: 14px; }
    /* evita que tablas/GridViews anchas desborden la pantalla en movil: scroll horizontal dentro de la tabla */
    .page-wrap table { display: block; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .page-wrap img, .page-wrap .card, .page-wrap .modal-dialog { max-width: 100%; }
    .pm-search select { display: none; }
}
@media (max-width: 991.98px) { .pm-search select { display: none; } }
@media (max-width: 575.98px) {
    body .pm-hero { padding: 1.3rem 1.1rem; border-radius: 22px; }
    body .pm-side { position: static; }
    .pm-brand-ico { width: 38px; height: 38px; }
}

@media (prefers-reduced-motion: reduce) {
    * { animation: none !important; transition: none !important; }
}
