:root {
  --rose: #b3121b; --rose-dark: #7d0c13; --rose-soft: #fff0f0; --plum: #3a0a0e; --plum-2: #561217;
  --gold: #f2b01e; --gold-d: #c98f06;
  --ink: #1a1a1a; --sub: #6b6b6b; --faint: #f5f5f5; --line: #e8e8e8;
  --bs-body-font-family: 'Inter', system-ui, sans-serif;
  --bs-body-bg: #f5f5f5; --bs-body-color: var(--ink);
  --bs-primary: var(--rose); --bs-primary-rgb: 179,18,27;
  --bs-link-color: var(--rose); --bs-link-hover-color: var(--rose-dark);
  --bs-border-radius: .6rem; --bs-border-color: var(--line);
}
body { font-size: .875rem; }
h4, h5, .brand { font-family: 'Playfair Display', Georgia, serif; font-weight: 700; }
h4, h5 { color: var(--ink); }
h6 { font-weight: 600; }

/* ── sidebar ── */
.sidebar { width: 240px; background: linear-gradient(180deg, var(--plum), #26070a); color: #f1dcd9; position: fixed; inset: 0 auto 0 0; display: flex; flex-direction: column; z-index: 1040; transition: transform .25s; overflow-y: auto; }
.sidebar .brand { font-size: 1.25rem; color: #fff; padding: 1.2rem 1.2rem .8rem; text-decoration: none; display: block; }
.sidebar .brand small { display: block; font: 400 .7rem 'Inter'; color: var(--gold); letter-spacing: 1.5px; text-transform: uppercase; }
.sidebar .nav-link { color: #e8cdc9; padding: .58rem 1rem; margin: 1px 10px; border-radius: .5rem; display: flex; gap: .65rem; align-items: center; transition: all .15s; font-size: .83rem; }
.sidebar .nav-link:hover { background: rgba(255,255,255,.08); color: #fff; }
.sidebar .nav-link.active { background: linear-gradient(135deg, var(--rose), #dc2f3a); color: #fff; box-shadow: 0 4px 14px rgba(179,18,27,.35), inset 3px 0 0 var(--gold); }
.sidebar .nav-sep { font-size: .65rem; letter-spacing: 1.5px; text-transform: uppercase; color: #9b6e54; margin: .9rem 1.4rem .25rem; }
.sidebar .user { margin-top: auto; padding: .9rem 1.1rem; border-top: 1px solid rgba(255,255,255,.08); font-size: .82rem; }
.content { margin-left: 240px; min-height: 100vh; }
.topbar { display: none; background: var(--plum); color: #fff; padding: .65rem 1rem; position: sticky; top: 0; z-index: 1030; }
@media (max-width: 991px) {
  .sidebar { transform: translateX(-100%); } .sidebar.open { transform: none; box-shadow: 0 0 40px rgba(0,0,0,.4); }
  .content { margin-left: 0; } .topbar { display: flex; align-items: center; gap: .8rem; }
}

/* ── card ── */
.card { border: 1px solid var(--line); border-radius: .75rem; background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.05) !important; }
.card-header { background: #fff; border-bottom: 1px solid var(--line); font-weight: 600; padding: .9rem 1.1rem; border-radius: .75rem .75rem 0 0 !important; }
.shadow-sm { box-shadow: 0 1px 4px rgba(0,0,0,.05) !important; }

/* ── table ── */
.table-responsive { border-radius: .75rem; overflow: hidden; border: 1px solid var(--line); background: #fff; }
.table { --bs-table-bg: transparent; --bs-table-cell-padding-x: 1rem; --bs-table-cell-padding-y: .75rem; margin-bottom: 0; }
.table-sm { --bs-table-cell-padding-x: .9rem; --bs-table-cell-padding-y: .55rem; }
.table > :not(caption) > * > * { padding: var(--bs-table-cell-padding-y) var(--bs-table-cell-padding-x); }
.table > tbody > tr > td { border-color: #f0f0f0; }
.table > thead th { background: var(--faint); color: var(--sub); font-weight: 600; font-size: .72rem; text-transform: uppercase; letter-spacing: .6px; border-bottom: 1px solid var(--line) !important; white-space: nowrap; }
.table-hover > tbody > tr:hover > * { --bs-table-bg-state: #fafafa; }
h5 + .table-responsive, h6 + .table-responsive, .page-title + .table-responsive { margin-top: .75rem; }
.table-responsive { margin-bottom: 1.25rem; }

/* ── form ── */
.form-control, .form-select { border-radius: .5rem; border-color: var(--line); padding: .52rem .8rem; background-color: #fff; font-size: .875rem; color: var(--ink); }
.form-control:focus, .form-select:focus { border-color: var(--rose); box-shadow: 0 0 0 .2rem rgba(179,18,27,.12); }
.form-label { font-weight: 500; font-size: .82rem; color: var(--sub); margin-bottom: .35rem; }

/* ── buttons ── */
.btn { border-radius: .5rem; font-weight: 500; padding: .48rem .95rem; font-size: .875rem; }
.btn-sm { padding: .3rem .65rem; font-size: .8rem; }
.btn-lg { padding: .65rem 1.25rem; font-size: .95rem; }
.btn-dark { background: linear-gradient(135deg, var(--rose), #dc2f3a); border: 0; color: #fff; box-shadow: 0 4px 12px rgba(179,18,27,.25); }
.btn-dark:hover, .btn-dark:focus, .btn-dark:active { background: linear-gradient(135deg, var(--rose-dark), var(--rose)) !important; color: #fff !important; }
.btn-outline-dark { --bs-btn-color: var(--ink); --bs-btn-border-color: var(--line); --bs-btn-hover-bg: var(--faint); --bs-btn-hover-border-color: #ccc; --bs-btn-active-bg: var(--faint); }
.btn-success { background: #1fa855; border-color: #1fa855; }
.btn-outline-success { --bs-btn-color: #1fa855; --bs-btn-border-color: #1fa855; --bs-btn-hover-bg: #1fa855; --bs-btn-hover-border-color: #1fa855; --bs-btn-active-bg: #1fa855; }
.btn-outline-light { --bs-btn-color: #f1dcd9; --bs-btn-border-color: rgba(255,255,255,.25); --bs-btn-hover-bg: rgba(255,255,255,.12); }

/* ── badge & alert ── */
.badge { font-weight: 500; padding: .35em .7em; border-radius: 2rem; font-size: .72rem; }
.alert { border: 1px solid transparent; border-radius: .6rem; }
.alert-success { background: #f0faf4; border-color: #c3e6d0; color: #1a5c36; }
.alert-danger  { background: #fff5f5; border-color: #fcc; color: #8b1a1a; }

/* ── pills nav ── */
.nav-pills .nav-link { border-radius: 2rem; color: var(--sub); font-size: .83rem; }
.nav-pills .nav-link.active { background: var(--rose); color: #fff; }

/* ── page title ── */
.page-title { display: flex; align-items: center; gap: .6rem; margin-bottom: 1.1rem; }
.page-title h4, .page-title h5 { margin: 0; }

/* ── stat tiles (dashboard) ── */
.stat { position: relative; overflow: hidden; padding: 1.1rem 1.2rem; border-radius: .75rem; background: #fff; border: 1px solid var(--line); }
.stat .ico { position: absolute; right: -4px; top: -4px; font-size: 3.2rem; opacity: .08; color: var(--ink); }
.stat .lbl { font-size: .72rem; text-transform: uppercase; letter-spacing: .8px; color: var(--sub); font-weight: 500; }
.stat .val { font-family: 'Playfair Display', serif; font-size: 1.6rem; font-weight: 700; color: var(--ink); }
.stat .sub { font-size: .76rem; color: var(--sub); margin-top: .12rem; }
.stat.hot { background: linear-gradient(135deg, #8f0f17, #c4161c); color: #fff; border: 0; box-shadow: 0 6px 20px rgba(143,15,23,.3) !important; }
.stat.hot .lbl { color: rgba(255,255,255,.65); }
.stat.hot .val { color: #fff; }
.stat.hot .sub { color: rgba(255,255,255,.6); }
.stat.hot .ico { color: var(--gold); opacity: .3; }

/* ── POS ── */
.prod { border: 1px solid var(--line) !important; border-radius: .75rem !important; background: #fff !important; transition: all .15s; }
.prod:hover { transform: translateY(-2px); border-color: var(--rose) !important; box-shadow: 0 6px 18px rgba(179,18,27,.13) !important; }
.prod .em { font-size: 1.6rem; line-height: 1; }
.pill { border-radius: 2rem !important; }
.cart-total { background: var(--rose-soft); border-radius: .6rem; padding: .75rem 1rem; }

/* ── logo & topbar ── */
.logo-badge { background: #fff; border-radius: .75rem; padding: .3rem; display: block; width: 96px; margin: 1rem auto .5rem; box-shadow: 0 4px 14px rgba(0,0,0,.25), 0 0 0 2px var(--gold); }
.logo-badge img { width: 100%; display: block; border-radius: .55rem; }
.sidebar .tag { text-align: center; font-size: .65rem; letter-spacing: 2px; text-transform: uppercase; color: var(--gold); margin-bottom: .5rem; }
.topbar .logo-sm { height: 32px; background: #fff; border-radius: .4rem; padding: 2px; }
.login-card .logo-login { width: 120px; display: block; margin: 0 auto .4rem; }

/* ── login ── */
.login-bg { min-height: 100vh; display: flex; align-items: center; background: radial-gradient(circle at 15% 20%, #ffe0dc 0, transparent 40%), radial-gradient(circle at 85% 80%, #fbe6b8 0, transparent 40%), #faf9f7; }
.login-card { width: 360px; border-radius: 1.2rem; padding: 2rem; background: #fff; box-shadow: 0 20px 50px rgba(125,12,19,.12); border-top: 3px solid var(--gold); }

/* ── analisis ── */
.viz-box { position: relative; }

/* ── print ── */
@media print { .sidebar, .topbar { display: none !important; } .content { margin: 0 !important; } .card { box-shadow: none !important; border: 0; } }
