@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Noto+Sans+KR:wght@300;400;500;700;900&display=swap";:root{--bg-primary:#f4f6fa;--bg-secondary:#fff;--bg-card:#fff;--border-color:#ebedf2;--text-primary:#191f28;--text-secondary:#4e5968;--text-muted:#8b95a1;--primary:#1a64f4;--primary-hover:#0c52d4;--primary-glow:#1a64f40f;--success:#16a34a;--danger:#ef4444;--font-sans:"Inter", "Noto Sans KR", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--shadow-sm:0 1px 3px #00000005;--shadow-md:0 8px 24px #0000000a;--transition:all .15s ease}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-primary);color:var(--text-primary);font-family:var(--font-sans);-webkit-user-select:none;user-select:none;height:100dvh;overflow:hidden}#root{height:100dvh}.app-container{background-color:var(--bg-primary);flex-direction:column;height:100dvh;display:flex}.app-header{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);z-index:10;justify-content:space-between;align-items:center;height:64px;padding:0 28px;display:flex}.header-logo{align-items:center;gap:8px;display:flex}.header-logo-icon{background:var(--primary);color:#fff;border-radius:6px;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;font-weight:800;display:flex}.header-logo h1{letter-spacing:-.3px;color:var(--text-primary);font-size:18px;font-weight:700}.gnb-tabs{align-items:center;height:100%;display:flex}.gnb-tab{height:100%;color:var(--text-secondary);cursor:pointer;transition:var(--transition);background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;padding:0 20px;font-size:15px;font-weight:500;text-decoration:none;display:flex}.gnb-tab:hover{color:var(--text-primary)}.gnb-tab.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:700}.header-profile{cursor:pointer;color:var(--text-secondary);align-items:center;gap:8px;font-size:14px;font-weight:500;display:flex}.profile-avatar{width:32px;height:32px;color:var(--text-secondary);background:#f1f3f5;border-radius:50%;justify-content:center;align-items:center;display:flex}.pos-dashboard{flex:1;gap:24px;padding:24px 24px 16px;display:flex;overflow:hidden}.pos-main-panel{flex-direction:column;flex:2.3;gap:16px;display:flex;overflow:hidden}.pos-side-panel{background:var(--bg-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid var(--border-color);flex-direction:column;flex:1;display:flex;overflow:hidden}.search-row{gap:16px;display:flex}.search-container{flex:1;position:relative}.search-icon-wrapper{color:var(--text-muted);position:absolute;top:50%;left:16px;transform:translateY(-50%)}.search-input{border-radius:var(--radius-md);width:100%;height:46px;color:var(--text-primary);background:#f2f4f6;border:1px solid #0000;outline:none;padding:0 16px 0 46px;font-size:15px;transition:all .15s}.search-input:focus{border-color:var(--primary);background:#fff;box-shadow:0 0 0 3px #1a64f414}.btn-category{border-radius:var(--radius-md);height:46px;color:var(--text-secondary);cursor:pointer;background:#f2f4f6;border:none;align-items:center;gap:6px;padding:0 18px;font-size:14px;font-weight:600;transition:all .15s;display:flex}.btn-category:hover{color:var(--text-primary);background:#e9ecef}.btn-category:active{transform:scale(.95)}.category-chips{gap:8px;padding:2px 0;display:flex;overflow-x:auto}.category-chips::-webkit-scrollbar{display:none}.category-chip{color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:#f2f4f6;border:none;border-radius:24px;padding:10px 20px;font-size:14px;font-weight:600;transition:all .15s cubic-bezier(.4,0,.2,1)}.category-chip:hover{color:var(--text-primary);background:#e9ecef}.category-chip:active{transform:scale(.95)}.category-chip.active{background:var(--primary);color:#fff}.products-grid-container{flex:1;padding-right:4px;overflow-y:auto}.products-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:20px;padding-bottom:20px;display:grid}.product-card{border:1px solid var(--border-color);border-radius:var(--radius-lg);cursor:pointer;background:#fff;outline:none;flex-direction:column;align-items:center;height:216px;padding:16px;transition:all .15s;display:flex;box-shadow:0 2px 8px #00000005}.product-card:hover:not(.sold-out){border-color:#1a64f459;box-shadow:0 8px 24px #1a64f40f}.product-card:active:not(.sold-out){background-color:#f8fafc;transform:scale(.96)}.product-image-container{border-radius:var(--radius-md);background:#f8fafc;flex-shrink:0;justify-content:center;align-items:center;width:100%;height:100px;margin-bottom:12px;transition:all .2s;display:flex;overflow:hidden}.product-card:hover:not(.sold-out) .product-image-container{background:#f1f3f5}.product-image{object-fit:contain;max-width:85%;max-height:85%;transition:transform .2s cubic-bezier(.4,0,.2,1)}.product-card:hover:not(.sold-out) .product-image{transform:scale(1.06)}.product-info{flex-direction:column;flex-shrink:0;justify-content:space-between;width:100%;height:72px;display:flex}.product-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;text-align:left;width:100%;font-size:14.5px;font-weight:700;overflow:hidden}.product-price{color:var(--primary);text-align:left;font-size:15px;font-weight:700}.product-stock-badge{border-radius:6px;justify-content:center;align-items:center;padding:4px 8px;font-size:11px;font-weight:700;display:inline-flex}.product-stock-badge.low{color:#ef4444;background:#fee2e2}.product-stock-badge.normal{color:#64748b;background:#f1f5f9}.bottom-control-bar{border-top:1px solid var(--border-color);z-index:10;background:#fff;justify-content:space-between;align-items:center;height:64px;padding:0 28px;display:flex}.bottom-left-controls{align-items:center;gap:20px;display:flex}.receipt-toggle-label{color:var(--text-secondary);align-items:center;gap:8px;font-size:14px;font-weight:500;display:flex}.receipt-toggle-switch{width:44px;height:24px;display:inline-block;position:relative}.receipt-toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{cursor:pointer;background-color:#cbd5e1;border-radius:24px;transition:all .2s;position:absolute;inset:0}.toggle-slider:before{content:"";background-color:#fff;border-radius:50%;width:18px;height:18px;transition:all .2s;position:absolute;bottom:3px;left:3px}input:checked+.toggle-slider{background-color:var(--primary)}input:checked+.toggle-slider:before{transform:translate(20px)}.btn-draft{border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;background:#fff;padding:8px 16px;font-size:14px;font-weight:500}.bottom-right-recent{align-items:center;gap:8px;display:flex}.recent-label{color:var(--text-secondary);font-size:14px;font-weight:500}.recent-chips{gap:6px;display:flex}.recent-chip{border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;background:#fff;border-radius:20px;padding:6px 12px;font-size:12px}.cart-header{background:var(--bg-secondary);border-bottom:none;flex-shrink:0;justify-content:space-between;align-items:center;padding:24px 24px 12px;display:flex}.cart-header h2{color:var(--text-primary);letter-spacing:-.4px;font-size:18px;font-weight:800}.clear-cart-btn{border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;background:#f2f4f6;border:none;align-items:center;gap:4px;padding:6px 12px;font-size:12px;font-weight:600;transition:all .15s;display:flex}.clear-cart-btn:hover{color:var(--text-primary);background:#e9ecef}.clear-cart-btn:active{transform:scale(.95)}.cart-items-list{background:#fff;flex-direction:column;flex:1;padding:0 24px;display:flex;overflow-y:auto}.cart-item{box-shadow:none;background:#fff;border-bottom:1px solid #f2f4f6;border-radius:0;justify-content:space-between;align-items:center;gap:12px;padding:20px 0;transition:background-color .15s;display:flex}.cart-item:last-child{border-bottom:none}.cart-item-details{flex:1;min-width:0;padding-right:8px}.cart-item-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;margin-bottom:3px;font-size:14.5px;font-weight:700;overflow:hidden}.cart-item-price{color:var(--text-secondary);font-size:13px;font-weight:500}.cart-item-controls{background:#f2f4f6;border:none;border-radius:20px;flex-shrink:0;justify-content:space-between;align-items:center;width:96px;padding:2px;display:flex}.quantity-btn{width:28px;height:28px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:14px;transition:all .1s;display:flex}.quantity-btn:hover{color:var(--text-primary);background:#fff;box-shadow:0 1px 3px #0000000d}.quantity-btn:active{transform:scale(.85)}.cart-item-quantity{text-align:center;width:28px;color:var(--text-primary);font-size:14px;font-weight:700}.cart-item-total{color:var(--text-primary);text-align:right;letter-spacing:-.2px;flex-shrink:0;width:84px;font-size:15px;font-weight:700}.delete-item-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;padding:6px;transition:all .15s;display:flex}.delete-item-btn:hover{color:var(--danger);background:#fee2e2}.delete-item-btn:active{transform:scale(.9)}.cart-empty{color:var(--text-muted);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:40px 20px;display:flex}.cart-empty-icon{font-size:44px;animation:2s ease-in-out infinite bounce;display:inline-block}.cart-empty-text{color:var(--text-secondary);font-size:14px;font-weight:600}.cart-footer{border-top:1px solid var(--border-color);background:var(--bg-secondary);box-shadow:none;flex-direction:column;flex-shrink:0;gap:12px;padding:24px;display:flex}.summary-row{color:var(--text-secondary);justify-content:space-between;font-size:14px;font-weight:500;display:flex}.summary-row.total{color:var(--text-primary);border-top:none;align-items:center;margin-top:8px;padding-top:12px;font-size:18px;font-weight:700}.summary-row.total .total-price{color:var(--primary);letter-spacing:-.8px;font-size:30px;font-weight:800}.action-buttons{margin-top:12px;display:block}.btn-primary{background:var(--primary);color:#fff;border-radius:var(--radius-md);cursor:pointer;border:none;outline:none;width:100%;height:56px;font-size:17px;font-weight:800;transition:all .15s cubic-bezier(.4,0,.2,1)}.btn-primary:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-2px);box-shadow:0 8px 16px #1a64f426}.btn-primary:active:not(:disabled){transform:translateY(0)scale(.98);box-shadow:0 4px 8px #1a64f41a}.btn-primary:disabled{color:var(--text-muted);cursor:not-allowed;background:#e5e8eb}.btn-secondary{color:var(--text-secondary);border-radius:var(--radius-md);cursor:pointer;background:#f2f4f6;border:none;outline:none;font-weight:600;transition:all .15s}.btn-secondary:hover:not(:disabled){color:var(--text-primary);background:#e9ecef}.btn-secondary:active:not(:disabled){transform:scale(.97)}.modal-overlay{z-index:100;background:#0006;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0}.modal-content{background:var(--bg-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid var(--border-color);max-width:520px;overflow:hidden}.receipt-paper{border-radius:var(--radius-md);border:1px solid var(--border-color);background:#fff;padding:16px;font-family:Courier New,Courier,monospace}.toast{color:#fff;z-index:2000;background:#000c;border-radius:30px;padding:12px 24px;font-size:14px;font-weight:500;position:fixed;bottom:84px;left:50%;transform:translate(-50%)}.login-overlay{z-index:9999;background:#f0f2f5;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.login-card{background:#fff;border-radius:20px;width:100%;max-width:420px;padding:40px;animation:.4s cubic-bezier(.16,1,.3,1) loginCardAppear;box-shadow:0 0 0 1px #00000008,0 2px 4px #00000005,0 12px 40px #0000000f}@keyframes loginCardAppear{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.login-header{text-align:center;margin-bottom:36px}.login-brand-icon{background:var(--primary);color:#fff;border-radius:16px;justify-content:center;align-items:center;width:56px;height:56px;margin-bottom:20px;display:inline-flex}.login-title{color:var(--text-primary);letter-spacing:-.3px;margin-bottom:8px;font-size:22px;font-weight:700;line-height:1.3}.login-subtitle{color:var(--text-muted);font-size:14px;font-weight:400;line-height:1.5}.login-form{flex-direction:column;gap:20px;display:flex}.login-field{flex-direction:column;gap:8px;display:flex}.login-label{color:var(--text-secondary);letter-spacing:-.1px;font-size:13px;font-weight:600}.login-input-wrapper{background:#f7f8fa;border:1.5px solid #e8eaed;border-radius:14px;align-items:center;height:52px;transition:all .2s;display:flex;position:relative;overflow:hidden}.login-input-wrapper:focus-within{border-color:var(--primary);background:#fff;box-shadow:0 0 0 3px #1a64f41a}.login-input-wrapper.disabled{opacity:.6;cursor:not-allowed}.login-input-icon{color:var(--text-muted);pointer-events:none;flex-shrink:0;transition:color .2s;position:absolute;left:16px}.login-input-wrapper:focus-within .login-input-icon{color:var(--primary)}.login-input{width:100%;height:100%;font-size:15px;font-weight:400;font-family:var(--font-sans);color:var(--text-primary);letter-spacing:-.1px;background:0 0;border:none;outline:none;padding:0 16px 0 44px}.login-input::placeholder{color:#b0b8c1;font-weight:400}.login-input:disabled{cursor:not-allowed}.login-error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:12px;align-items:center;gap:8px;padding:12px 16px;font-size:13px;font-weight:500;line-height:1.5;animation:.4s loginShake;display:flex}.login-error svg{flex-shrink:0}@keyframes loginShake{0%,to{transform:translate(0)}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-3px)}80%{transform:translate(2px)}}.login-submit-btn{background:var(--primary);color:#fff;width:100%;height:56px;font-size:16px;font-weight:600;font-family:var(--font-sans);letter-spacing:-.2px;cursor:pointer;border:none;border-radius:14px;outline:none;justify-content:center;align-items:center;gap:8px;margin-top:4px;transition:all .2s;display:flex}.login-submit-btn:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 12px #1a64f440}.login-submit-btn:active:not(:disabled){box-shadow:none;transform:translateY(0)scale(.985)}.login-submit-btn:focus-visible{box-shadow:0 0 0 3px #1a64f44d}.login-submit-btn:disabled{opacity:.7;cursor:not-allowed}.login-spinner{border:2.5px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite loginSpin}@keyframes loginSpin{to{transform:rotate(360deg)}}.login-footer{color:#b0b8c1;border-top:1px solid #f0f2f5;justify-content:center;align-items:center;gap:6px;margin-top:32px;padding-top:24px;font-size:12px;font-weight:400;display:flex}.login-footer-dot{font-size:10px}@media (width<=768px){.login-overlay{padding:16px}.login-card{padding:32px 28px}}@media (width<=480px){.login-overlay{align-items:flex-start;padding:10vh 12px 12px}.login-card{border-radius:16px;padding:28px 24px}.login-brand-icon{border-radius:14px;width:48px;height:48px}.login-title{font-size:20px}.login-header{margin-bottom:28px}.login-submit-btn{height:52px}}.bo-page{flex-direction:column;gap:20px;height:100%;padding:16px;display:flex;overflow:hidden}.bo-page-grid{grid-template-columns:1fr 1.2fr;gap:20px;height:100%;padding:16px;display:grid;overflow:hidden}.bo-page-col{flex-direction:column;gap:16px;display:flex;overflow-y:auto}.bo-toolbar{flex-shrink:0;align-items:center;gap:12px;display:flex}.bo-toolbar-spacer{flex:1}.bo-card{border:1px solid var(--border-color);background:#fff;border-radius:14px;padding:24px;box-shadow:0 1px 3px #00000008}.bo-card-header{color:var(--text-primary);letter-spacing:-.2px;align-items:center;gap:8px;margin-bottom:20px;font-size:15px;font-weight:700;display:flex}.bo-card-header svg{flex-shrink:0}.bo-table-wrap{border:1px solid var(--border-color);background:#fff;border-radius:14px;flex:1;overflow-y:auto;box-shadow:0 1px 3px #00000008}.bo-table{border-collapse:collapse;text-align:left;width:100%;font-size:13px}.bo-table thead{z-index:10;position:sticky;top:0}.bo-table th{color:var(--text-muted);letter-spacing:.02em;text-transform:none;border-bottom:1px solid var(--border-color);white-space:nowrap;-webkit-user-select:none;user-select:none;background:#f8fafc;padding:14px 16px;font-size:12px;font-weight:600}.bo-table th.sortable{cursor:pointer;transition:color .15s}.bo-table th.sortable:hover{color:var(--primary)}.bo-table td{vertical-align:middle;color:var(--text-primary);border-bottom:1px solid #f1f5f9;padding:14px 16px}.bo-table tbody tr{transition:background .1s}.bo-table tbody tr:hover{background:#f8fafc}.bo-table tbody tr:last-child td{border-bottom:none}.bo-table tbody tr.inactive{background:#f8fafc}.bo-table tbody tr.inactive td{color:var(--text-muted)}.bo-table .text-right{text-align:right}.bo-table .text-center{text-align:center}.bo-table .cell-bold{font-weight:700}.bo-table .cell-muted{color:var(--text-muted);margin-top:2px;font-size:11px}.bo-table .cell-empty{text-align:center;color:var(--text-muted);padding:48px 16px;font-size:14px}.bo-product-thumb{object-fit:cover;border:1px solid #f1f5f9;border-radius:8px;width:40px;height:40px}.bo-product-emoji{background:#f8fafc;border-radius:8px;justify-content:center;align-items:center;width:40px;height:40px;font-size:20px;display:flex}.bo-badge{letter-spacing:-.1px;white-space:nowrap;border-radius:6px;align-items:center;gap:4px;padding:4px 10px;font-size:11.5px;font-weight:600;display:inline-flex}.bo-badge--neutral{color:#475569;background:#f1f5f9}.bo-badge--primary{color:var(--primary);background:#1a64f414}.bo-badge--success{color:#059669;background:#ecfdf5}.bo-badge--warning{color:#d97706;background:#fffbeb}.bo-badge--danger{color:#dc2626;background:#fef2f2}.bo-badge--pill{border-radius:20px}.bo-stock-group{justify-content:center;align-items:center;gap:6px;display:flex}.bo-stock-btn{cursor:pointer;min-width:28px;height:28px;color:var(--text-secondary);font-size:12px;font-weight:600;font-family:var(--font-sans);background:#fff;border:1px solid #e5e7eb;border-radius:6px;justify-content:center;align-items:center;padding:0 6px;transition:all .12s;display:inline-flex}.bo-stock-btn:hover{background:#f1f5f9;border-color:#cbd5e1}.bo-stock-btn:active{transform:scale(.95)}.bo-stock-btn--accent{color:var(--text-secondary);background:#f1f5f9}.bo-stock-value{justify-content:center;align-items:center;gap:4px;min-width:40px;font-size:13px;font-weight:800;display:flex}.bo-stock-value.sold-out{color:#ef4444}.bo-stock-value.low-stock{color:#f59e0b}.bo-action-group{justify-content:center;gap:4px;display:flex}.bo-action-btn{cursor:pointer;width:32px;height:32px;color:var(--text-muted);background:#fff;border:1px solid #e5e7eb;border-radius:8px;justify-content:center;align-items:center;transition:all .12s;display:inline-flex}.bo-action-btn:hover{color:var(--text-primary);background:#f8fafc;border-color:#cbd5e1}.bo-action-btn--danger:hover{color:#ef4444;background:#fef2f2;border-color:#fecaca}.bo-field{flex-direction:column;gap:6px;display:flex}.bo-label{color:var(--text-secondary);letter-spacing:-.1px;font-size:12.5px;font-weight:600}.bo-input,.bo-select{width:100%;height:44px;font-size:14px;font-family:var(--font-sans);color:var(--text-primary);background:#fff;border:1.5px solid #e5e7eb;border-radius:10px;outline:none;padding:0 14px;transition:all .15s}.bo-input:focus,.bo-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #1a64f414}.bo-input:disabled{color:var(--text-muted);cursor:not-allowed;background:#f8fafc}.bo-input::placeholder{color:#b0b8c1}.bo-input--center{text-align:center}.bo-form-grid{gap:16px;margin-bottom:16px;display:grid}.bo-form-grid--2{grid-template-columns:1fr 1fr}.bo-form-grid--2-wide{grid-template-columns:1fr 1.2fr}.bo-form-grid--3-wide{grid-template-columns:1fr 2fr}.bo-form-row{align-items:center;gap:10px;display:flex}.bo-file-btn{cursor:pointer;height:44px;color:var(--text-secondary);font-size:13px;font-weight:600;font-family:var(--font-sans);white-space:nowrap;background:#f8fafc;border:1.5px solid #e5e7eb;border-radius:10px;align-items:center;gap:6px;padding:0 16px;transition:all .15s;display:inline-flex}.bo-file-btn:hover{background:#f1f5f9;border-color:#cbd5e1}.bo-file-hint{color:var(--primary);align-items:center;gap:4px;margin-top:6px;font-size:12px;font-weight:600;display:flex}.bo-checkbox-row{align-items:center;gap:8px;display:flex}.bo-checkbox-row input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary);cursor:pointer}.bo-checkbox-row label{color:var(--text-primary);cursor:pointer;font-size:13.5px;font-weight:600}.bo-modal-overlay{z-index:1100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000059;justify-content:center;align-items:center;padding:24px;animation:.2s boModalBgIn;display:flex;position:fixed;inset:0}@keyframes boModalBgIn{0%{-webkit-backdrop-filter:blur();backdrop-filter:blur();background:0 0}to{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000059}}.bo-modal{background:#fff;border-radius:18px;flex-direction:column;width:100%;max-width:520px;max-height:90vh;animation:.25s cubic-bezier(.16,1,.3,1) boModalIn;display:flex;box-shadow:0 24px 60px #00000024}@keyframes boModalIn{0%{opacity:0;transform:translateY(12px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.bo-modal-header{padding:24px 28px 0}.bo-modal-title{color:var(--text-primary);letter-spacing:-.3px;font-size:18px;font-weight:700}.bo-modal-desc{color:var(--text-muted);margin-top:6px;font-size:13px;line-height:1.5}.bo-modal-body{flex:1;padding:24px 28px;overflow-y:auto}.bo-modal-footer{border-top:1px solid #f1f5f9;align-items:center;gap:10px;padding:16px 28px 24px;display:flex}.bo-modal-footer .btn{border-radius:12px;flex:1;height:48px;font-size:15px;font-weight:600}.bo-modal-footer .btn-primary{flex:2}.bo-stats-row{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;display:grid}.bo-stat-card{border:1px solid var(--border-color);background:#fff;border-radius:12px;flex-direction:column;gap:8px;padding:18px 20px;display:flex}.bo-stat-label{color:var(--text-muted);align-items:center;gap:6px;font-size:12px;font-weight:500;display:flex}.bo-stat-value{color:var(--text-primary);letter-spacing:-.5px;font-size:22px;font-weight:800}.bo-stat-value--danger{color:#dc2626}.bo-stat-value--success{color:#059669}.bo-stat-value--primary{color:var(--primary)}.bo-info-list{flex-direction:column;gap:12px;margin-bottom:20px;display:flex}.bo-info-row{justify-content:space-between;align-items:center;font-size:13.5px;display:flex}.bo-info-key{color:var(--text-muted);font-weight:400}.bo-info-value{color:var(--text-primary);font-weight:600}.bo-filter-group{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.bo-filter-chip{height:34px;color:var(--text-secondary);cursor:pointer;font-size:13px;font-weight:500;font-family:var(--font-sans);white-space:nowrap;background:#fff;border:1.5px solid #e5e7eb;border-radius:8px;align-items:center;padding:0 14px;transition:all .12s;display:inline-flex}.bo-filter-chip:hover{background:#f8fafc;border-color:#cbd5e1}.bo-filter-chip.active{background:var(--primary);color:#fff;border-color:var(--primary)}.bo-divider{background:#f1f5f9;border:none;height:1px;margin:16px 0}.bo-section-title{color:var(--text-primary);letter-spacing:-.2px;align-items:center;gap:8px;margin-bottom:16px;font-size:14px;font-weight:700;display:flex}.bo-data-row{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:10px 0;font-size:14px;display:flex}.bo-data-row:last-child{border-bottom:none}.bo-data-key{color:var(--text-secondary);align-items:center;gap:8px;display:flex}.bo-data-value{color:var(--text-primary);font-weight:700}.bo-empty{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:48px 24px;display:flex}.bo-empty-icon{opacity:.5;margin-bottom:4px;font-size:32px}.bo-empty-text{font-size:14px;font-weight:500}.btn--danger-outline{color:#ef4444;cursor:pointer;width:100%;height:44px;font-size:14px;font-weight:600;font-family:var(--font-sans);background:#fff;border:1.5px solid #fca5a5;border-radius:10px;transition:all .15s}.btn--danger-outline:hover{background:#fef2f2;border-color:#f87171}.btn--ghost{height:44px;color:var(--text-secondary);cursor:pointer;font-size:14px;font-weight:600;font-family:var(--font-sans);background:0 0;border:none;border-radius:10px;align-items:center;gap:6px;padding:0 16px;transition:all .15s;display:inline-flex}.btn--ghost:hover{color:var(--text-primary);background:#f1f5f9}.bo-report-item{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:14px 0;font-size:13px;display:flex}.bo-report-item:last-child{border-bottom:none}.bo-report-date{color:var(--text-primary);font-weight:600}.bo-report-meta{color:var(--text-muted)}.bo-payment-selector{gap:12px;margin-bottom:20px;display:flex}.bo-payment-option{cursor:pointer;background:#fff;border:1.5px solid #e5e7eb;border-radius:12px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;height:90px;transition:all .15s;display:flex}.bo-payment-option:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}.bo-payment-option.selected{border-color:var(--primary);color:var(--primary);background:#1a64f40a;font-weight:700;box-shadow:0 0 0 3px #1a64f414}.bo-payment-option:disabled{opacity:.6;cursor:not-allowed}.bo-payment-option-title{color:var(--text-primary);font-size:14px;font-weight:600}.bo-payment-option.selected .bo-payment-option-title{color:var(--primary)}.bo-receipt-paper{border:1px solid var(--border-color);color:#334155;box-shadow:var(--shadow-sm);background:#fff;border-radius:12px;padding:20px;font-family:Courier New,Courier,monospace;font-size:13px;line-height:1.6}.bo-receipt-header{text-align:center;margin-bottom:16px}.bo-receipt-header h3{color:var(--text-primary);margin-bottom:4px;font-size:18px;font-weight:800}.bo-receipt-header p{color:var(--text-muted);margin:2px 0;font-size:12px}.bo-receipt-meta{text-align:left;color:var(--text-muted);border-top:1px solid #f1f5f9;flex-direction:column;gap:2px;margin-top:10px;padding-top:8px;font-size:11px;display:flex}.bo-receipt-item-row{justify-content:space-between;align-items:center;padding:4px 0;font-size:13px;display:flex}.bo-receipt-item-name{text-align:left;white-space:nowrap;text-overflow:ellipsis;flex:2;overflow:hidden}.bo-receipt-item-qty{text-align:center;flex:.5}.bo-receipt-item-amount{text-align:right;flex:1;font-weight:600}.bo-receipt-divider{border-top:1px dashed #cbd5e1;margin:12px 0}.bo-receipt-row{justify-content:space-between;align-items:center;padding:3px 0;font-size:13px;display:flex}.bo-receipt-row.big{color:var(--text-primary);padding:6px 0;font-size:16px;font-weight:800}@keyframes tossFadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.bo-page,.bo-page-grid,.pos-main-panel,.pos-side-panel,.login-card{animation:.2s cubic-bezier(.16,1,.3,1) forwards tossFadeInUp!important}.bo-card{transition:transform .2s cubic-bezier(.16,1,.3,1),box-shadow .2s cubic-bezier(.16,1,.3,1),border-color .2s cubic-bezier(.16,1,.3,1)!important}.bo-card:hover{border-color:#cbd5e1;transform:translateY(-2px);box-shadow:0 8px 20px #0000000a}.bo-card:active{transform:translateY(0)scale(.995)}.btn:active,.btn-primary:active,.btn-secondary:active,.bo-stock-btn:active,.bo-action-btn:active,.bo-filter-chip:active,.category-chip:active,.gnb-tab:active,.btn--danger-outline:active,.btn--ghost:active,.bo-payment-option:active{transition:transform 80ms cubic-bezier(.16,1,.3,1)!important;transform:scale(.95)!important}.btn,.btn-primary,.btn-secondary,.bo-stock-btn,.bo-action-btn,.bo-filter-chip,.category-chip,.gnb-tab,.btn--danger-outline,.btn--ghost,.bo-payment-option{transition:transform .2s cubic-bezier(.16,1,.3,1),background-color .2s cubic-bezier(.16,1,.3,1),border-color .2s cubic-bezier(.16,1,.3,1),box-shadow .2s cubic-bezier(.16,1,.3,1)}.bo-modal-overlay{animation:.18s cubic-bezier(.16,1,.3,1) forwards boModalBgIn!important}.bo-modal{animation:.22s cubic-bezier(.16,1,.3,1) forwards boModalIn!important}@keyframes tossRotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin,.spin-icon,.login-spinner{animation:.8s linear infinite tossRotate!important}
