:root{--sidebar-width: 250px;--sidebar-collapsed-width: 70px;--sidebar-bg: #1e2a38;--sidebar-text: #c9d4de;--sidebar-active: #2f7ed8;--topbar-height: 60px;--boutique-blush: #f7e4e0;--boutique-blush-deep: #e3a9ae;--boutique-gold: #c9a15a;--boutique-gold-dark: #a17d3f;--boutique-cream: #fdf8f3;--boutique-charcoal: #3d3229;--boutique-muted: #9a8a7c}body{background-color:#f4f6f9}.app-wrapper{min-height:100vh}.sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-width);background-color:var(--sidebar-bg);color:var(--sidebar-text);z-index:1040;transition:width .25s cubic-bezier(.4,0,.2,1),transform .25s cubic-bezier(.4,0,.2,1);overflow-x:hidden;overflow-y:auto}.sidebar-brand{display:flex;align-items:center;gap:.6rem;height:var(--topbar-height);padding:0 1rem;font-size:1.15rem;font-weight:600;color:#fff;border-bottom:1px solid rgba(255,255,255,.08);white-space:nowrap}.sidebar-brand i{font-size:1.4rem;flex-shrink:0}.sidebar-menu{list-style:none;margin:0;padding:.5rem 0}.sidebar-menu li a{display:flex;align-items:center;gap:.75rem;padding:.65rem 1.1rem;color:var(--sidebar-text);text-decoration:none;white-space:nowrap;border-left:3px solid transparent}.sidebar-menu li a i{font-size:1.1rem;width:1.25rem;text-align:center;flex-shrink:0}.sidebar-menu li a:hover{background-color:#ffffff0f;color:#fff}.sidebar-menu li a.active{background-color:#2f7ed826;border-left-color:var(--sidebar-active);color:#fff}.sidebar-menu .submenu-caret{font-size:.7rem;transition:transform .2s ease;flex-shrink:0}.sidebar-menu .submenu-toggle[aria-expanded=true] .submenu-caret{transform:rotate(90deg)}.sidebar-menu .submenu{list-style:none;margin:0;padding:0;background-color:#00000026}.sidebar-menu .submenu li a{padding-left:1.9rem;font-size:.92rem}.sidebar.collapsed{width:var(--sidebar-collapsed-width)}.sidebar.collapsed .sidebar-brand-text,.sidebar.collapsed .sidebar-menu li a span{display:none}.sidebar.collapsed .sidebar-brand{justify-content:center;padding:0}.sidebar.collapsed .submenu-caret,.sidebar.collapsed .submenu.show{display:none}.main-area{margin-left:var(--sidebar-width);transition:margin-left .25s cubic-bezier(.4,0,.2,1);min-height:100vh;display:flex;flex-direction:column}.sidebar.collapsed~.main-area{margin-left:var(--sidebar-collapsed-width)}.topbar{height:var(--topbar-height);background-color:#fff;border-bottom:1px solid #e3e7ec;display:flex;align-items:center;padding:0 1rem;position:sticky;top:0;z-index:1030}.topbar-toggle{font-size:1.4rem;color:#333;text-decoration:none}.topbar-spacer{flex:1 1 auto}.topbar-user-btn{display:flex;align-items:center;gap:.5rem;text-decoration:none;color:#333}.topbar-user-btn i{font-size:1.5rem}.topbar-role-badge{font-weight:400}.main-content{padding:1.25rem;flex:1 1 auto;animation:pageFadeIn .35s ease both}@keyframes pageFadeIn{0%{opacity:0}to{opacity:1}}.sidebar-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:1035}@media (max-width: 767.98px){.sidebar{width:var(--sidebar-width);transform:translate(-100%)}.sidebar.show{transform:translate(0)}.sidebar.show~.sidebar-backdrop,.sidebar-backdrop.show{display:block}.main-area,.sidebar.collapsed~.main-area{margin-left:0}}.bottom-nav{display:none}@media (max-width: 767.98px){.bottom-nav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:1040;background-color:#fff;border-top:1px solid #e3e7ec;box-shadow:0 -2px 8px #0000000f;padding-bottom:env(safe-area-inset-bottom,0)}.bottom-nav-link{flex:1 1 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;padding:.4rem .25rem;border:none;background:none;color:#6c757d;text-decoration:none;font-size:.7rem;line-height:1.15}.bottom-nav-link i{font-size:1.3rem}.bottom-nav-link.active{color:var(--sidebar-active)}.main-content{padding-bottom:calc(1.25rem + 56px + env(safe-area-inset-bottom,0))}}.table-responsive th{white-space:nowrap}.login-page{min-height:100vh;margin:0;font-family:Jost,Segoe UI,sans-serif;background:var(--boutique-cream)}.boutique-login-wrap{min-height:100vh;display:flex}.boutique-login-panel{flex:1 1 55%;min-width:0;display:flex;align-items:center;justify-content:center;padding:2rem 1.25rem;position:relative;background:radial-gradient(circle at 12% 18%,rgba(201,161,90,.1) 0,transparent 45%),radial-gradient(circle at 88% 82%,rgba(227,169,174,.22) 0,transparent 50%),var(--boutique-cream)}.boutique-login-panel:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(rgba(201,161,90,.16) 1px,transparent 1px);background-size:26px 26px;opacity:.5;pointer-events:none}.login-card{width:100%;max-width:380px;border:none;border-radius:1rem;box-shadow:0 1.5rem 3rem #3d322929;position:relative;z-index:1;animation:loginRiseIn .6s cubic-bezier(.22,1,.36,1) both}@keyframes loginRiseIn{0%{opacity:0;transform:translateY(26px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.login-card .card-body{padding:2.25rem 2rem}.login-brand{display:flex;align-items:center;justify-content:center;gap:.55rem;font-family:Playfair Display,Georgia,serif;font-size:1.9rem;font-weight:700;color:var(--boutique-charcoal)}.login-brand i{color:var(--boutique-gold)}.login-tagline{text-align:center;color:var(--boutique-muted);font-size:.85rem;margin:.15rem 0 1.5rem}.login-page .form-floating>.form-control{border:1px solid #ecdfd2;border-radius:.6rem;background:var(--boutique-cream);transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease}.login-page .form-floating>.form-control:focus{border-color:var(--boutique-gold);box-shadow:0 0 0 .2rem #c9a15a2e;background:#fff}.login-page .form-floating>label{color:var(--boutique-muted)}.login-page .form-floating>.form-control:focus~label,.login-page .form-floating>.form-control:not(:placeholder-shown)~label{color:var(--boutique-gold-dark)}.btn-boutique{background:linear-gradient(135deg,var(--boutique-gold) 0%,var(--boutique-gold-dark) 100%);border:none;color:#fff;font-weight:600;letter-spacing:.03em;padding:.65rem 1rem;border-radius:.6rem;transition:transform .15s ease,box-shadow .15s ease,filter .15s ease}.btn-boutique:hover,.btn-boutique:focus{color:#fff;transform:translateY(-2px);box-shadow:0 .5rem 1rem #a17d3f59;filter:brightness(1.05)}.btn-boutique:active{transform:translateY(0) scale(.98);box-shadow:0 .2rem .4rem #a17d3f4d}.btn-boutique:disabled{opacity:.7;transform:none}.boutique-visual-panel{flex:1 1 45%;min-width:0;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;color:var(--boutique-cream);background:linear-gradient(160deg,var(--boutique-blush-deep) 0%,var(--boutique-gold) 100%)}.boutique-visual-panel:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(rgba(255,255,255,.18) 1.5px,transparent 1.5px);background-size:28px 28px;opacity:.6;pointer-events:none}.boutique-visual-inner{text-align:center;padding:2rem;position:relative;z-index:1;animation:pageFadeIn .8s ease .15s both}.boutique-visual-svg{width:170px;height:170px;color:#ffffffeb;margin-bottom:1rem;animation:gentleFloat 6s ease-in-out infinite}@keyframes gentleFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.visual-heading{font-family:Playfair Display,Georgia,serif;font-size:2.1rem;font-weight:700;letter-spacing:.02em;margin-bottom:.4rem}.visual-sub{font-size:.95rem;opacity:.9;letter-spacing:.03em;margin-bottom:0}@media (max-width: 991.98px){.boutique-visual-panel{display:none}.boutique-login-panel{flex:1 1 100%}}body.perm-noadd-Setup #btnAddLocation,body.perm-noadd-Setup #btnAddCategory,body.perm-noadd-Setup #btnAddExpCategory,body.perm-noedit-Setup .btn-edit-location,body.perm-noedit-Setup .btn-edit-category,body.perm-noedit-Setup .btn-edit-expcategory,body.perm-nodelete-Setup .btn-delete-location,body.perm-nodelete-Setup .btn-delete-category,body.perm-nodelete-Setup .btn-delete-expcategory,body.perm-noadd-Suppliers #btnAddSupplier,body.perm-noadd-Suppliers .supplier-picker-add,body.perm-noedit-Suppliers .btn-edit-supplier,body.perm-nodelete-Suppliers .btn-delete-supplier,body.perm-noadd-Customers #btnAddCustomer,body.perm-noadd-Customers .customer-picker-add,body.perm-noedit-Customers .btn-edit-customer,body.perm-nodelete-Customers .btn-delete-customer,body.perm-noadd-Products #btnAddProduct,body.perm-noadd-Products .product-picker-add,body.perm-noedit-Products .btn-edit-product,body.perm-nodelete-Products .btn-delete-product,body.perm-noadd-StockTransfer #btnAddTransfer,body.perm-noedit-StockTransfer .btn-edit-transfer,body.perm-nodelete-StockTransfer .btn-delete-transfer,body.perm-noadd-Purchases #btnAddPurchase,body.perm-nodelete-Purchases .btn-delete-purchase,body.perm-noadd-PurchaseReturns #btnAddReturn,body.perm-nodelete-PurchaseReturns .btn-delete-return,body.perm-noadd-Sales #btnHoldBill,body.perm-noadd-Sales #btnCompleteSale,body.perm-noedit-Sales .btn-edit-sale,body.perm-nodelete-Sales .btn-delete-sale,body.perm-noadd-SaleReturns #btnAddFromInvoice,body.perm-noadd-SaleReturns #btnAddStandalone,body.perm-nodelete-SaleReturns .btn-delete-sr,body.perm-noadd-SupplierLedger #btnMakePayment,body.perm-nodelete-SupplierLedger .btn-delete-payment,body.perm-noadd-CustomerLedger #btnReceivePayment,body.perm-nodelete-CustomerLedger .btn-delete-receipt,body.perm-noadd-Employees #btnAddEmployee,body.perm-noadd-Employees .employee-picker-add,body.perm-noedit-Employees .btn-edit-employee,body.perm-nodelete-Employees .btn-delete-employee,body.perm-noadd-EmployeeLedger #btnPayEmployee,body.perm-nodelete-EmployeeLedger .btn-delete-epayment,body.perm-noadd-Expenses #btnAddExpense,body.perm-noedit-Expenses .btn-edit-expense,body.perm-nodelete-Expenses .btn-delete-expense,body.perm-noadd-Reminders #btnAddReminder,body.perm-noedit-Reminders .btn-edit-reminder,body.perm-noedit-Reminders .btn-mark-done,body.perm-nodelete-Reminders .btn-delete-reminder{display:none!important}.dash-header-banner{background:linear-gradient(120deg,var(--boutique-gold) 0%,var(--boutique-blush-deep) 100%);border-radius:14px;padding:1.25rem 1.5rem;box-shadow:0 .5rem 1.5rem #a17d3f40}.dash-header-banner h4,.dash-header-banner p,.dash-header-banner strong{color:#fff}.dash-header-banner p{color:#ffffffd9}.kpi-card,.chart-card{border:1px solid rgba(0,0,0,.06);box-shadow:0 .125rem .5rem #0000000a;transition:transform .2s ease,box-shadow .2s ease}.kpi-card:hover,.chart-card:hover{transform:translateY(-4px);box-shadow:0 .5rem 1.25rem #0000001f}.kpi-card--clickable{cursor:pointer}.kpi-card--clickable:focus-visible{outline:2px solid var(--boutique-gold-dark, #a17d3f);outline-offset:2px}.chart-card{border-top:4px solid var(--boutique-gold)}.kpi-icon{width:48px;height:48px;min-width:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.35rem;color:#fff}.kpi-card--sales{background:linear-gradient(135deg,#eafaf1,#d3f3e0)}.kpi-card--sales .kpi-icon{background:#21b573}.kpi-card--purchases{background:linear-gradient(135deg,#eaf1fd,#d6e6fb)}.kpi-card--purchases .kpi-icon{background:#3a7bd5}.kpi-card--receivable{background:linear-gradient(135deg,#e6fbfb,#cdf3f2)}.kpi-card--receivable .kpi-icon{background:#17a2b8}.kpi-card--payable{background:linear-gradient(135deg,#fdecec,#fad3d3)}.kpi-card--payable .kpi-icon{background:#e05260}.kpi-card--cash{background:linear-gradient(135deg,#fdf6e8,#f7e6bf)}.kpi-card--cash .kpi-icon{background:var(--boutique-gold-dark)}.kpi-card--lowstock{background:linear-gradient(135deg,#fff3e6,#ffe1bf)}.kpi-card--lowstock .kpi-icon{background:#e07b1f}.kpi-card--expenses{background:linear-gradient(135deg,#f3edf9,#e4d5f2)}.kpi-card--expenses .kpi-icon{background:#7952b3}.kpi-card--todaysprofit{background:linear-gradient(135deg,#f2f9e6,#dff0c0)}.kpi-card--todaysprofit .kpi-icon{background:#8bc34a}.kpi-card--stockvalue{background:linear-gradient(135deg,#ecedfb,#d6d9f5)}.kpi-card--stockvalue .kpi-icon{background:#5b6fd8}.kpi-card--bankbalance{background:linear-gradient(135deg,#e9edf1,#d1d9e0)}.kpi-card--bankbalance .kpi-icon{background:#34495e}.kpi-card--dailysalesstock{background:linear-gradient(135deg,#fdeef2,#f8d7e3)}.kpi-card--dailysalesstock .kpi-icon{background:#d6336c}.kpi-card--reminders{background:linear-gradient(135deg,#fef2e6,#fbdfc0)}.kpi-card--reminders .kpi-icon{background:#d68910}.chart-wrap{position:relative;height:260px}@keyframes dashFadeSlideIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.dash-anim{opacity:0;animation:dashFadeSlideIn .5s ease forwards}#kpiRow>div:nth-child(1) .dash-anim{animation-delay:.02s}#kpiRow>div:nth-child(2) .dash-anim{animation-delay:.08s}#kpiRow>div:nth-child(3) .dash-anim{animation-delay:.14s}#kpiRow>div:nth-child(4) .dash-anim{animation-delay:.2s}#kpiRow>div:nth-child(5) .dash-anim{animation-delay:.26s}#kpiRow>div:nth-child(6) .dash-anim{animation-delay:.32s}#kpiRow>div:nth-child(7) .dash-anim{animation-delay:.38s}#kpiRow>div:nth-child(8) .dash-anim{animation-delay:.44s}#kpiRow>div:nth-child(9) .dash-anim{animation-delay:.5s}#kpiRow>div:nth-child(10) .dash-anim{animation-delay:.56s}#chartRow>div:nth-child(1) .dash-anim{animation-delay:.15s}#chartRow>div:nth-child(2) .dash-anim{animation-delay:.22s}#chartRow>div:nth-child(3) .dash-anim{animation-delay:.29s}#chartRow>div:nth-child(4) .dash-anim{animation-delay:.36s}#chartRow>div:nth-child(5) .dash-anim{animation-delay:.43s}@media (max-width: 575.98px){.chart-wrap{height:220px}}.btn{transition:transform .15s ease,box-shadow .15s ease,filter .15s ease,color .15s ease,background-color .15s ease,border-color .15s ease}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(0) scale(.97)}.modal.fade .modal-dialog{transform:scale(.92) translateY(-12px);transition:transform .25s cubic-bezier(.34,1.56,.64,1),opacity .2s ease}.modal.show .modal-dialog{transform:scale(1) translateY(0)}@media (max-width: 767.98px){.modal-dialog{position:fixed;left:0;right:0;bottom:0;top:auto;margin:0;width:100%;max-width:100%}.modal.fade .modal-dialog{transform:translateY(100%);transition:transform .3s cubic-bezier(.32,.72,0,1)}.modal.show .modal-dialog{transform:translateY(0)}.modal-content{border:none;border-radius:1rem 1rem 0 0;max-height:92vh;display:flex;flex-direction:column;padding-top:.75rem;padding-bottom:env(safe-area-inset-bottom,0)}.modal-content:before{content:"";display:block;width:40px;height:4px;margin:0 auto .6rem;border-radius:2px;background-color:#dcdfe4;flex-shrink:0}.modal-header,.modal-footer{flex-shrink:0}.modal-body{overflow-y:auto}}.table-responsive{position:relative}.table-loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffffb8;display:flex;align-items:center;justify-content:center;z-index:5;opacity:0;pointer-events:none;transition:opacity .15s ease}.table-loading-overlay.show{opacity:1}.table-loading-overlay .spinner-border{color:var(--sidebar-active)}@media (max-width: 575.98px){.cart-action-buttons{flex-direction:column}.cart-action-buttons .btn{width:100%}}@media (max-width: 575.98px){.line-item-table thead{display:none}.line-item-table,.line-item-table tbody,.line-item-table tr,.line-item-table td{display:block;width:100%}.line-item-table{border:none}.line-item-table tbody tr{border:1px solid #dee2e6;border-radius:.5rem;margin-bottom:.75rem;padding:.6rem .75rem;background:#fff}.line-item-table td{border:none!important;padding:.3rem 0;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.line-item-table td:before{content:attr(data-label);font-weight:600;color:#6c757d;font-size:.78rem;flex:0 0 auto}.line-item-table td:not(.cart-product-cell) input,.line-item-table td:not(.cart-product-cell) select{max-width:140px;text-align:right}.line-item-table td.cart-img-cell{display:none}.line-item-table td.cart-product-cell{justify-content:flex-start;font-weight:600;padding-bottom:.5rem;margin-bottom:.4rem;border-bottom:1px solid #eee!important}.line-item-table td.cart-product-cell:before{content:none}.line-item-table td.cart-product-cell .input-group,.line-item-table td.cart-product-cell select{width:100%;max-width:none}.line-item-table td.cart-action-cell{justify-content:flex-end}.line-item-table td.cart-action-cell:before{content:none}.line-item-table td{flex-wrap:wrap}.line-item-table .cart-cost-warning{flex-basis:100%;text-align:right}}@media print{*{-webkit-print-color-adjust:exact;print-color-adjust:exact}body *{visibility:hidden}.print-area,.print-area *{visibility:visible}.print-area{position:absolute;left:0;top:0;width:100%;padding:1rem;font-size:.85rem;color:#2a241d}.no-print{display:none!important}.print-header{text-align:center;margin-bottom:1.25rem;padding-bottom:.75rem;border-top:3px solid var(--boutique-gold, #c9a15a);border-bottom:1px solid #2a241d;padding-top:.6rem}.print-shop-name{font-size:1.6rem;font-weight:700;font-family:Playfair Display,Georgia,serif;letter-spacing:.06em;text-transform:uppercase;color:#2a241d}.print-doc-title{font-size:.8rem;font-weight:600;color:var(--boutique-gold-dark, #a17d3f);margin-top:.3rem;text-transform:uppercase;letter-spacing:.12em}.print-area table{width:100%;border-collapse:collapse!important;font-size:.8rem}.print-area table th,.print-area table td{border:1px solid #c9c2b8!important;padding:.4rem .55rem!important;background:transparent!important}.print-area table thead th{background:#f3ead9!important;color:#2a241d;font-weight:700;text-transform:uppercase;font-size:.7rem;letter-spacing:.04em;border-bottom:2px solid var(--boutique-gold, #c9a15a)!important}.print-area table tbody tr:nth-child(2n) td{background:#faf7f1!important}.print-area .card{border:none!important;box-shadow:none!important}.print-footer{margin-top:1.5rem;padding-top:.5rem;border-top:1px solid #c9c2b8;font-size:.7rem;font-style:italic;color:#7a7167;text-align:center}@page{margin:1.5cm}}.share-note{font-size:.8rem}
