/* SmartPOS 2.0 — Bootstrap design system. No MudBlazor assets required. */
:root { --sp-primary:#805477;--sp-accent:#CF9860;--sp-ink:#1d2939;--sp-muted:#667085;--sp-border:#e7e9ee;--sp-canvas:#f7f8fb;--sp-radius:16px;--sp-sidebar-width:258px; }
*,*::before,*::after{box-sizing:border-box}
html,body,#app{min-height:100%;background:var(--sp-canvas);color:var(--sp-ink);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;font-size:14px}
.sp-bootstrap-app{min-height:100vh;--bs-link-color:var(--sp-primary);--bs-link-hover-color:var(--sp-primary)}
.sp-bootstrap-app .btn-primary,.sp-bootstrap-app .text-bg-primary{background-color:var(--sp-primary)!important;border-color:var(--sp-primary)!important;color:white!important}
.sp-bootstrap-app .btn-outline-primary{border-color:var(--sp-primary);color:var(--sp-primary)}
.sp-bootstrap-app .btn-outline-primary:hover{background:var(--sp-primary);color:#fff}
.sp-bootstrap-app .text-primary{color:var(--sp-primary)!important}
.sp-bootstrap-app a{transition:color .15s ease}
.sp-bootstrap-app .btn{font-weight:650;min-height:36px;border-radius:9px;box-shadow:none;display:inline-flex;gap:6px;justify-content:center;align-items:center}
.sp-bootstrap-app button:focus-visible,.sp-bootstrap-app a:focus-visible,.sp-bootstrap-app input:focus-visible,.sp-bootstrap-app select:focus-visible{outline:2px solid var(--sp-primary);outline-offset:2px}
.sp-bs-icon{display:inline-block;width:19px;height:19px;flex:0 0 auto;vertical-align:-.18em;stroke:currentColor;fill:none}
.sp-bs-icon:has(use[href$="Menu"]){width:21px;height:21px}
.sp-bs-avatar,.sp-avatar-circle{width:40px;height:40px;background:color-mix(in srgb,var(--sp-primary) 10%,white);color:var(--sp-primary);border-radius:12px;display:inline-flex;align-items:center;justify-content:center;font-weight:800;flex:0 0 auto}
.sp-bootstrap-container{padding:0!important;max-width:1540px;margin:0 auto}
.sp-bs-field{width:100%;min-width:0}
.sp-bs-field .form-label{margin:0 0 7px;color:#344054;font-size:12px;letter-spacing:.01em}
.sp-bs-field .form-control,.sp-bs-field .form-select,.sp-bootstrap-app input.form-control,.sp-bootstrap-app select.form-select{background:#fff;border:1px solid #d8dce6;border-radius:10px;min-height:42px;padding:9px 12px;color:var(--sp-ink);width:100%;box-shadow:none}
.sp-bs-field .form-control:focus,.sp-bs-field .form-select:focus{border-color:var(--sp-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--sp-primary) 11%,transparent)}
.sp-bs-field textarea{min-height:110px}
.sp-bs-field .form-text{font-size:11px}
.sp-bootstrap-app .card,.sp-bootstrap-app .sp-surface{border:1px solid var(--sp-border)!important;background:#fff;border-radius:var(--sp-radius)!important;box-shadow:0 2px 16px rgba(23,35,53,.045)!important}
.sp-bootstrap-app .sp-surface > .card-body{padding:22px!important}
.sp-bootstrap-app .row{--bs-gutter-x:1rem;--bs-gutter-y:1rem}
.sp-bootstrap-app .sp-typography.h3,.sp-bootstrap-app .sp-typography.h4,.sp-bootstrap-app .sp-typography.h5,.sp-bootstrap-app .sp-typography.h6{font-weight:750;letter-spacing:-.025em;color:#202b3e;margin-bottom:3px}
.sp-bootstrap-app .sp-typography.h3{font-size:1.6rem}.sp-bootstrap-app .sp-typography.h4{font-size:1.5rem}.sp-bootstrap-app .sp-typography.h5{font-size:1.28rem}.sp-bootstrap-app .sp-typography.h6{font-size:1.1rem}
.sp-bootstrap-app .sp-typography.small,.sp-bootstrap-app .sp-typography.text-secondary{font-size:12px;color:#667085!important}
.sp-bootstrap-app .badge{padding:.5em .8em;font-weight:650;letter-spacing:.005em}
.sp-bootstrap-app .table-responsive{border:1px solid var(--sp-border);border-radius:11px;max-width:100%;overflow-x:auto}
.sp-bootstrap-app table{margin:0;white-space:normal;--bs-table-bg:transparent}
.sp-bootstrap-app table th{font-size:11px;letter-spacing:.045em;text-transform:uppercase;color:#667085!important;font-weight:750;padding:14px 14px;background:#f7f8fa!important;white-space:nowrap}
.sp-bootstrap-app table td{font-size:13px;padding:13px 14px;border-bottom:1px solid #edf0f4;vertical-align:middle}
.sp-bootstrap-app table tr:last-child td{border-bottom:none}
.sp-table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 0 16px;flex-wrap:wrap}
.sp-icon-button{padding:6px!important;min-width:32px;min-height:32px!important;border:1px solid #e8eaef!important;background:white!important}
.sp-icon-button:hover{background:#f5f3f7!important;color:var(--sp-primary)}
.sp-bs-autocomplete .sp-autocomplete-results{z-index:1100;max-height:280px;overflow:auto;border-radius:10px;margin-top:5px}
.sp-bs-autocomplete .list-group-item{white-space:normal;padding:10px 13px}
.sp-bootstrap-app .alert{border-radius:10px;padding:11px 14px;font-size:13px}
.sp-sidebar{background:#fff;position:fixed;inset:0 auto 0 0;z-index:1040;width:var(--sp-sidebar-width);display:flex;flex-direction:column;border-right:1px solid var(--sp-border);box-shadow:1px 0 12px rgba(15,23,42,.02)}
.sp-sidebar-brand{height:78px;padding:18px 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--sp-border)}
.sp-brand-mark{display:flex;align-items:center;gap:11px;color:var(--sp-ink)!important;text-decoration:none;min-width:0}
.sp-brand-mark:hover{text-decoration:none;color:var(--sp-primary)!important}
.sp-brand-copy{display:flex;flex-direction:column;min-width:0}.sp-brand-copy strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sp-brand-copy small{font-size:11px;color:var(--sp-muted)}
.sp-brand-fallback{background:var(--sp-primary);height:42px;width:42px;display:grid;place-items:center;color:#fff;font-weight:800;border-radius:12px}
.sp-business-logo{width:44px;height:44px;object-fit:contain;background:white;border-radius:10px}
.sp-sidebar-scroll{flex:1;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#dadde4 transparent;padding:14px 10px}
.sp-navigation{min-height:100%;display:flex;flex-direction:column}.sp-nav-overline{font-size:10px;font-weight:800;letter-spacing:.12em;color:#98a2b3;margin:6px 11px 11px}
.sp-nav-items{display:flex;flex-direction:column;gap:3px}.sp-sidebar-link{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:9px;color:#475467!important;text-decoration:none!important;font-weight:600;font-size:12.5px;line-height:1.3;min-height:40px}
.sp-sidebar-link:hover{background:#f5f6f9;color:var(--sp-primary)!important}.sp-sidebar-link.active{background:color-mix(in srgb,var(--sp-primary) 10%,white);color:var(--sp-primary)!important;font-weight:750}
.sp-sidebar-link .sp-bs-icon{width:18px;height:18px}
.sp-nav-group{margin-top:8px}.sp-nav-group summary{list-style:none;cursor:pointer;color:#86909f;font-size:10px;font-weight:800;letter-spacing:.095em;margin:10px 12px 7px;padding:5px 0}
.sp-nav-group summary::after{content:'⌄';float:right;font-size:13px}.sp-nav-group summary::-webkit-details-marker{display:none}
.sp-nav-group[open] summary::after{content:'⌃'}
.sp-nav-bottom{margin-top:auto;padding:12px 9px 6px;border-top:1px solid var(--sp-border)}
.sp-nav-user{display:flex;gap:10px;align-items:center;padding:10px 6px}.sp-nav-user strong,.sp-nav-user small{display:block;font-size:12px}.sp-nav-user small{color:var(--sp-muted);font-size:11px;margin-top:2px}
.sp-user-avatar{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:#f5f0f4;border-radius:10px;color:var(--sp-primary);font-weight:800}
.sp-logout{background:none;border:0;display:flex;gap:11px;align-items:center;padding:12px;width:100%;border-radius:9px;color:#a33a4f;text-align:left;font-weight:650}
.sp-logout:hover{background:#fff1f3}.sp-plan-nav-note{border-radius:10px;background:#faf7ff;color:#665575;font-size:11px;margin:10px 5px;padding:11px;line-height:1.5}
.sp-workspace{margin-left:var(--sp-sidebar-width);min-height:100vh;min-width:0}
.sp-topbar{height:72px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 clamp(20px,3vw,42px);background:#fff;border-bottom:1px solid var(--sp-border);position:sticky;top:0;z-index:1000}
.sp-workspace-name{display:flex;flex-direction:column}.sp-workspace-name strong{font-size:14px}.sp-workspace-name small{font-size:11px;color:var(--sp-muted);margin-top:2px}
.sp-header-icon{border:1px solid transparent!important;min-height:38px!important;min-width:38px!important;padding:6px!important;background:transparent!important;color:#475467}.sp-header-icon:hover{background:#f5f4f6!important}
.sp-header-user{display:flex;gap:9px;align-items:center;padding-left:12px;border-left:1px solid var(--sp-border)}.sp-header-user strong{font-size:12px}.sp-header-user small{font-size:11px;color:var(--sp-muted)}
.sp-page-content{padding:clamp(18px,2.6vw,40px);max-width:1700px;margin:0 auto}.sp-plan-message{margin-bottom:20px;line-height:1.6}
.sp-mobile-overlay{display:none}
.sp-form-modal,.sp-modal{z-index:1060!important;background:rgba(15,23,42,.20)}.sp-form-modal .modal-dialog,.sp-modal .modal-dialog{max-width:min(94vw,1050px)}
.sp-form-modal .modal-content,.sp-modal .modal-content{border:0;border-radius:17px;box-shadow:0 25px 90px rgba(20,27,45,.21);overflow:hidden}
.sp-modal .modal-content{overflow:auto;max-height:92vh}.sp-modal .modal-body{padding:24px}.sp-modal .modal-footer{padding:16px 22px}
.sp-form-backdrop{z-index:1050!important}.sp-form-modal .modal-body{overflow:auto;max-height:85vh}
.sp-form-modal .form-paper{border:0!important;box-shadow:none!important}
.sp-bootstrap-app .form-paper{padding:0!important}.sp-form-modal .sp-surface>.card-body{padding:0!important}
.sp-login-layout{min-height:100vh;background:white}
.sp-login-layout .sp-login-screen{min-height:100vh}
.sp-bs-field .form-check-input:checked{background-color:var(--sp-primary);border-color:var(--sp-primary)}
/* Adapt legacy utility names used by existing screens. */
.sp-bootstrap-app .pa-4{padding:1rem!important}.sp-bootstrap-app .pa-6{padding:1.5rem!important}.sp-bootstrap-app .mb-6{margin-bottom:1.5rem!important}.sp-bootstrap-app .mt-6{margin-top:1.5rem!important}
.sp-bootstrap-app .gap-2{gap:.5rem!important}.sp-bootstrap-app .justify-end{justify-content:end!important}.sp-bootstrap-app .font-weight-bold{font-weight:750!important}.sp-bootstrap-app .font-weight-medium{font-weight:600!important}
@media(max-width:991px){.sp-sidebar{transform:translateX(-100%);transition:transform .2s ease}.sp-sidebar.sp-sidebar-open{transform:translateX(0)}.sp-mobile-overlay{display:block;position:fixed;inset:0;background:rgba(16,24,40,.32);z-index:1030;border:0}.sp-workspace{margin-left:0}.sp-page-content{padding:20px}.sp-topbar{padding:0 20px}}
@media(max-width:575px){.sp-page-content{padding:13px}.sp-bootstrap-app .sp-surface>.card-body{padding:15px!important}.sp-workspace-name small{display:none}.sp-topbar{height:62px;padding:0 13px}.sp-bs-field{margin-bottom:8px}.sp-bootstrap-app .table-responsive{overflow-x:auto}.sp-form-modal .modal-dialog{margin:8px;max-width:none}.sp-form-modal .modal-body{padding:16px!important}}
@media print {.sp-sidebar,.sp-topbar,.sp-mobile-overlay,.sp-plan-message,.sp-page-content button,.sp-nav-bottom{display:none!important}.sp-workspace{margin:0}.sp-page-content{padding:0!important}.sp-bootstrap-app .card{box-shadow:none!important}}
