/* EXODUS GRAND HOTEL — admin design system v1.6
   Palette: deep hotel green + gold accents, clean neutrals. */
:root {
  --exo-green: #0e3b2e;
  --exo-green-soft: #14503d;
  --exo-gold: #c9a227;
  --exo-gold-soft: #e8cf7a;
  --exo-ink: #1c2321;
  --exo-bg: #f4f6f5;
  --exo-card: #ffffff;
  --exo-line: #e3e8e6;
  --exo-muted: #6c7a74;
  --exo-radius: 14px;
  --exo-shadow: 0 1px 2px rgba(16,42,33,.06), 0 6px 18px rgba(16,42,33,.07);
  --exo-sidebar-w: 244px;
}

body { background: var(--exo-bg); color: var(--exo-ink); }

/* ------------------------------------------------------------ top bar */
.navbar-exo {
  background: linear-gradient(120deg, var(--exo-green) 0%, #0a2d23 100%);
  border-bottom: 2px solid var(--exo-gold);
  min-height: 58px;
}
.navbar-exo .navbar-brand { color: #fff; letter-spacing: .5px; }
.navbar-exo .navbar-brand img { height: 34px; width: auto; }
.navbar-exo .nav-ico {
  color: rgba(255,255,255,.75); font-size: 1.15rem; position: relative;
  padding: .35rem .5rem; border-radius: 8px;
}
.navbar-exo .nav-ico:hover { color: #fff; background: rgba(255,255,255,.08); }
.navbar-exo .nav-ico .badge {
  position: absolute; top: -2px; right: -4px; font-size: .62rem;
  background: var(--exo-gold); color: #211a02;
}
.topbar-user { color: rgba(255,255,255,.85); }
.topbar-user .dropdown-menu { min-width: 220px; }

/* avatars */
.avatar {
  width: 34px; height: 34px; border-radius: 50%; object-fit: cover;
  border: 2px solid var(--exo-gold); background: #dfe6e2; display: inline-block;
}
.avatar-lg { width: 96px; height: 96px; }
.avatar-sm { width: 28px; height: 28px; border-width: 1px; }
.avatar-initials {
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 50%; background: var(--exo-green); color: var(--exo-gold-soft);
  font-weight: 700; border: 2px solid var(--exo-gold); object-fit: cover;
}
.avatar-initials.avatar-sm { font-size: .7rem; }

/* ------------------------------------------------------------ sidebar */
.sidebar {
  width: var(--exo-sidebar-w); min-height: calc(100vh - 58px);
  background: linear-gradient(180deg, #10271f 0%, #0a1f18 100%);
  padding: 14px 10px 30px; flex-shrink: 0;
  position: sticky; top: 58px; align-self: flex-start;
  max-height: calc(100vh - 58px); overflow-y: auto;
}
.side-head {
  text-transform: uppercase; font-size: .66rem; letter-spacing: .12em;
  color: rgba(233, 207, 122, .55); margin: 16px 12px 6px; font-weight: 700;
}
.side-link {
  display: flex; align-items: center; gap: 10px;
  color: rgba(255,255,255,.72); text-decoration: none;
  padding: 9px 12px; border-radius: 9px; margin: 1px 0;
  font-size: .9rem; border-left: 3px solid transparent;
  transition: background .15s, color .15s;
}
.side-link i { font-size: 1.02rem; width: 20px; text-align: center; }
.side-link:hover { background: rgba(255,255,255,.07); color: #fff; }
.side-link.active {
  background: rgba(201,162,39,.16); color: var(--exo-gold-soft);
  border-left-color: var(--exo-gold); font-weight: 600;
}
.side-group-toggle { width: 100%; background: none; border: 0; text-align: left; cursor: pointer; }
.side-group-toggle .chev { margin-left: auto; transition: transform .2s; }
.side-group-toggle[aria-expanded="false"] .chev { transform: rotate(-90deg); }

/* ------------------------------------------------------------ content */
main { min-width: 0; }
.card {
  border: 1px solid var(--exo-line); border-radius: var(--exo-radius);
  box-shadow: var(--exo-shadow); background: var(--exo-card);
}
.card-header { background: transparent; border-bottom: 1px solid var(--exo-line); }
.stat-card {
  background: var(--exo-card); border: 1px solid var(--exo-line);
  border-radius: var(--exo-radius); box-shadow: var(--exo-shadow);
  padding: 18px; height: 100%; position: relative; overflow: hidden;
}
.stat-card::before {
  content: ''; position: absolute; inset: 0 auto 0 0; width: 4px;
  background: linear-gradient(var(--exo-gold), var(--exo-green));
}
.stat-label { font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; color: var(--exo-muted); }
.stat-value { font-size: 1.55rem; font-weight: 700; margin: 2px 0; }
.stat-sub { font-size: .78rem; color: var(--exo-muted); }
.stat-icon {
  position: absolute; right: 14px; top: 14px; font-size: 1.5rem;
  color: var(--exo-gold); opacity: .85;
}

/* tables */
.table { --bs-table-hover-bg: #f2f7f4; }
.table thead th { font-size: .74rem; text-transform: uppercase; letter-spacing: .06em; color: var(--exo-muted); border-bottom-width: 2px; }
.table-search { max-width: 260px; }

/* buttons */
.btn-dark { background: var(--exo-green); border-color: var(--exo-green); }
.btn-dark:hover, .btn-dark:focus { background: var(--exo-green-soft); border-color: var(--exo-green-soft); }
.btn-outline-dark { color: var(--exo-green); border-color: var(--exo-green); }
.btn-outline-dark:hover { background: var(--exo-green); border-color: var(--exo-green); }
.badge.bg-dark { background: var(--exo-green) !important; }

/* ------------------------------------------------------------ toasts */
#exoToasts { position: fixed; top: 70px; right: 16px; z-index: 2000; width: 330px; }
.exo-toast {
  background: #fff; border-left: 4px solid var(--exo-green);
  border-radius: 10px; box-shadow: 0 8px 28px rgba(0,0,0,.16);
  padding: 12px 14px; margin-bottom: 10px; display: flex; gap: 10px;
  align-items: flex-start; animation: exoSlideIn .25s ease;
}
.exo-toast.error { border-left-color: #c0392b; }
.exo-toast.warning { border-left-color: var(--exo-gold); }
@keyframes exoSlideIn { from { transform: translateX(30px); opacity: 0; } to { transform: none; opacity: 1; } }

/* ------------------------------------------------------------ uploads */
.upload-drop { border: 2px dashed #b9c7c0; border-radius: 12px; padding: 14px; transition: border-color .15s, background .15s; }
.upload-drop.dragover { border-color: var(--exo-gold); background: #fdf8e7; }
.upload-drop-inner { text-align: center; color: var(--exo-muted); cursor: pointer; padding: 12px; }
.upload-drop-inner:hover { color: var(--exo-green); }
.upload-preview { position: relative; display: inline-block; }
.upload-preview img { max-height: 150px; border-radius: 10px; }
.upload-remove { position: absolute; top: -8px; right: -8px; border-radius: 50%; }
.gallery-thumb { position: relative; }
.gallery-thumb img { height: 74px; width: 104px; object-fit: cover; border-radius: 8px; }
.gallery-thumb .btn { position: absolute; top: -7px; right: -7px; padding: 0 5px; border-radius: 50%; font-size: .7rem; }

/* rooms */
.room-photo { height: 170px; object-fit: cover; width: 100%; border-radius: var(--exo-radius) var(--exo-radius) 0 0; }
.room-photo-empty {
  height: 170px; display: flex; flex-direction: column; gap: 6px;
  align-items: center; justify-content: center; color: #9aa8a1;
  background: repeating-linear-gradient(45deg,#eef2f0,#eef2f0 12px,#e6ece9 12px,#e6ece9 24px);
  border-radius: var(--exo-radius) var(--exo-radius) 0 0;
}
.rack-room { position: relative; overflow: hidden; }
.rack-room img { width: 100%; height: 64px; object-fit: cover; border-radius: 8px 8px 0 0; }

/* ------------------------------------------------------------ auth pages */
.auth-body {
  min-height: 100vh; display: flex; align-items: center; justify-content: center;
  background: #101c15 url('/assets/img/login-bg.jpg') center/cover no-repeat fixed; padding: 16px;
  position: relative;
}
.auth-overlay {
  position: fixed; inset: 0;
  background: linear-gradient(160deg, rgba(10,20,15,.78) 0%, rgba(20,40,30,.66) 55%, rgba(10,15,25,.80) 100%);
}
.auth-card {
  width: 100%; max-width: 420px; border: 0; border-radius: 16px;
  position: relative; z-index: 1;
  background: rgba(255,255,255,.97);
  backdrop-filter: blur(4px);
}
.auth-logo { max-width: 140px; width: 100%; height: auto; }

/* ------------------------------------------------------------ POS */
.product-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px;
  max-height: 65vh; overflow-y: auto;
}
.product-grid .btn { white-space: normal; }
.pos-product-img { display: block; width: 100%; height: 120px; object-fit: contain; object-position: center; box-sizing: border-box; padding: 6px; background: #fff; border-radius: 8px 8px 0 0; }
.pos-cart-table-wrap { width: 100%; overflow-x: auto; }
#cartTable { width: 100%; min-width: 405px; table-layout: fixed; margin-bottom: .5rem; }
#cartTable th, #cartTable td { vertical-align: middle; padding: .45rem .3rem; }
#cartTable th:nth-child(1), #cartTable td:nth-child(1) { width: 27%; overflow-wrap: anywhere; }
#cartTable th:nth-child(2), #cartTable td:nth-child(2) { width: 18%; }
#cartTable th:nth-child(3), #cartTable td:nth-child(3) { width: 18%; }
#cartTable th:nth-child(4), #cartTable td:nth-child(4) { width: 25%; }
#cartTable th:nth-child(5), #cartTable td:nth-child(5) { width: 12%; }
#cartTable .pos-qty-input { display: block; width: 100%; min-width: 58px; max-width: 76px; min-height: 38px; padding: .3rem .25rem; text-align: center; font-variant-numeric: tabular-nums; }
#cartTable .pos-cart-price, #cartTable .pos-cart-total { white-space: nowrap; font-size: .9rem; font-variant-numeric: tabular-nums; }
#cartTable .pos-cart-remove .btn { padding: .2rem .4rem; }
.pos-waiter-select .form-text { line-height: 1.35; }

/* empty states */
.empty-state { text-align: center; color: var(--exo-muted); padding: 40px 16px; }
.empty-state i { font-size: 2.2rem; display: block; margin-bottom: 8px; }

/* ------------------------------------------------------------ responsive */
#sidebarBackdrop { display: none; }
@media (max-width: 991.98px) {
  .sidebar {
    position: fixed !important;
    left: 0 !important;
    right: auto !important;
    top: 58px !important;
    bottom: auto !important;
    z-index: 1045;
    display: block !important;
    box-sizing: border-box;
    min-height: 0 !important;
    height: calc(100vh - 58px) !important;
    height: calc(100dvh - 58px) !important;
    max-height: calc(100vh - 58px) !important;
    max-height: calc(100dvh - 58px) !important;
    transform: translateX(-105%);
    transition: transform .22s ease;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-y: contain;
    touch-action: pan-y;
    padding-bottom: max(30px, env(safe-area-inset-bottom));
  }
  .sidebar.show { transform: none; box-shadow: 0 0 40px rgba(0,0,0,.4); }
  #sidebarBackdrop.show {
    display: block; position: fixed; inset: 58px 0 0 0;
    background: rgba(0,0,0,.45); z-index: 1044;
  }
  .stat-value { font-size: 1.25rem; }
}

/* ---------------- page loader ---------------- */
#exoPageLoader {
  position: fixed; inset: 0; z-index: 3000; display: none;
  align-items: center; justify-content: center;
  background: rgba(16, 28, 21, .35); backdrop-filter: blur(2px);
}
#exoPageLoader.show { display: flex; }
#exoPageLoader .exo-loader-box {
  background: #fff; border-radius: 12px; padding: 22px 34px; text-align: center;
  box-shadow: 0 12px 40px rgba(0,0,0,.25); color: #0e3b2e; font-weight: 600;
}
#exoPageLoader .spinner-border { width: 2.4rem; height: 2.4rem; color: #0e3b2e; }

/* ---------------- sortable tables + pager ---------------- */
table[data-sortable] th.sortable { cursor: pointer; user-select: none; white-space: nowrap; }
table[data-sortable] th.sortable::after { content: "\21C5"; margin-left: .35em; opacity: .3; font-size: .8em; }
table[data-sortable] th.sortable.sort-asc::after { content: "\2191"; opacity: 1; color: #0e3b2e; }
table[data-sortable] th.sortable.sort-desc::after { content: "\2193"; opacity: 1; color: #0e3b2e; }
table[data-sortable] th.sortable:hover { background: rgba(14, 59, 46, .06); }
.exo-pager {
  display: flex; align-items: center; gap: .25rem; flex-wrap: wrap;
  padding: .6rem .75rem; border-top: 1px solid #e5e9e7; background: #fafbfa;
  border-bottom-left-radius: .375rem; border-bottom-right-radius: .375rem;
}


/* EXODUS GRAND HOTEL — modern responsive admin refresh */
:root { --exo-radius: 14px; --exo-shadow-soft: 0 8px 28px rgba(19, 42, 33, .07); }
html { scroll-behavior: smooth; }
body { background: #f4f7f6; color: #1e2c27; -webkit-font-smoothing: antialiased; }
.navbar-exo { min-height: 60px; box-shadow: 0 2px 16px rgba(10, 32, 24, .14); }
.sidebar { border-right: 1px solid #18382d; background: linear-gradient(180deg, #10271f 0%, #0a1f18 100%); box-shadow: 4px 0 18px rgba(10, 32, 24, .12); color: #e8f0ec; }
.sidebar .side-link { color: #d5e2db; }
.sidebar .side-link i, .sidebar .side-link .chev { color: #b8cbbf; }
.sidebar .side-head { color: #a9beb2; }
.sidebar .side-link:hover { background: rgba(255,255,255,.09); color: #fff; }
.sidebar .side-link:hover i, .sidebar .side-link:hover .chev { color: #fff; }
.sidebar .side-link.active, .sidebar .side-link[aria-current="page"] { background: rgba(201,162,39,.18); color: #f4df91; }
.sidebar .side-link.active i, .sidebar .side-link[aria-current="page"] i { color: #f4df91; }
.sidebar .collapse { background: transparent; }
.side-link { border-radius: 9px; margin: 2px 10px; width: calc(100% - 20px); transition: background .16s ease, color .16s ease, transform .16s ease; }
.sidebar .side-link:hover { transform: translateX(2px); background: rgba(255,255,255,.10); color: #fff; }
.sidebar .side-link.active, .sidebar .side-link[aria-current="page"] { background: rgba(201,162,39,.20); color: #f4df91; font-weight: 650; }
.sidebar .side-head { color: #a9beb2; letter-spacing: .09em; font-size: .68rem; font-weight: 800; }
main.flex-grow-1 { min-width: 0; }
.card, .dashboard-card, .stat-card, .panel, .content-card { border-color: #e5ebe8; border-radius: var(--exo-radius); box-shadow: var(--exo-shadow-soft); }
.card-header { background: #fff; border-bottom-color: #edf1ef; font-weight: 650; }
.card-body { min-width: 0; }
.btn { border-radius: 9px; font-weight: 600; transition: transform .12s ease, box-shadow .12s ease; }
.btn:not(:disabled):active { transform: translateY(1px); }
.btn-primary { box-shadow: 0 3px 8px rgba(13, 110, 253, .12); }
.form-control, .form-select, .input-group-text { border-color: #dce5e0; border-radius: 9px; min-height: 40px; }
.form-control:focus, .form-select:focus { border-color: #6fa68f; box-shadow: 0 0 0 .2rem rgba(30, 120, 78, .12); }
.form-label { color: #34473e; font-weight: 650; font-size: .88rem; }
.table-responsive { border-radius: 10px; }
.table { --bs-table-bg: transparent; vertical-align: middle; }
.table thead th { background: #f4f7f5; color: #5d6d65; font-size: .75rem; letter-spacing: .035em; text-transform: uppercase; border-bottom: 1px solid #e2e9e5; white-space: nowrap; }
.table tbody tr:hover > * { --bs-table-bg: #f8fbf9; }
.badge { font-weight: 650; letter-spacing: .01em; }
.alert { border: 0; border-radius: 12px; box-shadow: 0 4px 16px rgba(20, 40, 30, .04); }
.dropdown-menu { border: 1px solid #e4ebe7; border-radius: 12px; box-shadow: 0 12px 32px rgba(20, 40, 30, .13); padding: .45rem; }
.dropdown-item { border-radius: 7px; padding: .55rem .75rem; }
.dropdown-item:hover { background: #edf5f1; }
hr { opacity: .12; }
img { max-width: 100%; }
@media (min-width: 992px) { main.flex-grow-1 { padding: 1.5rem 1.75rem !important; } }
@media (max-width: 767.98px) {
  main.flex-grow-1 { padding: 1rem !important; }
  .card-body { padding: 1rem; }
  .table { font-size: .88rem; }
  .btn { max-width: 100%; }
  h1, .h1 { font-size: 1.55rem; }
  h2, .h2 { font-size: 1.3rem; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; } }


/* FINAL SIDEBAR OVERRIDES — Exodus Grand Hotel */
body .sidebar, body aside.sidebar, body nav.sidebar {
  background: linear-gradient(180deg, #10271f 0%, #0a1f18 100%) !important;
  background-color: #0a1f18 !important;
  color: #e8f0ec !important;
  border-right: 1px solid #18382d !important;
}
body .sidebar .side-link, body .sidebar a.side-link { color: #d5e2db !important; }
body .sidebar .side-head { color: #a9beb2 !important; }
body .sidebar .side-link:hover { background: rgba(255,255,255,.10) !important; color: #fff !important; }
body .sidebar .side-link.active, body .sidebar .side-link[aria-current="page"] {
  background: rgba(201,162,39,.20) !important; color: #f4df91 !important;
}
body .sidebar .side-link i, body .sidebar .side-link .chev { color: inherit !important; }
body .sidebar .collapse, body .sidebar .collapsing { background: transparent !important; }

/* v4.2 modern administration polish: shared by every admin page */
:root{--store-ink:#172b3a;--store-muted:#64748b;--store-line:#e5ebf1;--store-surface:#fff;--store-bg:#f4f7fb;--store-primary:#185b4b;--store-primary-2:#247764;--store-radius:16px;--store-shadow:0 8px 28px rgba(18,38,63,.055)}
body{background:var(--store-bg);color:var(--store-ink);font-feature-settings:"ss01" on}
.navbar-exo{box-shadow:0 2px 16px rgba(15,35,50,.12);backdrop-filter:saturate(140%) blur(10px)}
.sidebar{border-right:1px solid rgba(226,232,240,.9);background:#fff;box-shadow:5px 0 20px rgba(18,38,63,.025)}
.side-link{border-radius:10px;margin:2px 9px;width:calc(100% - 18px);transition:background .18s ease,color .18s ease,transform .18s ease}
.side-link:hover{transform:translateX(2px);background:#edf5f2;color:var(--store-primary)}
.side-head{letter-spacing:.09em;font-size:.66rem;font-weight:800;color:#8291a3}
main.flex-grow-1{max-width:100%;min-width:0}
main .card{border:1px solid var(--store-line);border-radius:var(--store-radius);box-shadow:var(--store-shadow);overflow:hidden;background:var(--store-surface)}
main .card-header{background:linear-gradient(180deg,#fff,#fbfcfe);border-bottom:1px solid var(--store-line);padding:1rem 1.15rem;color:#22374a}
main .card-body{padding:1.15rem}
main .table{--bs-table-bg:transparent;--bs-table-hover-bg:#f5f9f7;margin-bottom:0;color:#26384a}
main .table thead th{background:#f6f8fb;color:#637488;font-size:.72rem;text-transform:uppercase;letter-spacing:.055em;font-weight:800;border-bottom:1px solid var(--store-line);white-space:nowrap;padding:.85rem .9rem}
main .table tbody td{padding:.8rem .9rem;border-color:#edf1f5;vertical-align:middle}
main .table-responsive{border-radius:0 0 var(--store-radius) var(--store-radius)}
main .form-control,main .form-select{border-color:#d9e2eb;border-radius:10px;min-height:42px;box-shadow:none;transition:border-color .15s,box-shadow .15s}
main textarea.form-control{min-height:100px}
main .form-control:focus,main .form-select:focus{border-color:#5e9d8b;box-shadow:0 0 0 .2rem rgba(36,119,100,.12)}
main .form-label{font-size:.82rem;font-weight:700;color:#43566a;margin-bottom:.4rem}
main .btn{border-radius:10px;font-weight:650;transition:transform .15s ease,box-shadow .15s ease}
main .btn-primary,main .btn-dark{background:linear-gradient(135deg,var(--store-primary),var(--store-primary-2));border-color:var(--store-primary);color:#fff}
main .btn-primary:hover,main .btn-dark:hover{background:#124637;border-color:#124637;transform:translateY(-1px);box-shadow:0 5px 14px rgba(24,91,75,.18)}
main .btn-outline-primary{color:var(--store-primary);border-color:#b7d3ca}
main .btn-outline-primary:hover{background:#eaf4f0;color:#134b3d;border-color:#a4c9bc}
main .badge{font-weight:750;letter-spacing:.015em;padding:.42em .65em;border-radius:7px}
main .alert{border:0;border-radius:12px;box-shadow:var(--store-shadow)}
main .stat-card{height:100%;border:1px solid var(--store-line);border-radius:15px;background:linear-gradient(145deg,#fff,#fbfdfc);box-shadow:var(--store-shadow);padding:1.05rem 1.15rem;transition:transform .18s ease,box-shadow .18s ease}
main .stat-card:hover{transform:translateY(-2px);box-shadow:0 12px 32px rgba(18,38,63,.08)}
main .stat-label{color:#708196;font-size:.76rem;font-weight:800;letter-spacing:.055em;text-transform:uppercase}
main .stat-value{color:#173b32;font-size:clamp(1.45rem,2.1vw,2rem);font-weight:800;line-height:1.25;margin:.45rem 0}
main .stat-sub{font-size:.78rem;color:#7b8998}
main .list-group-item{border-color:#edf1f5}
main h1,main h2,main h3,main h4,main h5{color:#193548;letter-spacing:-.025em}
main h4{font-weight:800}
main .text-muted{color:#728195!important}
main .pagination .page-link{border-radius:8px;margin:0 2px;color:var(--store-primary)}
main .dropdown-menu{border:1px solid var(--store-line);border-radius:12px;box-shadow:0 12px 32px rgba(18,38,63,.12);padding:.45rem}
main .dropdown-item{border-radius:8px;padding:.55rem .75rem}
.store-page-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.35rem;padding:1.35rem 1.5rem;border:1px solid #dce9e4;border-radius:18px;background:radial-gradient(circle at 95% 5%,rgba(57,137,111,.13),transparent 28%),linear-gradient(120deg,#fff,#f3faf6);box-shadow:var(--store-shadow)}
.store-page-head h2{font-size:clamp(1.4rem,2vw,1.9rem);font-weight:850;margin:0;color:#163d33}
.store-page-head p{margin:.4rem 0 0;color:#6a7c8a;font-size:.9rem;max-width:760px}
.store-eyebrow{font-size:.68rem;letter-spacing:.14em;font-weight:850;color:#2e8069;margin-bottom:.35rem}
.store-card{border-radius:16px!important}
.store-kpi{display:flex;flex-direction:column;gap:.2rem;padding:1.15rem 1.2rem;background:#fff;border:1px solid var(--store-line);border-radius:15px;box-shadow:var(--store-shadow);height:100%}
.store-kpi span{font-size:.75rem;text-transform:uppercase;letter-spacing:.07em;color:#718096;font-weight:800}
.store-kpi strong{font-size:2rem;line-height:1.2;color:#1b4f40}
.store-kpi small{color:#718096}
.store-kpi.danger strong{color:#b42318}.store-kpi.warning strong{color:#a15c00}
.store-alert-icon{display:flex;align-items:center;justify-content:center;flex:0 0 42px;width:42px;height:42px;border-radius:12px;background:#eef5f2;color:#17664f;font-size:1.15rem}
.store-alert-icon.critical{background:#fff0ef;color:#bd2c25}.store-alert-icon.warning{background:#fff7e7;color:#a96708}.store-alert-icon.info{background:#eef6ff;color:#2767a7}
@media(max-width:767.98px){main.flex-grow-1{padding:1rem!important}.store-page-head{padding:1rem;border-radius:14px;align-items:flex-start}.store-page-head>.btn,.store-page-head>div:last-child{width:100%}main .card-header{padding:.85rem 1rem}main .card-body{padding:1rem}main .table thead th,main .table tbody td{padding:.65rem .7rem}main .stat-card{padding:.9rem}.navbar-brand{max-width:60vw;overflow:hidden}.navbar-brand span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}}
@media print{body{background:#fff!important}#sidebarBackdrop,.sidebar,.navbar-exo,.btn,.store-page-head>.btn{display:none!important}main.flex-grow-1{padding:0!important}.card,.stat-card{box-shadow:none!important;border:1px solid #ccc!important;break-inside:avoid}}

/* Cashier and finance workspaces: consistent modern surfaces and responsive tables */
.cashier-page,.cashier-list,.drawer-ui,.cashier-report{color:var(--ink,#17243a)}
.cashier-page .panel,.cashier-list .sheet,.drawer-ui .panel,.cashier-report .panel,.card{border-radius:14px}
.cashier-page .table,.cashier-list .table,.drawer-ui .table,.cashier-report .table{vertical-align:middle}
.cashier-page .table thead th,.cashier-list .table thead th,.drawer-ui .table thead th,.cashier-report .table thead th{font-size:.78rem;text-transform:uppercase;letter-spacing:.035em;color:#63718a;font-weight:750;white-space:nowrap}
.cashier-page .btn,.cashier-list .btn,.drawer-ui .btn,.cashier-report .btn{border-radius:9px;font-weight:650}
.cashier-page .form-control,.cashier-page .form-select,.cashier-list .form-control,.cashier-list .form-select,.drawer-ui .form-control,.drawer-ui .form-select,.cashier-report .form-control{border-color:#dce3ed;border-radius:9px}
@media(max-width:767.98px){.cashier-page .hero,.cashier-list .page-hero,.drawer-ui .banner,.cashier-report .head{padding:17px}.cashier-page .metric-value{font-size:1.2rem}.cashier-page .table>:not(caption)>*>*{padding:10px}.cashier-page .quick{padding:12px}}


/* EXODUS UI refresh — shared across every authenticated role/page. */
:root { --exo-bg:#f5f7f8; --exo-line:#e4e9ec; --exo-radius:16px; --exo-shadow:0 2px 4px rgba(19,42,34,.035),0 10px 28px rgba(19,42,34,.055); --exo-focus:rgba(20,80,61,.18); }
html { scroll-behavior:smooth; }
body { -webkit-font-smoothing:antialiased; }
main,.main-content,.content-wrapper { min-width:0; }
.card,.stat-card,.panel,.sheet,.cashier-report .panel,.cashier-list .sheet,.drawer-ui .panel { border-radius:var(--exo-radius)!important; border-color:var(--exo-line)!important; box-shadow:var(--exo-shadow); }
.card-header,.panel-head { padding:1rem 1.15rem; }
.card-body { padding:clamp(1rem,2vw,1.5rem); }
.table-responsive { border-radius:inherit; }
.table { --bs-table-bg:transparent; vertical-align:middle; }
.table thead th { white-space:nowrap; padding-top:.9rem; padding-bottom:.9rem; }
.table tbody td { border-color:#edf0f2; }
.table-hover tbody tr { transition:background-color .15s ease; }
.form-control,.form-select,.input-group-text { border-color:#d9e1e4; border-radius:10px; min-height:40px; }
.form-control:focus,.form-select:focus { border-color:var(--exo-green-soft); box-shadow:0 0 0 .22rem var(--exo-focus); }
textarea.form-control { min-height:auto; }
.btn { border-radius:10px; font-weight:600; transition:transform .14s ease,box-shadow .14s ease,background-color .14s ease; }
.btn:not(:disabled):hover { transform:translateY(-1px); }
.btn:focus-visible,a:focus-visible,button:focus-visible { outline:3px solid var(--exo-gold-soft); outline-offset:2px; }
.btn-primary { box-shadow:0 3px 9px rgba(13,110,253,.12); }
.btn-dark,.btn-success { box-shadow:0 3px 9px rgba(14,59,46,.12); }
.badge { letter-spacing:.01em; font-weight:650; }
.alert { border-radius:12px; }
.modal-content { border:1px solid var(--exo-line); border-radius:18px; box-shadow:0 18px 60px rgba(12,30,23,.2); }
.modal-header,.modal-footer { border-color:var(--exo-line); }
.dropdown-menu { border:1px solid var(--exo-line); border-radius:12px; box-shadow:var(--exo-shadow); padding:.4rem; }
.dropdown-item { border-radius:8px; padding:.55rem .75rem; }
.pagination .page-link { border-radius:8px; margin:0 2px; }
.page-title,main h1,main h2 { letter-spacing:-.025em; }
.stat-card { transition:transform .16s ease,box-shadow .16s ease; }
.stat-card:hover { transform:translateY(-2px); box-shadow:0 8px 28px rgba(16,42,33,.1); }
@media(max-width:767.98px) { .card-body{padding:1rem}.table thead th{font-size:.68rem}.table tbody td{padding:.65rem .55rem}.page-head,.cashier-report .head,.cashier-list .page-hero,.drawer-ui .banner{padding:1rem!important}#exoToasts{left:12px;right:12px;width:auto} }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important} }


/* Keep Bootstrap dialogs above their backdrop and ensure the dialog remains interactive. */
.modal { z-index: 1060; }
.modal-backdrop { z-index: 1050; }
.modal-dialog, .modal-content { position: relative; }
.refund-modal .modal-content { background: #fff; color: var(--exo-text, #243746); pointer-events: auto; }
