:root {
    /* Marca: morado claro */
    --tt-primary: #8b5cf6;
    --tt-primary-dark: #7c3aed;
    --tt-primary-light: #c4b5fd;
    --tt-primary-soft: #f3efff;
    --tt-accent: #a78bfa;
    --tt-dark: #1e1b4b;
    --tt-sidebar: #1e1b4b;
    --tt-sidebar-hover: #2e2a6b;
    --tt-body-bg: #f6f4fb;
    --tt-card-bg: #ffffff;
    --tt-border: #e9e4f5;
    --tt-text: #1f2937;
    --tt-muted: #6b7280;
    color-scheme: light;
}

body {
    background: var(--tt-body-bg);
    color: var(--tt-text);
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

.btn-primary {
    --bs-btn-disabled-bg: var(--tt-primary);
    --bs-btn-disabled-border-color: var(--tt-primary);
    --bs-btn-bg: var(--tt-primary);
    --bs-btn-border-color: var(--tt-primary);
    --bs-btn-hover-bg: var(--tt-primary-dark);
    --bs-btn-hover-border-color: var(--tt-primary-dark);
    --bs-btn-active-bg: var(--tt-primary-dark);
    --bs-btn-active-border-color: var(--tt-primary-dark);
    --bs-btn-disabled-bg: #fdba74;
    --bs-btn-disabled-border-color: #fdba74;
}

.btn-outline-primary {
    --bs-btn-disabled-color: var(--tt-primary);
    --bs-btn-disabled-border-color: var(--tt-primary);
    --bs-btn-color: var(--tt-primary);
    --bs-btn-border-color: var(--tt-primary);
    --bs-btn-hover-bg: var(--tt-primary);
    --bs-btn-hover-border-color: var(--tt-primary);
    --bs-btn-active-bg: var(--tt-primary);
    --bs-btn-active-border-color: var(--tt-primary);
}

.text-primary { color: var(--tt-primary) !important; }
.bg-primary-soft { background: var(--tt-primary-soft) !important; }
.link-primary { color: var(--tt-primary) !important; }

/* ---------- Sidebar ---------- */
.tt-sidebar {
    width: 250px;
    min-height: 100vh;
    background: var(--tt-sidebar);
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1030;
    display: flex;
    flex-direction: column;
    transition: transform .25s ease;
}

.tt-brand {
    display: flex;
    align-items: center;
    gap: .6rem;
    padding: 1.15rem 1.25rem;
    color: #fff;
    text-decoration: none;
    border-bottom: 1px solid rgba(255,255,255,.06);
}

.tt-brand .logo {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: linear-gradient(135deg, var(--tt-primary), var(--tt-accent));
    display: grid;
    place-items: center;
    color: #fff;
    font-size: 1.1rem;
    flex: 0 0 auto;
}

.tt-brand .name { font-weight: 700; font-size: 1.15rem; letter-spacing: .2px; }
.tt-brand .sub { display: block; font-size: .68rem; color: #9ca3af; margin-top: -2px; }

.tt-nav { padding: .9rem .75rem; flex: 1; overflow-y: auto; }

.tt-nav .section {
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: #6b7280;
    padding: .9rem .65rem .35rem;
}

.tt-nav a {
    display: flex;
    align-items: center;
    gap: .65rem;
    padding: .58rem .75rem;
    border-radius: .55rem;
    color: #d1d5db;
    text-decoration: none;
    font-size: .925rem;
    margin-bottom: 2px;
}

.tt-nav a i { font-size: 1.05rem; width: 20px; text-align: center; }
.tt-nav a:hover { background: var(--tt-sidebar-hover); color: #fff; }
.tt-nav a.active { background: var(--tt-primary); color: #fff; font-weight: 600; }

.tt-sidebar-footer {
    padding: 1rem;
    border-top: 1px solid rgba(255,255,255,.06);
}

.tt-user-chip {
    display: flex;
    align-items: center;
    gap: .6rem;
    color: var(--tt-border);
    font-size: .85rem;
}

.tt-user-chip .avatar {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--tt-primary);
    color: #fff;
    display: grid;
    place-items: center;
    font-weight: 700;
    flex: 0 0 auto;
}

/* ---------- Contenido ---------- */
.tt-main { margin-left: 250px; min-height: 100vh; display: flex; flex-direction: column; }

.tt-topbar {
    background: var(--tt-card-bg);
    border-bottom: 1px solid var(--tt-border);
    padding: .8rem 1.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    position: sticky;
    top: 0;
    z-index: 1020;
}

.tt-content { padding: 1.5rem; flex: 1; }

.stat-card {
    background: var(--tt-card-bg);
    border: 1px solid var(--tt-border);
    color: var(--tt-text);
    border-radius: 1rem;
    padding: 1.1rem 1.25rem;
    height: 100%;
}

.stat-card .icon {
    width: 44px;
    height: 44px;
    border-radius: .8rem;
    display: grid;
    place-items: center;
    font-size: 1.25rem;
}

.stat-card .value { font-size: 1.45rem; font-weight: 700; line-height: 1.15; }
.stat-card .label { font-size: .8rem; color: var(--tt-muted); }

.card { border: 1px solid var(--tt-border); border-radius: 1rem; background: var(--tt-card-bg); }
.card-header { background: var(--tt-card-bg); border-bottom: 1px solid var(--tt-border); border-radius: 1rem 1rem 0 0 !important; font-weight: 600; }

.table > :not(caption) > * > * { padding: .8rem .75rem; }

/* Barras de gráfico CSS */
.chart-bars { display: flex; align-items: flex-end; gap: 12px; height: 180px; padding-top: 10px; }
.chart-bars .bar-wrap { flex: 1; display: flex; flex-direction: column; align-items: center; gap: .4rem; height: 100%; justify-content: flex-end; }
.chart-bars .bar {
    width: 100%;
    max-width: 52px;
    background: linear-gradient(180deg, var(--tt-primary), var(--tt-accent));
    border-radius: .5rem .5rem 0 0;
    min-height: 4px;
    transition: height .4s ease;
}
.chart-bars .bar-label { font-size: .72rem; color: #6b7280; }
.chart-bars .bar-value { font-size: .7rem; font-weight: 600; color: #374151; }

.progress { height: 7px; border-radius: 99px; background-color: #f1f3f5; }
.progress-bar { background: var(--tt-primary); }

/* Auth */
.auth-wrap {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 1fr 1fr;
}
.auth-wrap > * { min-width: 0; }
.auth-hero {
    background: linear-gradient(150deg, var(--tt-dark) 0%, #1e293b 55%, var(--tt-primary-dark) 130%);
    color: #fff;
    padding: 3rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
.auth-hero-img { border-radius: 1rem; overflow: hidden; box-shadow: 0 20px 50px rgba(0,0,0,.45); border: 1px solid rgba(255,255,255,.12); max-width: 620px; aspect-ratio: 16/9; }
.auth-hero-img img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; }
.auth-hero { overflow-y: auto; }
.auth-form-side { display: flex; align-items: center; justify-content: center; padding: 2rem; }

.plan-card { cursor: pointer; transition: all .15s ease; position: relative; }
.plan-card:hover { border-color: var(--tt-primary) !important; }
.plan-card input { position: absolute; opacity: 0; }
.plan-card.selected { border-color: var(--tt-primary) !important; box-shadow: 0 0 0 3px rgba(139,92,246,.18); background: var(--tt-primary-soft); }
.plan-card .badge-popular { position: absolute; top: -11px; left: 50%; transform: translateX(-50%); }

/* POS */
.pos-item {
    background: var(--tt-card-bg);
    border: 1px solid var(--tt-border);
    border-radius: .8rem;
    padding: .7rem .8rem;
    cursor: pointer;
    transition: all .12s ease;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    min-height: 72px;
}
.pos-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .6rem; }
.pos-grid .pos-item-col { min-width: 0; }
.pos-item.has-photo { padding: .45rem; }
.pos-item-img { width: 100%; aspect-ratio: 1 / 1; height: auto; object-fit: cover; border-radius: .55rem; margin-bottom: .4rem; display: block; background: #f3f4f6; }
.pos-item-thumb { width: 100%; aspect-ratio: 1 / 1; border-radius: .55rem; margin-bottom: .4rem; background: #f8fafc; display: flex; align-items: center; justify-content: center; color: #cbd5e1; font-size: 1.6rem; }
.pos-item:hover { border-color: var(--tt-primary); transform: translateY(-1px); }
.pos-item .price { color: var(--tt-primary); font-weight: 700; }
.pos-cat-title { font-size: .8rem; text-transform: uppercase; letter-spacing: .06em; color: #6b7280; font-weight: 700; margin: 1.1rem 0 .5rem; }

.cart-line { border-bottom: 1px dashed var(--tt-border); padding: .5rem 0; }
.cart-line:last-child { border-bottom: none; }

/* KDS */
.kds-card { border-radius: 1rem; border-top: 6px solid; height: 100%; }
.kds-card.k-pending { border-color: var(--tt-accent); }
.kds-card.k-preparing { border-color: #0ea5e9; }
.kds-card.k-ready { border-color: #22c55e; }
.kds-items { font-size: .95rem; }
.kds-items li { margin-bottom: .3rem; }

/* QR público */
.public-hero {
    background: linear-gradient(150deg, var(--tt-dark), #1e293b);
    color: #fff;
    padding: 2.2rem 1.2rem 4.5rem;
    text-align: center;
    position: relative;
}
.public-body { margin-top: -2.8rem; padding: 0 .8rem 3rem; }

.menu-item-row { background: var(--tt-card-bg); border: 1px solid var(--tt-border); border-radius: .9rem; padding: .8rem 1rem; }
.qty-input { width: 74px; }

/* Responsive */
@media (max-width: 991.98px) {
    .tt-sidebar { transform: translateX(-100%); }
    .tt-sidebar.show { transform: translateX(0); }
    .tt-main { margin-left: 0; }
    .auth-wrap { grid-template-columns: 1fr; }
    .auth-hero { display: none; }
}

@media print {
    .tt-sidebar, .tt-topbar, .no-print { display: none !important; }
    .tt-main { margin-left: 0; }
}


/* =========================================================
   MODO OSCURO  (html[data-theme="dark"])
   ========================================================= */
html[data-theme="dark"] {
    --tt-primary: #a78bfa;
    --tt-primary-dark: #8b5cf6;
    --tt-primary-soft: #2a2350;
    --tt-accent: #c4b5fd;
    --tt-sidebar: #12102a;
    --tt-sidebar-hover: #1e1b3f;
    --tt-body-bg: #0f0e1f;
    --tt-card-bg: #1a1830;
    --tt-border: #2c2950;
    --tt-text: #e5e3f2;
    --tt-muted: #9d99b8;
    color-scheme: dark;
    --bs-body-bg: #0f0e1f;
    --bs-body-color: #e5e3f2;
    --bs-border-color: #2c2950;
    --bs-secondary-color: #9d99b8;
    --bs-tertiary-bg: #1e1b3f;
    --bs-light-rgb: 30, 27, 63;
    --bs-dark-rgb: 229, 227, 242;
}
html[data-theme="dark"] body { background: var(--tt-body-bg); color: var(--tt-text); }
html[data-theme="dark"] .tt-topbar { background: var(--tt-card-bg); border-color: var(--tt-border); }
html[data-theme="dark"] .card, html[data-theme="dark"] .modal-content, html[data-theme="dark"] .dropdown-menu,
html[data-theme="dark"] .list-group-item, html[data-theme="dark"] .offcanvas, html[data-theme="dark"] .toast { background: var(--tt-card-bg); color: var(--tt-text); border-color: var(--tt-border); }
html[data-theme="dark"] .card-header, html[data-theme="dark"] .card-footer, html[data-theme="dark"] .modal-header, html[data-theme="dark"] .modal-footer { background: var(--tt-card-bg); border-color: var(--tt-border); }
html[data-theme="dark"] .table { --bs-table-bg: transparent; --bs-table-color: var(--tt-text); --bs-table-border-color: var(--tt-border); --bs-table-hover-bg: #221f40; --bs-table-hover-color: var(--tt-text); --bs-table-striped-bg: #1e1b3a; color: var(--tt-text); }
html[data-theme="dark"] .table-light, html[data-theme="dark"] .table thead.table-light th { --bs-table-bg: #221f40; --bs-table-color: var(--tt-muted); background: #221f40 !important; color: var(--tt-muted) !important; border-color: var(--tt-border); }
html[data-theme="dark"] .form-control, html[data-theme="dark"] .form-select, html[data-theme="dark"] .input-group-text { background: #14122a; color: var(--tt-text); border-color: var(--tt-border); }
html[data-theme="dark"] .form-control:focus, html[data-theme="dark"] .form-select:focus { background: #14122a; color: var(--tt-text); border-color: var(--tt-primary); box-shadow: 0 0 0 .2rem rgba(167,139,250,.25); }
html[data-theme="dark"] .form-control::placeholder { color: #6f6b8f; }
html[data-theme="dark"] .form-check-input { background-color: #14122a; border-color: #3f3b6a; }
html[data-theme="dark"] .btn-light { background: #221f40; border-color: #2c2950; color: var(--tt-text); }
html[data-theme="dark"] .btn-light:hover { background: #2c2950; color: #fff; }
html[data-theme="dark"] .btn-outline-secondary { color: #b9b5d6; border-color: #3f3b6a; }
html[data-theme="dark"] .btn-outline-secondary:hover { background: #2c2950; color: #fff; }
html[data-theme="dark"] .btn-outline-dark { color: #d6d3ea; border-color: #3f3b6a; }
html[data-theme="dark"] .bg-white, html[data-theme="dark"] .bg-light { background: var(--tt-card-bg) !important; }
html[data-theme="dark"] .text-dark { color: var(--tt-text) !important; }
html[data-theme="dark"] .text-secondary, html[data-theme="dark"] .text-muted { color: var(--tt-muted) !important; }
html[data-theme="dark"] .border, html[data-theme="dark"] .border-top, html[data-theme="dark"] .border-bottom, html[data-theme="dark"] .border-start, html[data-theme="dark"] .border-end { border-color: var(--tt-border) !important; }
html[data-theme="dark"] .badge.bg-light { background: #2c2950 !important; color: var(--tt-text) !important; border-color: #3f3b6a !important; }
html[data-theme="dark"] .badge.bg-warning { color: #1f1b3a !important; }
html[data-theme="dark"] .alert-success { background: #12301f; color: #a7f3d0; border-color: #1d4d33; }
html[data-theme="dark"] .alert-danger { background: #3a1520; color: #fecdd3; border-color: #5c1f2e; }
html[data-theme="dark"] .alert-warning { background: #3a2c0f; color: #fde68a; border-color: #5a4614; }
html[data-theme="dark"] .alert-info { background: #0f2b3a; color: #bae6fd; border-color: #164a63; }
html[data-theme="dark"] .page-link { background: var(--tt-card-bg); border-color: var(--tt-border); color: var(--tt-text); }
html[data-theme="dark"] .progress { background: #2c2950; }
html[data-theme="dark"] .btn-close { filter: invert(1) grayscale(1); }
html[data-theme="dark"] hr { border-color: var(--tt-border); opacity: 1; }
html[data-theme="dark"] a:not(.btn):not(.nav-link):not(.page-link):not(.badge) { color: var(--tt-accent); }
html[data-theme="dark"] .pin-box { background: linear-gradient(160deg, #221f40, #1a1830); border-color: #3f3b6a; }
html[data-theme="dark"] .pin-pad button { background: linear-gradient(180deg, #2c2950, #221f40); color: #e5e3f2; border-color: #3f3b6a; box-shadow: 0 4px 0 #14122a; }
html[data-theme="dark"] .pin-pad button.muted { color: #b9b5d6; }
html[data-theme="dark"] .pin-dots span { background: #14122a; }
html[data-theme="dark"] #waiter-bar { background: var(--tt-card-bg) !important; }
html[data-theme="dark"] .pos-item, html[data-theme="dark"] .menu-item-card { background: var(--tt-card-bg); border-color: var(--tt-border); color: var(--tt-text); }

/* Botón de tema */
.theme-toggle { width: 34px; height: 31px; display: grid; place-items: center; border-radius: .5rem; }
.theme-toggle .bi-sun-fill { display: none; }
html[data-theme="dark"] .theme-toggle .bi-sun-fill { display: inline; }
html[data-theme="dark"] .theme-toggle .bi-moon-stars-fill { display: none; }

html[data-theme="dark"] .bg-success.bg-opacity-10, html[data-theme="dark"] .bg-primary.bg-opacity-10, html[data-theme="dark"] .bg-info.bg-opacity-10, html[data-theme="dark"] .bg-warning.bg-opacity-10 { --bs-bg-opacity: .2; }
html[data-theme="dark"] .stat-card .icon { filter: saturate(.9); }

/* PWA */
.pwa-offline{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);background:#1f1b2e;color:#fff;padding:10px 18px;border-radius:999px;font-size:.9rem;z-index:2000;box-shadow:0 10px 30px rgba(0,0,0,.25)}
@media (display-mode: standalone){ .pwa-hide-standalone{display:none!important} }

/* Iconos de notificación barra superior */
.tt-nb { position:relative; border:1px solid var(--tt-primary) !important; color:var(--tt-primary) !important; background:transparent !important; }
.tt-nb:hover { background:var(--tt-primary-soft) !important; }
.tt-nb .nb-badge { position:absolute; top:-7px; right:-7px; min-width:18px; height:18px; padding:0 5px; border-radius:999px; background:var(--tt-primary); color:#fff; font-size:.65rem; font-weight:700; display:grid; place-items:center; line-height:1; border:2px solid var(--tt-bg, #fff); }
.tt-nb .nb-badge.zero { background:#9ca3af; }
.tt-nb.ping { animation:nbping 1s ease-in-out 4; }
@keyframes nbping { 0%,100% { transform:scale(1); } 50% { transform:scale(1.15); box-shadow:0 0 0 6px rgba(139,92,246,.25); } }

/* ---- Sidebar: grupos con submenú ---- */
.tt-grp .tt-grp-t { position: relative; }
.tt-grp .tt-chev { font-size: .75rem !important; width: auto !important; transition: transform .2s; }
.tt-grp.open .tt-chev { transform: rotate(180deg); }
.tt-grp .tt-sub { display: none; margin: 0 0 .25rem 1.15rem; padding-left: .55rem; border-left: 1px solid rgba(255,255,255,.12); }
.tt-grp.open .tt-sub { display: block; }
.tt-grp .tt-sub a { padding: .42rem .65rem; font-size: .86rem; color: #b8bcc8; }
.tt-grp .tt-sub a i { font-size: .85rem; width: 14px; }
.tt-grp .tt-sub a.active { background: rgba(255,255,255,.1); color: #fff; }
.tt-grp.open > .tt-grp-t { color: #fff; }

/* ---- Drawer lateral de orden ---- */
#tt-drawer-bg { pointer-events: none; position: fixed; inset: 0; background: rgba(15,23,42,.35); z-index: 1060; opacity: 0; visibility: hidden; transition: opacity .2s; }
#tt-drawer-bg.show { opacity: 1; visibility: visible; pointer-events: auto; }
#tt-drawer:not(.show) { pointer-events: none; visibility: hidden; }
#tt-drawer { position: fixed; top: 0; right: 0; height: 100vh; width: min(620px, 96vw); background: var(--bs-body-bg, #fff); z-index: 1061; box-shadow: -12px 0 40px rgba(0,0,0,.18); transform: translateX(100%); transition: transform .25s ease; overflow-y: auto; }
#tt-drawer.show { transform: translateX(0); }
body.tt-drawer-open { overflow: hidden; }
.od-steps { display: flex; align-items: center; justify-content: space-between; }
.od-step { width: 34px; height: 34px; border-radius: 50%; border: 2px solid #e5e7eb; display: flex; align-items: center; justify-content: center; color: #9ca3af; background: #fff; font-size: .95rem; flex-shrink: 0; }
.od-step.done { border-color: var(--tt-primary); color: var(--tt-primary); background: #f5f3ff; }
.od-step.cur { border-color: #84cc16; color: #65a30d; background: #f7fee7; box-shadow: 0 0 0 3px #ecfccb; }
.od-line { flex: 1; height: 2px; background: #e5e7eb; margin: 0 4px; }
.od-line.done { background: var(--tt-primary); }
html[data-theme="dark"] .od-step { background: #1f2937; border-color: #374151; }
html[data-theme="dark"] .od-step.done { background: #312e81; }
html[data-theme="dark"] .od-step.cur { background: #365314; box-shadow: none; }
.ocard { cursor: pointer; }

/* ---- POS: sin stock ---- */
.pos-item.oos { opacity: .55; filter: grayscale(.6); position: relative; }
.pos-item.oos::after { content: attr(data-oos); position: absolute; top: 6px; right: 6px; background: #dc3545; color: #fff; font-size: .62rem; font-weight: 700; padding: 2px 6px; border-radius: 4px; }

/* Anti-congelamiento: el fondo oscuro de los modales NUNCA intercepta clics (se cierra con los botones). Una capa huérfana ya no puede bloquear la pantalla. */
.modal-backdrop, .offcanvas-backdrop { pointer-events: none !important; }
.modal:not(.show) { pointer-events: none !important; }

/* Paginación: compacta, morada, sin flechas gigantes */
.pagination { margin: 0; --bs-pagination-active-bg: var(--tt-primary); --bs-pagination-active-border-color: var(--tt-primary); --bs-pagination-color: var(--tt-primary); --bs-pagination-focus-box-shadow: none; }
.pagination .page-link { border-radius: .5rem !important; margin: 0 2px; font-size: .85rem; padding: .3rem .65rem; }
.pagination svg { width: 1em; height: 1em; vertical-align: -.125em; }
nav[role="navigation"] > div.flex { display: none !important; } /* resto de la vista Tailwind por si quedara */
html[data-theme="dark"] .pagination .page-link { background: #1b1730; border-color: #2d2850; color: #c4b5fd; }
html[data-theme="dark"] .pagination .page-item.disabled .page-link { background: #15122a; color: #6b6785; }
html[data-theme="dark"] .pagination .page-item.active .page-link { background: var(--tt-primary); color: #fff; }

/* Tooltips: legibles en claro y oscuro */
.tooltip { --bs-tooltip-bg: #1f1b3a; --bs-tooltip-color: #fff; --bs-tooltip-opacity: 1; --bs-tooltip-border-radius: .5rem; --bs-tooltip-padding-x: .6rem; --bs-tooltip-padding-y: .35rem; font-weight: 600; font-size: .8rem; z-index: 2100; }
.tooltip .tooltip-inner { box-shadow: 0 8px 20px -6px rgba(0,0,0,.45); }
html[data-theme="dark"] .tooltip { --bs-tooltip-bg: #c4b5fd; --bs-tooltip-color: #1a1530; }
html[data-theme="dark"] .tooltip .tooltip-inner { border: 1px solid #a78bfa; }

/* ===== Panel Super Admin: tarjetas 3D pastel (mismo estilo que Reportes/Perfil) ===== */
body.is-admin .card { border:1px solid rgba(255,255,255,.75); border-radius:18px; box-shadow:0 1px 0 rgba(255,255,255,.9) inset, 0 12px 28px -14px rgba(15,23,42,.35), 0 3px 0 rgba(0,0,0,.05); transition:transform .15s, box-shadow .15s; }
body.is-admin .card:hover { transform:translateY(-2px); box-shadow:0 1px 0 rgba(255,255,255,.9) inset, 0 18px 34px -14px rgba(15,23,42,.4), 0 3px 0 rgba(0,0,0,.05); }
body.is-admin .card > .card-header { background:rgba(255,255,255,.4); border-bottom:1px solid rgba(0,0,0,.06); font-weight:700; border-radius:18px 18px 0 0; }
body.is-admin .card > .card-footer { background:rgba(255,255,255,.4); border-top:1px solid rgba(0,0,0,.06); border-radius:0 0 18px 18px; }
body.is-admin .card .list-group-item, body.is-admin .card .table { background:transparent; --bs-table-bg:transparent; }
body.is-admin .card .form-control, body.is-admin .card .form-select { background:rgba(255,255,255,.8); border-color:rgba(0,0,0,.08); }
/* rotación de colores pastel */
body.is-admin .card { background:linear-gradient(135deg,#ede9fe,#f5f3ff); color:#3b0764; }
body.is-admin .row > [class*="col"]:nth-child(4n+2) > .card, body.is-admin .card.pc-sky   { background:linear-gradient(135deg,#e0f2fe,#f0f9ff); color:#0c4a6e; }
body.is-admin .row > [class*="col"]:nth-child(4n+3) > .card, body.is-admin .card.pc-mint  { background:linear-gradient(135deg,#dcfce7,#f0fdf4); color:#14532d; }
body.is-admin .row > [class*="col"]:nth-child(4n+4) > .card, body.is-admin .card.pc-amber { background:linear-gradient(135deg,#fef3c7,#fffbeb); color:#78350f; }
body.is-admin .card .text-secondary { color:inherit !important; opacity:.65; }
body.is-admin .card .card-header .text-primary { color:inherit !important; opacity:.8; }
body.is-admin .card .badge.bg-light { background:rgba(255,255,255,.6) !important; color:inherit !important; }
body.is-admin .card .table th { color:inherit; opacity:.7; border-color:rgba(0,0,0,.08); }
body.is-admin .card .table td { color:inherit; border-color:rgba(0,0,0,.06); }
body.is-admin .card .table-hover tbody tr:hover td { background:rgba(255,255,255,.35); --bs-table-accent-bg:transparent; }
/* modo oscuro */
html[data-theme="dark"] body.is-admin .card { border-color:rgba(255,255,255,.08); box-shadow:0 12px 28px -14px rgba(0,0,0,.7); background:linear-gradient(135deg,#2e1f5e,#1e1b3a); color:#ede9fe; }
html[data-theme="dark"] body.is-admin .row > [class*="col"]:nth-child(4n+2) > .card, html[data-theme="dark"] body.is-admin .card.pc-sky   { background:linear-gradient(135deg,#0f3a52,#0f2333); color:#e0f2fe; }
html[data-theme="dark"] body.is-admin .row > [class*="col"]:nth-child(4n+3) > .card, html[data-theme="dark"] body.is-admin .card.pc-mint  { background:linear-gradient(135deg,#123d2a,#0f2a1f); color:#dcfce7; }
html[data-theme="dark"] body.is-admin .row > [class*="col"]:nth-child(4n+4) > .card, html[data-theme="dark"] body.is-admin .card.pc-amber { background:linear-gradient(135deg,#4a3410,#2a200f); color:#fef3c7; }
html[data-theme="dark"] body.is-admin .card > .card-header, html[data-theme="dark"] body.is-admin .card > .card-footer { background:rgba(0,0,0,.18); border-color:rgba(255,255,255,.08); }
html[data-theme="dark"] body.is-admin .card .form-control, html[data-theme="dark"] body.is-admin .card .form-select { background:rgba(0,0,0,.3); border-color:rgba(255,255,255,.12); color:#f3f4f6; }
html[data-theme="dark"] body.is-admin .card .form-control::placeholder { color:rgba(255,255,255,.4); }
html[data-theme="dark"] body.is-admin .card .table th, html[data-theme="dark"] body.is-admin .card .table td { border-color:rgba(255,255,255,.08); }
html[data-theme="dark"] body.is-admin .card .table-hover tbody tr:hover td { background:rgba(255,255,255,.06); }
html[data-theme="dark"] body.is-admin .card .list-group-item { color:inherit; border-color:rgba(255,255,255,.08); }
html[data-theme="dark"] body.is-admin .card .badge.bg-light { background:rgba(255,255,255,.12) !important; color:#e5e7eb !important; }
/* el perfil y los modales conservan su propio estilo */
body.is-admin .modal .card, body.is-admin .card.pf-card { transform:none; }

/* POS: botón de pago rápido */
.pos-fast { background:linear-gradient(135deg,#f59e0b,#f97316); border:0; color:#fff; line-height:1.15; box-shadow:0 4px 12px rgba(249,115,22,.35); }
.pos-fast:hover, .pos-fast:focus { background:linear-gradient(135deg,#f97316,#ea580c); color:#fff; }
html[data-theme="dark"] .pos-fast { color:#fff; }
