:root{--color-primary: #1565C0;--color-primary-dark: #0D47A1;--color-primary-darker: #1A237E;--color-primary-light: #42A5F5;--color-primary-bg: #E3F2FD;--color-primary-bg-alt: #BBDEFB;--color-body-bg: #F0F4F8;--color-card-bg: #FFFFFF;--color-border: #E0E6ED;--color-text-dark: #263238;--color-text-muted: #78909C;--color-text-light: #B0BEC5;--color-danger: #E53935;--color-danger-dark: #C62828;--color-success: #43A047;--color-success-dark: #2E7D32;--color-warning: #FB8C00;--color-warning-dark: #EF6C00;--color-info: #039BE5;--color-info-dark: #0277BD;--color-purple: #7B1FA2;--color-purple-dark: #4A148C;--badge-lunas-bg: #E8F5E9;--badge-lunas-text: #2E7D32;--badge-belum-bg: #FFF3E0;--badge-belum-text: #E65100;--badge-sebagian-bg: #E3F2FD;--badge-sebagian-text: #1565C0;--badge-batal-bg: #FFEBEE;--badge-batal-text: #C62828;--badge-pending-bg: #FFF8E1;--badge-pending-text: #F9A825;--badge-nonaktif-bg: #FAFAFA;--badge-nonaktif-text: #9E9E9E;--sidebar-width: 260px;--navbar-height: 64px;--content-padding: 24px;--card-padding: 20px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .1);--shadow-lg: 0 8px 30px rgba(0, 0, 0, .12);--transition: all .25s ease;--gradient-sidebar: linear-gradient(180deg, var(--color-primary-darker) 0%, var(--color-primary-dark) 100%);--gradient-primary: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);--gradient-success: linear-gradient(135deg, var(--color-success) 0%, var(--color-success-dark) 100%);--gradient-danger: linear-gradient(135deg, var(--color-danger) 0%, var(--color-danger-dark) 100%);--gradient-warning: linear-gradient(135deg, var(--color-warning) 0%, var(--color-warning-dark) 100%);--gradient-info: linear-gradient(135deg, var(--color-info) 0%, var(--color-info-dark) 100%);--gradient-purple: linear-gradient(135deg, var(--color-purple) 0%, var(--color-purple-dark) 100%)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Segoe UI,-apple-system,BlinkMacSystemFont,Helvetica Neue,Arial,sans-serif;font-size:14px;font-weight:400;line-height:1.5;color:var(--color-text-dark);background-color:var(--color-body-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-weight:700;color:var(--color-text-dark);margin-top:0}label,.form-label{font-size:13px;font-weight:600;color:var(--color-text-dark);margin-bottom:6px}a{color:var(--color-primary);text-decoration:none;transition:var(--transition)}a:hover{color:var(--color-primary-dark)}img{max-width:100%;height:auto}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-text-light);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#90a4ae}.app-body{overflow-x:hidden}.app-body.sidebar-open{overflow:hidden}.main-wrapper{margin-left:var(--sidebar-width);min-height:100vh;display:flex;flex-direction:column;transition:var(--transition)}.content-wrapper{flex:1;padding:var(--content-padding);animation:fadeIn .4s ease}.page-title{font-size:22px;font-weight:700;margin-bottom:4px}.page-subtitle{font-size:13px;color:var(--color-text-muted);margin-bottom:20px}.app-sidebar{position:fixed;top:0;left:0;width:var(--sidebar-width);height:100vh;background:var(--gradient-sidebar);display:flex;flex-direction:column;z-index:1040;transition:transform .3s ease}.app-sidebar::-webkit-scrollbar{width:4px}.app-sidebar::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:4px}.sidebar-header{padding:20px 18px 16px;border-bottom:1px solid rgba(255,255,255,.08)}.sidebar-brand{display:flex;align-items:center;gap:12px;text-decoration:none}.sidebar-brand-icon{width:40px;height:40px;background:#ffffff1f;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:18px;color:#fff}.sidebar-brand-text{font-size:16px;font-weight:700;background:linear-gradient(135deg,#ffffff 0%,var(--color-primary-light) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.2}.sidebar-brand-sub{font-size:11px;color:#ffffff80;font-weight:400}.sidebar-user{margin:14px 14px 8px;padding:12px;background:#ffffff14;border-radius:var(--radius-md);display:flex;align-items:center;gap:10px}.sidebar-user-avatar{width:36px;height:36px;border-radius:50%;background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:14px;flex-shrink:0}.sidebar-user-info{overflow:hidden}.sidebar-user-name{font-size:13px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-role{font-size:11px;color:#ffffff8c}.sidebar-nav{flex:1;overflow-y:auto;padding:8px 0 16px}.sidebar-nav .nav-link{display:flex;align-items:center;gap:10px;padding:10px 18px;color:#ffffffbf;font-size:13px;font-weight:500;border-left:3px solid transparent;transition:var(--transition);text-decoration:none}.sidebar-nav .nav-link:hover{color:#fff;background:#ffffff1a}.sidebar-nav .nav-link.active{color:#fff;background:#42a5f533;border-left-color:var(--color-primary-light)}.sidebar-nav .nav-link i.nav-icon{width:18px;text-align:center;font-size:14px;opacity:.85}.sidebar-nav .nav-link .nav-chevron{margin-left:auto;font-size:10px;transition:transform .25s ease}.sidebar-nav .nav-link[aria-expanded=true] .nav-chevron{transform:rotate(90deg)}.sidebar-submenu{padding-left:50px}.sidebar-submenu .nav-link{padding:7px 18px 7px 0;font-size:13px;color:#ffffff8c;border-left:none}.sidebar-submenu .nav-link:hover,.sidebar-submenu .nav-link.active{color:#fff;background:transparent;border-left:none}.sidebar-divider{height:1px;background:#ffffff14;margin:8px 18px}.sidebar-footer{padding:12px 18px;text-align:center;font-size:11px;color:#ffffff40;border-top:1px solid rgba(255,255,255,.08)}.sidebar-overlay{display:none;position:fixed;inset:0;background:#00000073;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1035;opacity:0;transition:opacity .3s ease}.sidebar-overlay.show{display:block;opacity:1}.app-navbar{position:sticky;top:0;height:var(--navbar-height);background:var(--color-card-bg);box-shadow:0 1px 4px #0000000f;display:flex;align-items:center;justify-content:space-between;padding:0 24px;z-index:1030}.navbar-left{display:flex;align-items:center;gap:16px}.navbar-hamburger{display:none;width:40px;height:40px;border:none;background:var(--color-body-bg);border-radius:var(--radius-sm);color:var(--color-text-dark);font-size:18px;cursor:pointer;transition:var(--transition)}.navbar-hamburger:hover{background:var(--color-primary-bg);color:var(--color-primary)}.navbar-search{position:relative;min-width:280px}.navbar-search input{width:100%;padding:9px 16px 9px 40px;border:1px solid transparent;border-radius:50px;background:var(--color-body-bg);font-size:13px;transition:var(--transition);outline:none}.navbar-search input:focus{background:#fff;border-color:var(--color-primary-light);box-shadow:0 0 0 3px #1565c01f}.navbar-search i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--color-text-muted);font-size:13px}.navbar-right{display:flex;align-items:center;gap:8px}.navbar-notification,.navbar-notification .btn-icon{position:relative}.notification-badge{position:absolute;top:2px;right:2px;width:18px;height:18px;background:var(--color-danger);color:#fff;font-size:10px;font-weight:700;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid #fff}.notification-dropdown{width:360px;padding:0;border:none;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);overflow:hidden}.notification-dropdown-header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--color-border);font-weight:600;font-size:14px}.notification-dropdown-header a{font-size:12px;font-weight:500}.notification-list{max-height:300px;overflow-y:auto}.notification-item{padding:12px 16px;border-bottom:1px solid var(--color-border);transition:var(--transition);cursor:pointer}.notification-item:hover{background:var(--color-primary-bg)}.notification-item.unread{background:#f5f9ff}.notification-item-title{font-size:13px;font-weight:600;margin-bottom:2px}.notification-item-text{font-size:12px;color:var(--color-text-muted)}.notification-item-time{font-size:11px;color:var(--color-text-light);margin-top:4px}.notification-dropdown-footer{padding:10px 16px;text-align:center;border-top:1px solid var(--color-border);background:#fafbfc}.navbar-user .dropdown-toggle{display:flex;align-items:center;gap:10px;padding:6px 10px;border:none;background:transparent;border-radius:var(--radius-sm);transition:var(--transition)}.navbar-user .dropdown-toggle:hover{background:var(--color-body-bg)}.navbar-user-avatar{width:36px;height:36px;border-radius:50%;background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:14px}.navbar-user-name{font-size:13px;font-weight:600;color:var(--color-text-dark);text-align:left}.navbar-user-role{font-size:11px;color:var(--color-text-muted)}.dropdown-menu-user .dropdown-item.text-danger:hover{background:#ffebee;color:var(--color-danger-dark)!important}.app-breadcrumb{font-size:13px;margin-bottom:16px}.app-breadcrumb .breadcrumb{margin-bottom:0;padding:0;background:transparent}.app-breadcrumb .breadcrumb-item a{color:var(--color-primary)}.app-breadcrumb .breadcrumb-item.active{color:var(--color-text-muted)}.app-breadcrumb .breadcrumb-item+.breadcrumb-item:before{color:var(--color-text-light)}.app-footer{background:var(--color-card-bg);border-top:1px solid var(--color-border);padding:14px 24px;font-size:13px;color:var(--color-text-muted);display:flex;justify-content:space-between;align-items:center}.card-app{background:var(--color-card-bg);border:none;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:var(--transition);margin-bottom:20px}.card-app:hover{box-shadow:var(--shadow-md)}.card-app .card-header{background:var(--color-card-bg);border-bottom:1px solid var(--color-border);padding:16px 20px;font-size:15px;font-weight:700;color:var(--color-text-dark)}.card-app .card-body{padding:var(--card-padding)}.card-app .card-footer{background:var(--color-card-bg);border-top:1px solid var(--color-border);padding:14px 20px}.stat-card{position:relative;border-radius:var(--radius-md);padding:20px 22px;color:#fff;overflow:hidden;transition:var(--transition);border:none;min-height:120px}.stat-card:before{content:"";position:absolute;top:-20px;right:-20px;width:100px;height:100px;border-radius:50%;background:#ffffff1f}.stat-card .stat-icon{position:absolute;right:20px;top:50%;transform:translateY(-50%);font-size:40px;opacity:.3}.stat-card .stat-value{font-size:28px;font-weight:800;line-height:1.1;margin-bottom:4px;position:relative;z-index:1}.stat-card .stat-label{font-size:13px;opacity:.85;position:relative;z-index:1}.stat-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}.stat-card-primary{background:var(--gradient-primary)}.stat-card-success{background:var(--gradient-success)}.stat-card-warning{background:var(--gradient-warning)}.stat-card-danger{background:var(--gradient-danger)}.stat-card-info{background:var(--gradient-info)}.stat-card-purple{background:var(--gradient-purple)}.btn-app{font-weight:600;border-radius:var(--radius-sm);padding:8px 18px;border:none;transition:var(--transition);display:inline-flex;align-items:center;gap:6px;justify-content:center}.btn-app:hover{transform:translateY(-1px)}.btn-app.btn-sm{padding:5px 12px;font-size:12px}.btn-app.btn-lg{padding:12px 28px;font-size:16px}.btn-primary-app{background:var(--gradient-primary);color:#fff;box-shadow:0 4px 12px #1565c04d}.btn-primary-app:hover{background:linear-gradient(135deg,var(--color-primary-dark) 0%,var(--color-primary-darker) 100%);color:#fff;box-shadow:0 6px 16px #1565c066}.btn-success-app{background:var(--gradient-success);color:#fff;box-shadow:0 4px 12px #43a0474d}.btn-success-app:hover{background:linear-gradient(135deg,var(--color-success-dark) 0%,#1B5E20 100%);color:#fff}.btn-danger-app{background:var(--gradient-danger);color:#fff;box-shadow:0 4px 12px #e539354d}.btn-danger-app:hover{background:linear-gradient(135deg,var(--color-danger-dark) 0%,#B71C1C 100%);color:#fff}.btn-warning-app{background:var(--gradient-warning);color:#fff;box-shadow:0 4px 12px #fb8c004d}.btn-warning-app:hover{background:linear-gradient(135deg,var(--color-warning-dark) 0%,#E65100 100%);color:#fff}.btn-outline-primary-app{background:transparent;color:var(--color-primary);border:2px solid var(--color-primary);box-shadow:none}.btn-outline-primary-app:hover{background:var(--color-primary);color:#fff}.btn-icon-app{width:36px;height:36px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);border:none;background:var(--color-body-bg);color:var(--color-text-dark);transition:var(--transition);cursor:pointer}.btn-icon-app:hover{background:var(--color-primary-bg);color:var(--color-primary);transform:translateY(-1px)}.form-control-app,.form-select-app{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:10px 14px;font-size:14px;transition:var(--transition);color:var(--color-text-dark)}.form-control-app:focus,.form-select-app:focus{border-color:var(--color-primary-light);box-shadow:0 0 0 3px #1565c01f;outline:none}.input-group-text-app{background:#fafbfc;border:1px solid var(--color-border);color:var(--color-text-muted);font-size:13px}.form-check-input:checked{background-color:var(--color-primary);border-color:var(--color-primary)}.form-check-input:focus{box-shadow:0 0 0 3px #1565c01f;border-color:var(--color-primary-light)}.select2-container--bootstrap-5 .select2-selection{min-height:42px;border-color:var(--color-border);border-radius:var(--radius-sm);padding:4px 8px}.select2-container--bootstrap-5.select2-container--focus .select2-selection,.select2-container--bootstrap-5.select2-container--open .select2-selection{border-color:var(--color-primary-light);box-shadow:0 0 0 3px #1565c01f}.table-app{margin-bottom:0}.table-app thead th{background:var(--color-primary-bg);color:var(--color-primary-dark);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--color-primary-bg-alt);padding:12px 16px;vertical-align:middle;white-space:nowrap}.table-app tbody td{padding:12px 16px;vertical-align:middle;border-color:var(--color-border)}.table-app tbody tr:hover{background:#f5f9ff}.table-app.table-striped>tbody>tr:nth-of-type(odd){background:#fafcff}.table-app.table-striped>tbody>tr:nth-of-type(odd):hover{background:#f5f9ff}.dataTables_wrapper .dataTables_length select,.dataTables_wrapper .dataTables_filter input{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:6px 10px;font-size:13px}.dataTables_wrapper .dataTables_paginate .paginate_button{border-radius:var(--radius-sm)!important;margin:0 2px;border:1px solid var(--color-border)!important;transition:var(--transition)}.dataTables_wrapper .dataTables_paginate .paginate_button.current{background:var(--color-primary)!important;color:#fff!important;border-color:var(--color-primary)!important}.dataTables_wrapper .dataTables_paginate .paginate_button:hover:not(.current){background:var(--color-primary-bg)!important;color:var(--color-primary)!important;border-color:var(--color-primary-bg-alt)!important}.dataTables_wrapper .dataTables_info{font-size:13px;color:var(--color-text-muted)}.badge-status{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:50px;font-size:11px;font-weight:700;line-height:1}.badge-status:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.badge-status-lunas,.badge-status-aktif{background:var(--badge-lunas-bg);color:var(--badge-lunas-text)}.badge-status-belum{background:var(--badge-belum-bg);color:var(--badge-belum-text)}.badge-status-sebagian{background:var(--badge-sebagian-bg);color:var(--badge-sebagian-text)}.badge-status-batal{background:var(--badge-batal-bg);color:var(--badge-batal-text)}.badge-status-pending{background:var(--badge-pending-bg);color:var(--badge-pending-text)}.badge-status-nonaktif{background:var(--badge-nonaktif-bg);color:var(--badge-nonaktif-text)}.alert-app{border:none;border-radius:var(--radius-sm);padding:14px 20px;font-size:14px;display:flex;align-items:center;gap:10px;margin-bottom:16px;animation:slideUp .5s ease}.alert-app.alert-success{background:#e8f5e9;color:var(--color-success-dark)}.alert-app.alert-danger{background:#ffebee;color:var(--color-danger-dark)}.alert-app.alert-warning{background:#fff3e0;color:#e65100}.alert-app.alert-info{background:var(--color-primary-bg);color:var(--color-primary-dark)}.alert-app .btn-close{margin-left:auto}.modal-app .modal-content{border:none;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.modal-app .modal-header{padding:18px 24px;border-bottom:1px solid var(--color-border)}.modal-app .modal-title{font-size:16px;font-weight:700}.modal-app .modal-body{padding:24px}.modal-app .modal-footer{padding:16px 24px;border-top:1px solid var(--color-border)}.pos-layout{display:grid;grid-template-columns:1fr 400px;gap:20px;height:calc(100vh - var(--navbar-height) - (var(--content-padding) * 2) - 60px);min-height:500px}.pos-products{overflow-y:auto}.pos-product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px}.pos-product-card{background:var(--color-card-bg);border-radius:var(--radius-md);padding:16px;text-align:center;box-shadow:var(--shadow-sm);border:2px solid transparent;cursor:pointer;transition:var(--transition)}.pos-product-card:hover{border-color:var(--color-primary-light);transform:translateY(-2px);box-shadow:var(--shadow-md)}.pos-product-card .product-name{font-size:13px;font-weight:600;margin-top:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pos-product-card .product-price{font-size:14px;font-weight:700;color:var(--color-primary);margin-top:4px}.pos-cart{display:flex;flex-direction:column;background:var(--color-card-bg);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden}.pos-cart-header{background:var(--gradient-primary);color:#fff;padding:16px 20px;font-weight:700;font-size:15px}.pos-cart-items{flex:1;overflow-y:auto;padding:12px 16px}.pos-cart-footer{border-top:1px solid var(--color-border);padding:16px 20px;background:#fafbfc}.pos-cart-total{font-size:24px;font-weight:700;color:var(--color-primary-darker);margin-bottom:12px}.pos-pay-btn{width:100%;font-size:18px;font-weight:700}.portal-body{background:var(--color-body-bg);padding-bottom:72px;min-height:100vh}.portal-header{background:var(--gradient-primary);color:#fff;padding:20px 16px 24px;border-radius:0 0 var(--radius-lg) var(--radius-lg)}.portal-header-title{font-size:20px;font-weight:700;margin:0}.portal-header-sub{font-size:13px;opacity:.85;margin-top:4px}.portal-content{padding:16px 16px 80px;animation:fadeIn .4s ease;min-height:calc(100vh - 120px)}.portal-card{background:var(--color-card-bg);border-radius:var(--radius-md);padding:16px;box-shadow:var(--shadow-sm);border:1px solid var(--color-border)}.portal-bottom-nav{position:fixed;bottom:0;left:0;right:0;height:64px;background:var(--color-card-bg);border-top:1px solid var(--color-border);display:flex;justify-content:space-around;align-items:center;z-index:1050;box-shadow:0 -2px 10px #0000000f;padding:0 8px}.portal-nav-item{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 12px;color:var(--color-text-muted);font-size:10px;font-weight:600;text-decoration:none;transition:var(--transition);border-radius:var(--radius-sm)}.portal-nav-item i{font-size:20px}.portal-nav-item.active,.portal-nav-item:hover{color:var(--color-primary)}.portal-nav-item.active{background:var(--color-primary-bg)}.staff-body{background:var(--color-body-bg);min-height:100vh}.staff-header{background:var(--gradient-primary);color:#fff;padding:16px 20px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100}.staff-header-title{font-size:18px;font-weight:700;margin:0}.staff-content{padding:16px}.staff-quick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px;margin-bottom:20px}.staff-quick-card{background:var(--color-card-bg);border-radius:var(--radius-md);padding:20px 14px;text-align:center;box-shadow:var(--shadow-sm);text-decoration:none;color:var(--color-text-dark);transition:var(--transition);border:2px solid transparent}.staff-quick-card:hover{border-color:var(--color-primary-light);transform:translateY(-2px);box-shadow:var(--shadow-md);color:var(--color-primary)}.staff-quick-card i{font-size:28px;color:var(--color-primary);margin-bottom:8px;display:block}.staff-quick-card span{font-size:12px;font-weight:600;display:block}.staff-lane-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}.staff-lane-card{border-radius:var(--radius-md);padding:14px;text-align:center;font-weight:700;color:#fff;font-size:14px}.staff-lane-card.lane-available{background:var(--gradient-success)}.staff-lane-card.lane-occupied{background:var(--gradient-primary)}.staff-lane-card.lane-maintenance{background:var(--gradient-warning)}.staff-lane-card.lane-blocked{background:var(--gradient-danger)}.login-body{font-family:Plus Jakarta Sans,Segoe UI,-apple-system,BlinkMacSystemFont,sans-serif}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0f172a,#1e3a8a 45%,#1d4ed8);padding:24px;position:relative;overflow:hidden}.login-bg-shapes{position:absolute;inset:0;pointer-events:none}.login-shape{position:absolute;border-radius:50%;background:#ffffff0f}.login-shape-1{width:420px;height:420px;top:-120px;right:-80px}.login-shape-2{width:280px;height:280px;bottom:-80px;left:-60px}.login-shape-3{width:160px;height:160px;top:40%;left:12%;background:#60a5fa1f}.login-shell{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);width:100%;max-width:920px;min-height:560px;background:#fffffffa;border-radius:24px;box-shadow:0 24px 80px #0f172a59;overflow:hidden;animation:slideUp .55s ease}.login-brand-panel{background:linear-gradient(160deg,#1e40af,#1d4ed8 55%,#2563eb);color:#fff;padding:48px 40px;display:flex;align-items:center;position:relative;overflow:hidden}.login-brand-panel:before{content:"";position:absolute;top:-60px;right:-60px;width:220px;height:220px;border-radius:50%;background:#ffffff14}.login-brand-panel:after{content:"";position:absolute;bottom:-80px;left:-40px;width:260px;height:260px;border-radius:50%;background:#ffffff0f}.login-brand-content{position:relative;z-index:1}.login-brand-badge{width:64px;height:64px;border-radius:18px;background:#ffffff29;border:1px solid rgba(255,255,255,.22);display:inline-flex;align-items:center;justify-content:center;font-size:28px;margin-bottom:24px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.login-brand-panel h2{font-size:2rem;font-weight:800;color:#fff;margin:0 0 12px;line-height:1.2;letter-spacing:-.02em}.login-brand-panel>.login-brand-content>p{font-size:15px;line-height:1.6;color:#ffffffe0;margin:0 0 28px;max-width:320px}.login-feature-list{list-style:none;padding:0;margin:0;display:grid;gap:12px}.login-feature-list li{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:500;color:#ffffffeb}.login-feature-list i{color:#93c5fd;font-size:15px}.login-card{display:flex;align-items:center;justify-content:center;background:#fff}.login-card-body{width:100%;max-width:380px;padding:48px 40px}.login-card-intro{margin-bottom:28px}.login-card-intro h1{font-size:1.75rem;font-weight:800;color:#0f172a;margin:0 0 8px;letter-spacing:-.02em}.login-card-intro p{margin:0;font-size:14px;color:var(--color-text-muted)}.login-input-group .input-group-text-app{border-right:none;background:#f8fafc;color:#64748b;min-width:46px;justify-content:center}.login-input-group .form-control-app{border-left:none;background:#f8fafc;padding-top:12px;padding-bottom:12px}.login-input-group:focus-within .input-group-text-app,.login-input-group:focus-within .form-control-app{background:#fff}.login-form-options{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px}.login-form-options .form-check-label{font-size:13px;color:#475569}.login-forgot-link{font-size:13px;font-weight:600;color:var(--color-primary);white-space:nowrap}.login-forgot-link:hover{color:var(--color-primary-dark)}.login-submit-btn{gap:10px;padding-top:14px;padding-bottom:14px;border-radius:12px;font-size:15px;letter-spacing:.01em}.login-submit-btn i{transition:transform .25s ease}.login-submit-btn:hover i{transform:translate(4px)}@media(max-width:767px){.login-page{padding:32px 16px 16px;align-items:flex-start}.login-shell{grid-template-columns:1fr;min-height:auto}.login-brand-panel{padding:32px 28px 28px}.login-brand-panel h2{font-size:1.5rem}.login-feature-list{display:none}.login-card-body{padding:32px 28px 36px;max-width:none}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-fade-in{animation:fadeIn .4s ease}.animate-slide-up{animation:slideUp .5s ease}.loading-overlay{position:fixed;inset:0;background:#ffffffd9;display:flex;align-items:center;justify-content:center;z-index:9999}.loading-spinner{width:48px;height:48px;border:4px solid var(--color-primary-bg);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@media(max-width:991px){.main-wrapper{margin-left:0}.app-sidebar{transform:translate(-100%)}.app-sidebar.show{transform:translate(0)}.navbar-hamburger{display:flex;align-items:center;justify-content:center}.navbar-search{min-width:200px}}@media(max-width:575px){.content-wrapper{padding:16px}.app-navbar{padding:0 16px}.navbar-search{display:none}.notification-dropdown{width:300px}.pos-layout{grid-template-columns:1fr;height:auto}.pos-product-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.stat-card .stat-value{font-size:22px}.page-title{font-size:18px}.navbar-user-name,.navbar-user-role{display:none}}.report-hero{background:var(--gradient-primary);border-radius:var(--radius-lg);padding:28px 32px;color:#fff;margin-bottom:24px;position:relative;overflow:hidden}.report-hero:after{content:"";position:absolute;top:-40px;right:-40px;width:180px;height:180px;border-radius:50%;background:#ffffff1a}.report-hero h1{color:#fff;font-size:1.75rem;margin-bottom:6px;position:relative;z-index:1}.report-hero p{color:#ffffffe0;margin-bottom:0;position:relative;z-index:1}.report-hero-stats{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px;position:relative;z-index:1}.report-hero-stat{background:#ffffff26;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-md);padding:10px 16px;min-width:120px}.report-hero-stat strong{display:block;font-size:1.25rem;line-height:1.2}.report-hero-stat span{font-size:12px;opacity:.9}.report-search-bar{background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:16px 20px;margin-bottom:20px;box-shadow:var(--shadow-sm)}.report-search-input{position:relative}.report-search-input i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--color-text-muted)}.report-search-input .form-control{padding-left:40px;border-radius:var(--radius-sm);height:44px}.report-chips{display:flex;flex-wrap:wrap;gap:8px}.report-chip{border:1px solid var(--color-border);background:var(--color-card-bg);color:var(--color-text-dark);border-radius:999px;padding:6px 14px;font-size:13px;font-weight:600;cursor:pointer;transition:var(--transition)}.report-chip:hover,.report-chip.active{background:var(--color-primary-bg);border-color:var(--color-primary-light);color:var(--color-primary)}.report-category-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-card-bg);box-shadow:var(--shadow-sm);overflow:hidden;transition:var(--transition);height:100%}.report-category-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.report-category-card .card-head{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--color-border)}.report-category-icon{width:42px;height:42px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;color:#fff;font-size:18px;flex-shrink:0}.report-category-icon.primary{background:var(--gradient-primary)}.report-category-icon.success{background:var(--gradient-success)}.report-category-icon.warning{background:var(--gradient-warning)}.report-category-icon.danger{background:var(--gradient-danger)}.report-category-icon.info{background:var(--gradient-info)}.report-category-icon.purple{background:var(--gradient-purple)}.report-link-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;text-decoration:none;color:var(--color-text-dark);border-bottom:1px solid var(--color-border);transition:var(--transition)}.report-link-item:last-child{border-bottom:none}.report-link-item:hover{background:var(--color-primary-bg);color:var(--color-primary);padding-left:22px}.report-link-item i.fa-chevron-right{color:var(--color-text-light);font-size:11px;transition:var(--transition)}.report-link-item:hover i.fa-chevron-right{color:var(--color-primary);transform:translate(3px)}.report-empty-search{text-align:center;padding:48px 24px;background:var(--color-card-bg);border:1px dashed var(--color-border);border-radius:var(--radius-md)}.report-empty-search i{font-size:42px;color:var(--color-text-light);margin-bottom:12px}.report-show-hero{background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:22px 24px;margin-bottom:20px;box-shadow:var(--shadow-sm)}.report-show-hero .category-badge{display:inline-flex;align-items:center;gap:8px;background:var(--color-primary-bg);color:var(--color-primary);border-radius:999px;padding:6px 12px;font-size:12px;font-weight:700;margin-bottom:10px}.report-type-nav{display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;padding-bottom:4px;margin-bottom:20px;scrollbar-width:thin}.report-type-pill{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;border:1px solid var(--color-border);background:var(--color-card-bg);color:var(--color-text-dark);font-size:13px;font-weight:600;text-decoration:none;transition:var(--transition);white-space:nowrap}.report-type-pill:hover{border-color:var(--color-primary-light);color:var(--color-primary);background:var(--color-primary-bg)}.report-type-pill.active{background:var(--gradient-primary);border-color:transparent;color:#fff;box-shadow:var(--shadow-sm)}.report-filter-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-card-bg);box-shadow:var(--shadow-sm);margin-bottom:20px}.report-filter-card .filter-head{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--color-border);background:#fafbfc;border-radius:var(--radius-md) var(--radius-md) 0 0}.report-date-presets{display:flex;flex-wrap:wrap;gap:8px}.report-date-presets .btn{font-size:12px;font-weight:600;padding:5px 12px;border-radius:999px}.report-date-presets .btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.report-active-filters{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.report-filter-tag{display:inline-flex;align-items:center;gap:6px;background:var(--color-primary-bg);color:var(--color-primary);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600}.report-summary-grid .stat-card{min-height:100px}.report-table-card .card-head{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--color-border)}.report-table-card .row-count{font-size:13px;color:var(--color-text-muted);font-weight:600}.report-empty-state{text-align:center;padding:56px 24px}.report-empty-state .empty-icon{width:72px;height:72px;border-radius:50%;background:var(--color-primary-bg);color:var(--color-primary);display:inline-flex;align-items:center;justify-content:center;font-size:28px;margin-bottom:16px}.report-export-group .btn{font-weight:600}.page-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px}.filter-panel{border:1px solid var(--color-border);background:linear-gradient(180deg,#fafbfc,#fff)}.filter-panel-form .form-label{font-size:12px;text-transform:uppercase;letter-spacing:.4px;color:var(--color-text-muted)}.datagrid-card .card-header{background:#fafbfc;font-weight:700}.datagrid-card .table-app thead th{position:sticky;top:0;z-index:2;box-shadow:0 1px 0 var(--color-border)}.datagrid-actions{display:flex;gap:4px;flex-wrap:nowrap}.datagrid-actions .btn{padding:4px 8px}.datagrid-empty{color:var(--color-text-muted)}.form-card .card-header{background:#fafbfc}.form-actions{background:#fafbfc;margin:0 -20px -20px;padding:16px 20px!important;border-radius:0 0 var(--radius-md) var(--radius-md)}.detail-hero{background:linear-gradient(135deg,#fff 0%,var(--color-primary-bg) 100%);border:1px solid var(--color-border)}.card-outline-primary{border-top:3px solid var(--color-primary)}.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter{margin-bottom:0}.dataTables_wrapper .dataTables_filter input{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:6px 10px;margin-left:8px}.dataTables_wrapper .dataTables_filter input:focus{border-color:var(--color-primary-light);box-shadow:0 0 0 3px #1565c01f;outline:none}.pos-layout-v2{display:grid;grid-template-columns:1fr 380px;gap:20px;min-height:calc(100vh - var(--navbar-height) - 120px)}.pos-product-tabs .nav-link{font-weight:600;border-radius:var(--radius-sm) var(--radius-sm) 0 0}.pos-product-tabs .nav-link.active{background:var(--color-primary);color:#fff}.pos-cart-panel{position:sticky;top:calc(var(--navbar-height) + 16px);max-height:calc(100vh - var(--navbar-height) - 32px);display:flex;flex-direction:column}.dashboard-widget{border-radius:var(--radius-md);border:1px solid var(--color-border);background:#fff;box-shadow:var(--shadow-sm);transition:var(--transition)}.dashboard-widget:hover{box-shadow:var(--shadow-md)}.dashboard-quick-actions{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}.dashboard-quick-action{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 12px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:#fff;text-decoration:none;color:var(--color-text-dark);transition:var(--transition)}.dashboard-quick-action:hover{border-color:var(--color-primary-light);color:var(--color-primary);transform:translateY(-2px)}.dashboard-quick-action i{font-size:24px;color:var(--color-primary)}@media(max-width:767px){.report-hero{padding:20px}.report-show-hero .d-flex{flex-direction:column;align-items:flex-start!important;gap:12px}.report-export-group{width:100%}.report-export-group .btn{flex:1}}@media print{.app-sidebar,.app-navbar,.app-footer,.sidebar-overlay,.no-print,.portal-bottom-nav,.staff-header{display:none!important}.main-wrapper{margin-left:0!important;width:100%!important}.content-wrapper{padding:0!important}.card-app{box-shadow:none!important;border:1px solid #ddd!important}body{background:#fff!important}}.pos-screen-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,.9fr) minmax(300px,.85fr);gap:16px;min-height:calc(100vh - var(--navbar-height) - 140px);align-items:start}.pos-products-col,.pos-cart-col{display:flex;flex-direction:column;min-height:calc(100vh - var(--navbar-height) - 140px)}.pos-products-body{flex:1;overflow-y:auto;max-height:calc(100vh - var(--navbar-height) - 220px)}.pos-search-wrap{position:relative;min-width:200px}.pos-search-wrap i{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--color-text-muted);font-size:12px}.pos-search-wrap input{padding-left:30px}.pos-category-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);margin-bottom:8px}.pos-product-card{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:88px;border:none;width:100%}.pos-product-card--shop .product-stock{font-size:11px;color:var(--color-text-muted);margin-top:2px}.pos-cart-col{background:var(--color-card-bg);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden}.pos-cart-header{display:flex;align-items:center;justify-content:space-between;background:var(--gradient-primary);color:#fff;padding:14px 16px;font-weight:600}.pos-cart-items{flex:1;overflow-y:auto;padding:12px;min-height:200px;max-height:calc(100vh - var(--navbar-height) - 340px)}.pos-cart-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--color-text-muted);padding:48px 16px;text-align:center}.pos-cart-line{display:grid;grid-template-columns:1fr auto auto auto;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid var(--color-border)}.pos-cart-line-info{min-width:0}.pos-cart-line-qty{display:flex;align-items:center;gap:6px}.pos-cart-line-qty .btn{width:28px;height:28px;padding:0;line-height:1}.pos-cart-line-total{font-weight:600;white-space:nowrap;font-size:13px}.pos-cart-summary{border-top:1px solid var(--color-border);padding:14px 16px;background:#fafbfc}.pos-summary-row{display:flex;justify-content:space-between;font-size:13px;margin-bottom:6px}.pos-summary-total{font-size:18px;font-weight:700;color:var(--color-primary-darker);margin-top:8px;padding-top:8px;border-top:1px dashed var(--color-border)}.pos-payment-col{position:sticky;top:calc(var(--navbar-height) + 16px)}.pos-lane-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px}.pos-lane-card{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 8px;border:2px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;cursor:pointer;transition:var(--transition);text-align:center}.pos-lane-card:hover,.pos-lane-card.active{border-color:var(--color-primary);background:#1565c00f}.pos-numpad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.pos-numpad-btn{padding:10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;font-weight:600;font-size:13px;cursor:pointer;transition:var(--transition)}.pos-numpad-btn:hover{border-color:var(--color-primary-light);color:var(--color-primary)}.pos-numpad-btn--exact{grid-column:span 3;background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.pos-numpad-btn--exact:hover{color:#fff;background:var(--color-primary-dark)}@media(max-width:1200px){.pos-screen-grid{grid-template-columns:1fr 1fr}.pos-payment-col{grid-column:span 2;position:static}}@media(max-width:768px){.pos-screen-grid{grid-template-columns:1fr}.pos-payment-col{grid-column:span 1}.pos-products-col,.pos-cart-col{min-height:auto}.pos-products-body,.pos-cart-items{max-height:360px}}
