body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.checkout-container{background:#f9f9f9;border-radius:8px;max-width:900px;margin:20px auto;padding:20px}.checkout-content{background:#fff;border-radius:8px;padding:30px;box-shadow:0 2px 8px #0000001a}.checkout-step{animation:.3s ease-in-out slideIn}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.checkout-step h2{color:#333;margin-bottom:20px;font-size:22px}.empty-cart{text-align:center;padding:40px}.empty-cart p{color:#666;margin-bottom:20px;font-size:16px}.cart-items-review{border:1px solid #e0e0e0;border-radius:8px;margin-bottom:20px;overflow:hidden}.cart-item-row{background:#fafafa;border-bottom:1px solid #f0f0f0;grid-template-columns:80px 1fr 150px;align-items:center;gap:20px;padding:15px;display:grid}.cart-item-row:last-child{border-bottom:none}.item-image{object-fit:cover;background:#f0f0f0;border-radius:6px;width:80px;height:80px}.item-info h4{color:#333;margin:0 0 5px;font-size:14px;font-weight:500}.item-info p{color:#999;margin:3px 0;font-size:13px}.item-price{text-align:right}.item-price .price{color:#ff6b6b;margin:0;font-size:16px;font-weight:600}.price-summary{background:#f5f5f5;border-radius:8px;margin-bottom:20px;padding:20px}.summary-row{color:#666;justify-content:space-between;margin-bottom:10px;font-size:14px;display:flex}.summary-row.discount{color:#10b981}.summary-row.total{color:#333;border-top:2px solid #ddd;margin-top:10px;padding-top:10px;font-size:18px;font-weight:600}.summary-row .amount{color:#ff6b6b;font-weight:600}.summary-row.discount .amount{color:#10b981}.summary-row.total .amount{color:#ff6b6b;font-size:20px}.form-group{margin-bottom:20px}.form-group label{color:#333;margin-bottom:8px;font-size:14px;font-weight:500;display:block}.form-control{resize:vertical;border:1px solid #ddd;border-radius:6px;width:100%;padding:12px;font-family:inherit;font-size:14px}.form-control:focus{border-color:#ff6b6b;outline:none;box-shadow:0 0 0 3px #ff6b6b1a}.input-group{gap:10px;display:flex}.input-group .form-control{flex:1}.success-text{color:#10b981;margin-top:5px;font-size:13px}.payment-options{flex-direction:column;gap:15px;margin-bottom:20px;display:flex}.payment-option{cursor:pointer;border:2px solid #ddd;border-radius:8px;align-items:flex-start;gap:15px;padding:20px;transition:all .3s;display:flex}.payment-option:hover{background:#fff9f9;border-color:#ff6b6b}.payment-option.active{background:#fff9f9;border-color:#ff6b6b;box-shadow:0 0 0 3px #ff6b6b1a}.payment-option input[type=radio]{cursor:pointer;width:20px;height:20px;margin-top:3px}.payment-option h4{color:#333;margin:0 0 5px;font-size:16px}.payment-option p{color:#999;margin:0;font-size:13px}.confirmation{text-align:center}.success-icon{color:#fff;background:#10b981;border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin:0 auto 20px;font-size:48px;display:flex}.pending-icon{color:#fff;background:#f59e0b;border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin:0 auto 20px;font-size:48px;animation:1.5s ease-in-out infinite pulse;display:flex}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.confirmation-details{text-align:left;background:#f5f5f5;border-radius:8px;margin:20px 0;padding:20px}.detail-row{border-bottom:1px solid #ddd;justify-content:space-between;padding:12px 0;font-size:14px;display:flex}.detail-row:last-child{border-bottom:none}.detail-row .value{color:#333;font-weight:600}.detail-row .value.amount{color:#ff6b6b;font-size:16px}.sepay-qr-section{text-align:center;background:#fafafa;border-radius:8px;margin:20px 0;padding:20px}.sepay-qr-section h3{color:#333;margin:0 0 10px;font-size:16px}.sepay-qr-section p{color:#999;margin-bottom:15px;font-size:13px}.qr-code{background:#fff;border:2px solid #ddd;border-radius:8px;width:100%;max-width:300px;height:auto;padding:10px}.payment-polling{background:#f9f9f9;border-radius:8px;flex-direction:column;align-items:center;gap:10px;margin-top:20px;padding:20px;display:flex}.spinner{border:4px solid #f0f0f0;border-top-color:#ff6b6b;border-radius:50%;width:40px;height:40px;animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.payment-polling p{color:#999;margin:0;font-size:14px}.waiting-info{color:#999;background:#fffbea;border-radius:8px;margin-top:20px;padding:20px;font-size:16px}.cod-info{background:#fffbea;border-left:4px solid #f59e0b;border-radius:6px;margin:20px 0;padding:15px}.cod-info p{color:#92400e;margin:0;font-size:14px}.btn{cursor:pointer;border:none;border-radius:6px;padding:12px 24px;font-size:14px;font-weight:500;transition:all .3s}.btn-primary{color:#fff;background:#ff6b6b}.btn-primary:hover:not(:disabled){background:#ff5252;transform:translateY(-2px);box-shadow:0 4px 12px #ff6b6b4d}.btn-primary:disabled{cursor:not-allowed;background:#ccc}.btn-secondary{color:#666;background:#fff;border:1px solid #ddd}.btn-secondary:hover:not(:disabled){background:#f5f5f5;border-color:#999}.btn-full{width:100%;margin-top:20px}.button-group{gap:10px;margin-top:20px;display:flex}.button-group .btn{flex:1}.checkout-progress{background:#fff;border-radius:8px;justify-content:space-around;margin-top:30px;padding:20px;display:flex}.step{text-align:center;color:#999;border-radius:6px;flex:1;padding:10px;font-size:13px;font-weight:500}.step.active{color:#ff6b6b;background:#fff9f9}@media (width<=600px){.checkout-container{margin:10px;padding:10px}.checkout-content{padding:15px}.cart-item-row{grid-template-columns:60px 1fr;gap:10px}.item-price{text-align:left;grid-column:1/-1;padding-left:70px}.button-group{flex-direction:column}.checkout-progress{flex-wrap:wrap}.step{flex:50%;margin:5px}}.admin-dashboard-container{background:#f0f2f5;min-height:100vh;padding:24px}.admin-dashboard-header{background:#fff;border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:24px;padding:24px;display:flex;box-shadow:0 1px 3px #0000000d}.admin-dashboard-header h2{color:#1a3353;margin:0;font-weight:700}.stat-card-admin{border-radius:12px;transition:transform .2s;box-shadow:0 1px 3px #0000000d!important}.stat-card-admin:hover{transform:translateY(-5px);box-shadow:0 4px 12px #0000001a!important}.ant-statistic-title{color:#8c8c8c;font-size:14px;font-weight:500}.ant-statistic-content-value{font-size:24px!important;font-weight:700!important}.recharts-responsive-container{margin-top:20px}.ant-card-head-title{color:#1a3353;font-weight:700}@media (width<=768px){.admin-dashboard-header{flex-direction:column;align-items:flex-start;gap:16px}}.revenue-container{background:#f9f9f9;border-radius:8px;max-width:1400px;margin:20px auto;padding:20px}.revenue-container.loading{text-align:center;color:#666;background:#fff;border-radius:8px;padding:60px 20px;font-size:18px}.revenue-header{background:#fff;border-radius:8px;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px;padding:25px;display:flex;box-shadow:0 2px 8px #0000001a}.revenue-header h1{color:#333;flex:1;margin:0;font-size:28px}.period-selector{gap:10px;display:flex}.period-btn{color:#666;cursor:pointer;background:#fff;border:2px solid #ddd;border-radius:6px;padding:10px 16px;font-size:13px;font-weight:500;transition:all .3s}.period-btn:hover:not(:disabled){color:#ff6b6b;border-color:#ff6b6b}.period-btn.active{color:#fff;background:#ff6b6b;border-color:#ff6b6b}.period-btn:disabled{opacity:.5;cursor:not-allowed}.error-alert{color:#c00;background:#fee;border-left:4px solid #c00;border-radius:6px;justify-content:space-between;align-items:center;margin-bottom:20px;padding:15px;display:flex}.error-alert button{color:#c00;cursor:pointer;background:0 0;border:none;padding:0;font-size:24px}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-bottom:30px;display:grid}.stat-card{background:#fff;border-radius:8px;align-items:center;gap:20px;padding:25px;transition:all .3s;display:flex;box-shadow:0 2px 8px #0000001a}.stat-card:hover{transform:translateY(-4px);box-shadow:0 8px 16px #00000026}.stat-card.highlight{color:#fff;background:linear-gradient(135deg,#ff6b6b 0%,#ff8787 100%)}.stat-card.highlight .stat-value{color:#fff}.stat-icon{font-size:36px}.stat-content{flex:1}.stat-label{color:#999;margin:0 0 8px;font-size:13px;font-weight:500}.stat-card.highlight .stat-label{color:#ffffffe6}.stat-value{color:#ff6b6b;margin:0;font-size:24px;font-weight:600}.today-revenue{background:#fff;border-radius:8px;margin-bottom:30px;padding:20px;box-shadow:0 2px 8px #0000001a}.today-revenue h3{color:#333;border-bottom:2px solid #ff6b6b;margin:0 0 15px;padding-bottom:10px;font-size:16px;display:inline-block}.today-stats{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px;display:grid}.today-stat{background:#f9f9f9;border-left:4px solid #ff6b6b;border-radius:6px;justify-content:space-between;align-items:center;padding:15px;display:flex}.today-stat .label{color:#666;font-size:13px;font-weight:500}.today-stat .value{color:#333;font-size:18px;font-weight:600}.today-stat .value.highlight{color:#ff6b6b}.revenue-chart{background:#fff;border-radius:8px;margin-bottom:30px;padding:25px;box-shadow:0 2px 8px #0000001a}.revenue-chart h3{color:#333;border-bottom:2px solid #ff6b6b;margin:0 0 25px;padding-bottom:10px;font-size:16px;display:inline-block}.chart{border-bottom:2px solid #f0f0f0;align-items:flex-end;gap:15px;height:300px;padding:20px 0;display:flex;overflow-x:auto}.chart-bar-container{flex-direction:column;flex:1;align-items:center;gap:8px;min-width:60px;display:flex}.chart-bar-wrapper{justify-content:center;align-items:flex-end;width:100%;height:250px;display:flex}.chart-bar{cursor:pointer;background:linear-gradient(#ff6b6b 0%,#ff8787 100%);border-radius:6px 6px 0 0;width:100%;max-width:40px;min-height:4px;transition:all .3s}.chart-bar:hover{filter:brightness(1.1);box-shadow:0 -4px 12px #ff6b6b4d}.chart-label{color:#999;text-align:center;margin:0;font-size:11px;font-weight:500}.chart-value{color:#666;text-align:center;margin:0;font-size:11px;font-weight:600}.top-products{background:#fff;border-radius:8px;padding:25px;box-shadow:0 2px 8px #0000001a}.top-products h3{color:#333;border-bottom:2px solid #ff6b6b;margin:0 0 20px;padding-bottom:10px;font-size:16px;display:inline-block}.products-table{flex-direction:column;display:flex}.table-header{color:#666;background:#f9f9f9;border-bottom:2px solid #ddd;border-radius:6px;grid-template-columns:50px 1fr 100px 150px;gap:20px;padding:15px;font-size:13px;font-weight:600;display:grid}.table-row{border-bottom:1px solid #f0f0f0;grid-template-columns:50px 1fr 100px 150px;align-items:center;gap:20px;padding:15px;transition:all .3s;display:grid}.table-row:hover{background:#fafafa}.table-row:last-child{border-bottom:none}.col-rank{text-align:center}.rank{color:#999;font-size:14px;font-weight:600}.rank.top-1,.rank.top-2,.rank.top-3{color:#ff6b6b;font-size:16px}.col-name{color:#333;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;overflow:hidden}.col-sold{text-align:center}.badge{color:#10b981;background:#e8f5e9;border-radius:12px;padding:6px 12px;font-size:12px;font-weight:600;display:inline-block}.col-revenue{text-align:right}.amount{color:#ff6b6b;font-size:14px;font-weight:600}.empty-state{text-align:center;background:#fff;border-radius:8px;margin-top:30px;padding:60px 20px;box-shadow:0 2px 8px #0000001a}.empty-icon{margin-bottom:20px;font-size:64px}.empty-state h3{color:#333;margin:0 0 10px;font-size:20px}.empty-state p{color:#999;margin:0;font-size:14px}@media (width<=1024px){.revenue-header{flex-direction:column;align-items:flex-start}.period-selector{flex-wrap:wrap;width:100%}.chart{gap:10px}.chart-bar-container{min-width:50px}.table-header,.table-row{grid-template-columns:40px 1fr 80px 120px;gap:10px;font-size:12px}}@media (width<=768px){.revenue-container{margin:10px;padding:10px}.revenue-header{padding:15px}.revenue-header h1{font-size:20px}.period-selector{gap:5px}.period-btn{padding:8px 12px;font-size:11px}.stats-grid{grid-template-columns:1fr;gap:15px}.stat-card{gap:15px;padding:15px}.stat-icon{font-size:28px}.stat-value{font-size:18px}.chart{height:200px}.chart-bar-wrapper{height:150px}.table-header,.table-row{grid-template-columns:35px 1fr 60px 100px;gap:5px;padding:10px;font-size:11px}.col-name{font-size:12px}.badge{padding:4px 8px;font-size:10px}.amount{font-size:12px}}@media (width<=480px){.revenue-header{padding:10px}.revenue-header h1{font-size:18px}.period-selector{flex-direction:column;width:100%}.period-btn{width:100%}.stats-grid{grid-template-columns:1fr}.stat-card{flex-direction:row;padding:10px}.chart{gap:5px;height:150px}.chart-bar-container{min-width:40px}.chart-bar-wrapper{height:100px}.table-header{display:none}.table-row{border:1px solid #e0e0e0;border-radius:6px;grid-template-columns:1fr;gap:8px;margin-bottom:10px;padding:12px}.col-rank:before{content:"Xếp hạng: ";color:#666;font-weight:600}.col-name:before{content:"Sản phẩm: ";color:#666;font-weight:600;display:block}.col-sold:before{content:"Đã bán: ";color:#666;font-weight:600;display:block}.col-revenue:before{content:"Doanh thu: ";color:#666;font-weight:600;display:block}.col-rank,.col-name,.col-sold,.col-revenue{text-align:left}}.layout{background-color:#f5f5f5}.demo-logo{font-size:1.2rem}
