/* Shared SwiftPOS foundations: application, account, marketing and print. */
:root {
  --sp-font: "IBM Plex Sans", "Segoe UI", sans-serif;
  --sp-ink: #25272b;
  --sp-muted: #5c6066;
  --sp-brand: #c24500;
  --sp-brand-hover: #993700;
  --sp-tint: #fff1e8;
  --sp-canvas: #f7f7f5;
  --sp-surface: #fff;
  --sp-line: #dddeda;
  --sp-control: #777b80;
  --sp-radius: .75rem;
  --sp-shadow: 0 8px 28px #25272b08;
  --dx-font-sans-serif: var(--sp-font);
  --dx-body-font-family: var(--sp-font);
  --dx-body-color: var(--sp-ink);
  --dx-body-bg: var(--sp-canvas);
  --dx-secondary-color: var(--sp-muted);
  --dx-border-color: var(--sp-line);
}
.sp-shell { font-family: var(--sp-font); color: var(--sp-ink); background: var(--sp-canvas); font-size: .9375rem; line-height: 1.55; }
.sp-shell :where(h1,h2,h3,h4,h5,h6) { font-family: var(--sp-font); color: var(--sp-ink); font-weight: 600; letter-spacing: -.025em; text-wrap: balance; }
.sp-shell :where(button,input,select,textarea) { font-family: inherit; }
.sp-shell :where(button,a,input,select,textarea,summary):focus-visible { outline: 3px solid var(--sp-brand); outline-offset: 3px; box-shadow: none; }
.sp-shell :where(button,a) { -webkit-tap-highlight-color: transparent; }
.sp-shell :where(.btn,.form-control,.form-select,.lp-btn) { border-radius: .5rem; }
.sp-shell .btn { font-weight: 500; transition: background-color .18s, border-color .18s, box-shadow .18s; }
.sp-shell .btn-primary { --dx-btn-bg: var(--sp-brand); --dx-btn-border-color: var(--sp-brand); --dx-btn-hover-bg: var(--sp-brand-hover); --dx-btn-hover-border-color: var(--sp-brand-hover); --dx-btn-active-bg: var(--sp-brand-hover); --dx-btn-active-border-color: var(--sp-brand-hover); }
.sp-shell .widget-icon > .position-absolute { display: none; }
.sp-shell .widget-icon .avatar { background: var(--sp-tint); box-shadow: none; border: 1px solid #edd7c8; }
.sp-shell .widget-icon .avatar i { color: var(--sp-brand-hover) !important; }
.sp-shell :where(.btn,.form-control,.form-select) { min-height: 2.5rem; }
.sp-shell :where(.btn-sm,.form-control-sm,.form-select-sm) { min-height: 2.125rem; }
.sp-shell :where(.form-control,.form-select) { background-color: var(--sp-surface); border-color: var(--sp-control); color: var(--sp-ink); }
.sp-shell .card { border: 1px solid var(--sp-line); border-radius: var(--sp-radius); box-shadow: var(--sp-shadow); background: var(--sp-surface); }
.sp-shell .card-header { background: transparent; border-bottom-color: var(--sp-line); padding: 1.15rem 1.35rem; white-space: normal; }
.sp-shell .card-header .flex-grow-1 { min-width: 0; }
.sp-shell .btn-secondary { --dx-btn-bg: var(--sp-ink); --dx-btn-border-color: var(--sp-ink); --dx-btn-hover-bg: #42454a; --dx-btn-hover-border-color: #42454a; }
.sp-shell .card-body { padding: 1.35rem; }
.sp-shell .table { --dx-table-bg: var(--sp-surface); margin-bottom: 0; font-variant-numeric: tabular-nums; }
.sp-shell .table > thead > tr > th { background: var(--sp-canvas); color: var(--sp-muted); font-weight: 500; font-size: .8125rem; padding-block: .9rem; border-bottom-color: var(--sp-line); }
.sp-shell .table > tbody > tr > td { padding-block: 1rem; vertical-align: middle; border-bottom-color: var(--sp-line); }
.sp-shell .table > tbody > tr:hover > td { background-color: #fcfcfa; }
.sp-shell .table-responsive { border-radius: var(--sp-radius); }
.sp-shell :where(.form-label, .sp-form label) { font-weight: 500; color: var(--sp-ink); }
.sp-shell :where(.text-muted,.form-text) { color: var(--sp-muted) !important; }
.sp-shell .page-heading { padding-block: .5rem 1.15rem; gap: .75rem; }
.sp-shell .page-heading h1 { font-size: clamp(1.5rem,2.2vw,1.9rem); line-height: 1.2; }
.sp-shell .breadcrumb { font-size: .8rem; }
.sp-shell .main-topbar { background: var(--sp-surface); border-bottom: 1px solid var(--sp-line); box-shadow: none; }
.sp-shell .main-sidebar { background: var(--sp-surface); border-right: 1px solid var(--sp-line); box-shadow: none; }
.sp-shell .main-footer { border-top: 1px solid var(--sp-line); padding: 1.25rem; background: transparent; font-size: .8rem; }
.sp-shell :where(.alert,.dropdown-menu,.modal-content) { border-radius: var(--sp-radius); }
.sp-shell .modal-header { border-color: var(--sp-line); }
.sp-shell .nav-pills { gap: .25rem; }
.sp-shell .nav-pills .nav-link { font-weight: 500; border-radius: .5rem; }
.sp-shell .nav-pills .nav-link.active { background: var(--sp-brand); color: #fff; }
.sp-shell .btn-check:checked + .pay-method { background: var(--sp-tint); color: var(--sp-brand-hover); border-color: var(--sp-brand); }
.sp-shell .badge { font-weight: 500; letter-spacing: .01em; }
.sp-shell .auth-wrapper { background: var(--sp-canvas); }
.sp-shell .auth-wrapper .card { box-shadow: 0 20px 70px #25272b0b; }
.sp-shell .auth-wrapper h1 { text-transform: none !important; font-size: 1.75rem; }
.sp-shell .auth-wrapper .container { max-width: 1120px; }
.sp-shell .errorlist { color: #a12323; padding-left: 1.1rem; font-size: .875rem; }
.sp-shell .skip-link { position: fixed; top: -5rem; left: 1rem; z-index: 1100; background: var(--sp-ink); color: #fff; padding: .75rem 1rem; border-radius: .5rem; }
.sp-shell .skip-link:focus { top: 1rem; }
.sp-sidebar-backdrop { position: fixed; inset: var(--dx-topbar) 0 0; border: 0; background: #25272b55; z-index: 1004; }
.sp-sidebar-backdrop[hidden] { display: none; }
.sp-pos-mobile-nav { display: none; }
.sidebar-collapsed .sp-shell .main-sidebar { transform: translateX(-100%); visibility: hidden; }
.sidebar-collapsed .sp-shell .main-topbar { left: 0; }
.sidebar-collapsed .sp-shell .page-wrapper { margin-left: 0; }
@media (max-width: 991.98px) {
  .sp-pos-mobile-nav { display: flex; gap: .75rem; position: fixed; bottom: 0; left: 0; right: 0; padding: .75rem 1rem max(.75rem, env(safe-area-inset-bottom)); background: var(--sp-surface); border-top: 1px solid var(--sp-line); z-index: 1002; }
  .sp-pos-mobile-nav a { flex: 1; }
  .sp-shell .pos-wrapper { padding-bottom: 5rem; }
  .sp-shell .pos-wrapper .pos-product-card .card-body { padding: .65rem !important; }
  .sp-shell .pos-wrapper .pos-product-card .fs-lg { font-size: .95rem !important; }
  .sp-shell #pos-cart { scroll-margin-top: 1rem; }
  .sp-shell .main-topbar { left: 0; justify-content: space-between; gap: .5rem; padding-inline: .75rem; }
  .sp-shell .main-topbar .navbar-brand { width: auto; padding: 0; min-width: 0; }
  .sp-shell .main-topbar .logos { display: none; }
  .sp-shell .main-sidebar { top: var(--dx-topbar); max-width: calc(100vw - 4rem); }
  .sp-shell .main-sidebar.sidebar-close { transform: translateX(-100%); visibility: hidden; }
  .sp-shell .page-wrapper { margin-left: 0; }
  .sp-shell .main-topbar .btn-icon { min-width: 2.75rem; }
  .sp-shell .nav-pills { flex-wrap: nowrap !important; overflow-x: auto; padding-bottom: .35rem; }
  .sp-shell .nav-pills .nav-link { white-space: nowrap; }
}
@media (max-width: 767px) {
  .sp-shell .page-wrapper { padding-inline: 1rem; }
  .sp-shell .card-body,.sp-shell .card-header { padding: 1rem; }
  .sp-shell .page-heading { align-items: flex-start; }
  .sp-shell .main-topbar { padding-inline: 1rem; }
  .sp-shell :where(.btn,.form-control,.form-select) { min-height: 2.75rem; }
  .sp-shell .table-responsive { overscroll-behavior-x: contain; }
  .sp-shell .pos-wrapper .pos-datetime { display: none; }
  .sp-shell .pos-wrapper .navbar-brand img { max-width: 90px; height: auto; }
}
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
@media print {
  .sp-shell { background: #fff; color: #000; }
  .sp-shell .card { box-shadow: none; }
}
