*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%;overflow:hidden}body{font-family:Noto Sans SC,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#333;background:#f0f2f5}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0c1445,#1a237e 30%,#283593 50%,#1565c0,#0d47a1);position:relative;overflow:hidden}.login-page:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(ellipse at 20% 50%,rgba(26,35,126,.3) 0%,transparent 50%),radial-gradient(ellipse at 80% 20%,rgba(21,101,192,.2) 0%,transparent 50%),radial-gradient(ellipse at 40% 80%,rgba(13,71,161,.2) 0%,transparent 50%);animation:bgFloat 20s ease-in-out infinite}@keyframes bgFloat{0%,to{transform:translate(0) rotate(0)}33%{transform:translate(2%,-2%) rotate(1deg)}66%{transform:translate(-1%,1%) rotate(-1deg)}}.login-card{position:relative;z-index:1;width:420px;padding:48px 40px;background:#fffffff2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:16px;box-shadow:0 20px 60px #0000004d,0 0 40px #1565c01a;animation:cardSlideUp .6s ease-out}@keyframes cardSlideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.login-logo{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center;margin-bottom:28px}.login-logo img{width:80px;height:80px;object-fit:contain}.login-logo h2{margin:0;font-size:24px;font-weight:700;line-height:1.4;color:#333}.login-logo p{color:#8c8c8c;font-size:14px;margin-top:8px}.login-card .ant-input-affix-wrapper{padding:10px 14px;border-radius:8px;border:1.5px solid #e8e8e8;transition:all .3s}.login-card .ant-input-affix-wrapper:hover,.login-card .ant-input-affix-wrapper-focused{border-color:#1565c0;box-shadow:0 0 0 3px #1565c014}.login-card .ant-btn-primary{height:44px;border-radius:8px;font-size:16px;font-weight:500;background:linear-gradient(135deg,#1a237e,#1565c0);border:none;box-shadow:0 4px 15px #1565c04d;transition:all .3s}.login-card .ant-btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px #1565c066}.main-layout{height:100vh;overflow:hidden}.main-layout .ant-layout-header{background:linear-gradient(90deg,#001529,#002140);padding:0 24px;display:flex;align-items:center;justify-content:space-between;height:56px;line-height:56px;box-shadow:0 2px 8px #00000026;z-index:100}.header-left{display:flex;align-items:center;gap:16px}.header-left .logo{display:inline-flex;align-items:center;gap:8px;font-size:18px;font-weight:700;color:#fff;letter-spacing:1px;white-space:nowrap}.header-left .brand-logo{width:28px;height:28px;flex-shrink:0;object-fit:contain}.header-left .period{color:#ffffffa6;font-size:13px}.header-right{display:flex;align-items:center;gap:20px}.header-right .greeting{color:#ffffffd9;font-size:14px}.header-right .ant-btn{color:#ffffffd9;border-color:#ffffff40}.header-right .ant-btn:hover{color:#fff;border-color:#ffffff80}.header-right .global-shop-scope .ant-select-selector{min-height:32px;background:#ffffff1a!important;border-color:#ffffff40!important;color:#ffffffe6}.header-right .global-shop-scope .ant-select-selection-item,.header-right .global-shop-scope .ant-select-selection-placeholder,.header-right .global-shop-scope .ant-select-selection-search-input,.header-right .global-shop-scope .ant-select-arrow{color:#ffffffe6!important}.notification-trigger{color:#ffffffd9;border:none;width:32px;height:32px;line-height:1}.notification-trigger:hover{color:#fff!important;background:#ffffff1f!important}.notification-panel{width:420px;max-width:calc(100vw - 32px)}.notification-panel-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:8px;border-bottom:1px solid #f0f0f0}.notification-loading{display:flex;align-items:center;justify-content:center;height:96px}.notification-list{max-height:360px;overflow-y:auto}.notification-group+.notification-group{margin-top:10px}.notification-group-header{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:8px;width:calc(100% + 24px);margin:0 -12px;padding:7px 12px;color:inherit;font:inherit;text-align:left;background:#f5f7fa;border:0;border-bottom:1px solid #e8e8e8;cursor:pointer}.notification-group-header:hover{background:#eaf2ff}.notification-group-header .ant-space:first-child{min-width:0}.notification-group-header .ant-typography{max-width:190px}.notification-group-header .ant-tag{margin-inline-end:0}.notification-item{cursor:pointer;padding:10px 0!important;transition:background .2s ease}.notification-item:hover{background:#fafafa}.notification-item.unread{background:#fff7e6;margin:0 -12px;padding-left:12px!important;padding-right:12px!important}.notification-description{display:flex;flex-direction:column;gap:4px;color:#000000a6;line-height:1.5}.notification-item-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.notification-item-title .ant-typography{min-width:0;flex:1}.notification-item-title .ant-tag{flex:none;margin-inline-end:0}.notification-stock-snapshot{width:fit-content;padding:3px 8px;color:#ad6800;background:#fff7e6;border-radius:4px;font-size:12px}.notification-footer{margin-top:8px}.main-layout .ant-layout-sider{background:#fff;box-shadow:2px 0 8px #0000000f;overflow:hidden;display:flex;flex-direction:column}.main-layout .ant-layout-sider .ant-layout-sider-children{display:flex;flex-direction:column;min-height:0;overflow:hidden}.main-layout .sidebar-menu-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden}.main-layout .ant-layout-sider .ant-menu{border-right:none}.main-layout .ant-layout-sider .ant-menu-item,.main-layout .ant-layout-sider .ant-menu-submenu-title{border-radius:0 8px 8px 0;margin-right:8px}.content-area{padding:16px;overflow-y:auto;background:#f0f2f5;height:calc(100vh - 56px)}.dashboard{animation:fadeIn .4s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.dashboard .stat-cards{margin-bottom:24px}.dashboard .stat-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000000f;transition:all .3s;cursor:pointer;border:1px solid #f0f0f0;height:100%}.dashboard .stat-card:hover{transform:translateY(-3px);box-shadow:0 6px 20px #0000001a;border-color:#1677ff}.dashboard .stat-card .stat-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:24px;color:#fff;margin-bottom:16px}.dashboard .stat-card .stat-title{color:#8c8c8c;font-size:14px;margin-bottom:8px}.dashboard .stat-card .stat-value{font-size:28px;font-weight:700;color:#262626}.dashboard .stat-card .stat-sub{color:#8c8c8c;font-size:13px;margin-top:4px}.dashboard .quick-actions{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000000f;margin-bottom:24px}.dashboard .quick-actions h3{font-size:16px;font-weight:600;margin-bottom:20px;color:#262626}.dashboard .quick-action-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.dashboard .quick-action-item{display:flex;flex-direction:column;align-items:center;padding:20px 12px;border-radius:10px;cursor:pointer;transition:all .3s;border:1px solid #f0f0f0;background:#fafafa}.dashboard .quick-action-item:hover{background:#e6f4ff;border-color:#91caff;transform:translateY(-2px)}.dashboard .quick-action-item .action-icon{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:22px;color:#fff;margin-bottom:10px}.dashboard .quick-action-item .action-text{font-size:13px;color:#595959;font-weight:500}.dashboard .quick-links{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000000f}.dashboard .quick-links h3{font-size:16px;font-weight:600;margin-bottom:16px;color:#262626}.dashboard .quick-links .link-item{padding:10px 0;border-bottom:1px solid #f5f5f5;display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:color .3s}.dashboard .quick-links .link-item:last-child{border-bottom:none}.dashboard .quick-links .link-item:hover{color:#1677ff}.page-container{animation:fadeIn .3s ease-out}.page-header{background:#fff;border-radius:12px;padding:20px 24px;margin-bottom:16px;box-shadow:0 2px 8px #0000000f}.page-header h2{font-size:18px;font-weight:600;color:#262626;margin:0}.page-content{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000000f}.report-view-switch{display:flex;align-items:center;gap:16px;background:#fff;border-radius:12px;padding:12px 24px;margin-bottom:16px;box-shadow:0 2px 8px #0000000f}.report-view-switch-title{color:#262626;font-weight:600}.search-bar{display:flex;align-items:center;gap:12px;margin-bottom:20px;flex-wrap:wrap}.search-bar .ant-input,.search-bar .ant-picker{border-radius:6px}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:8px}.toolbar-left{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.toolbar-right{display:flex;gap:8px;flex-wrap:wrap}.tabs-bar{background:#fff;padding:6px 16px 0;margin:-16px -16px 16px;border-bottom:1px solid #f0f0f0;box-shadow:0 1px 4px #0000000a}.tabs-bar .ant-tabs,.tabs-bar .ant-tabs-nav{margin-bottom:0}.tabs-bar .ant-tabs-tab{padding:6px 12px!important;font-size:13px;border-radius:6px 6px 0 0!important;transition:all .2s;background:#fafafa!important;border:1px solid #f0f0f0!important;border-bottom:none!important;margin-right:2px!important}.tabs-bar .ant-tabs-tab:hover{color:#1677ff}.tabs-bar .ant-tabs-tab-active{background:#fff!important;border-color:#e8e8e8!important;border-bottom:1px solid #fff!important}.tabs-bar .ant-tabs-tab .ant-tabs-tab-remove{margin-left:4px;font-size:10px;color:#999;transition:all .2s}.tabs-bar .ant-tabs-tab .ant-tabs-tab-remove:hover{color:#ff4d4f}.tabs-content{height:calc(100% - 50px);overflow-y:auto}.bill-form{animation:fadeIn .3s ease-out}.bill-header{background:#fff;border-radius:12px;padding:20px 24px;margin-bottom:16px;box-shadow:0 2px 8px #0000000f}.bill-header .header-row{display:flex;gap:24px;flex-wrap:wrap;align-items:center}.bill-header .header-item{display:flex;align-items:center;gap:8px;min-width:200px}.bill-header .header-item label{color:#595959;font-size:14px;white-space:nowrap;min-width:70px;text-align:right}.bill-grid{background:#fff;border-radius:12px;padding:20px 24px;margin-bottom:16px;box-shadow:0 2px 8px #0000000f}.bill-footer{background:#fff;border-radius:12px;padding:20px 24px;box-shadow:0 2px 8px #0000000f}.bill-footer .footer-amounts{display:flex;flex-wrap:wrap;gap:16px 32px;margin-bottom:16px}.bill-footer .footer-amounts .amount-item{display:flex;align-items:center;gap:8px}.bill-footer .footer-amounts .amount-item label{color:#595959;font-size:14px;white-space:nowrap}.bill-footer .footer-info{display:flex;gap:24px;color:#999;font-size:13px;margin-top:16px;padding-top:16px;border-top:1px solid #f0f0f0;flex-wrap:wrap}.bill-footer .footer-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px;padding-top:16px;border-top:1px solid #f0f0f0}.report-page .report-filter{background:#fff;border-radius:12px;padding:20px 24px;margin-bottom:16px;box-shadow:0 2px 8px #0000000f}.report-page .report-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:16px}.report-page .summary-card{background:#fff;border-radius:10px;padding:20px;box-shadow:0 2px 8px #0000000f;text-align:center;transition:all .3s;border:1px solid #f0f0f0}.report-page .summary-card:hover{border-color:#1677ff;box-shadow:0 4px 12px #0000001a}.report-page .summary-card .card-title{color:#8c8c8c;font-size:13px;margin-bottom:8px}.report-page .summary-card .card-value{font-size:24px;font-weight:700;color:#262626}.sales-profit-page .profit-view-note{margin:-4px 0 16px;padding:10px 14px;color:#595959;background:#f0f7ff;border:1px solid #d6e9ff;border-radius:8px;font-size:13px}.sales-profit-page .profit-positive{color:#389e0d;font-weight:600}.sales-profit-page .profit-negative{color:#cf1322;font-weight:600}.sales-profit-page .ant-table-thead>tr>th{white-space:nowrap}.settings-page .ant-table{border-radius:8px}.settings-page .ant-table-thead>tr>th{background:#fafafa;font-weight:600}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#d9d9d9;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#bfbfbf}.form-modal .ant-modal-content{border-radius:12px}.form-modal .ant-modal-header{border-radius:12px 12px 0 0}.batch-page{min-height:100%;padding:16px;background:#f4f6f9}.batch-toolbar-card,.batch-content-card{border:1px solid #edf0f5;border-radius:8px;box-shadow:none}.batch-toolbar-card{margin-bottom:12px}.batch-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.batch-title-block{min-width:220px}.batch-title-row{display:flex;align-items:center;gap:10px;color:#1f2937;font-size:18px;font-weight:700;line-height:28px}.batch-title-row .anticon{color:#1677ff}.batch-title-sub{margin-top:4px;color:#6b7280;font-size:13px}.batch-toolbar-actions{justify-content:flex-end}.batch-filter-row{display:grid;grid-template-columns:minmax(180px,220px) minmax(220px,1fr) minmax(130px,160px) minmax(100px,120px) 116px auto auto;gap:10px;align-items:center}.batch-shop-select .ant-select-selector{background:#f5f8ff!important;border-color:#d6e4ff!important}.batch-warning-days .ant-input-number{width:72px}.batch-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:12px;margin-bottom:12px}.batch-summary-item .ant-card-body{min-height:92px;display:flex;gap:14px;align-items:center;padding:16px}.batch-summary-icon{width:40px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;color:#1677ff;background:#eaf3ff;font-size:20px}.batch-summary-item.money .batch-summary-icon{color:#0958d9;background:#eef4ff}.batch-summary-item.warning .batch-summary-icon{color:#d46b08;background:#fff7e6}.batch-summary-item.danger .batch-summary-icon{color:#cf1322;background:#fff1f0}.batch-summary-content{min-width:0}.batch-summary-title{color:#6b7280;font-size:13px;margin-bottom:5px}.batch-summary-value{color:#1f2937;font-size:24px;font-weight:700;line-height:1.2}.batch-summary-item.money .batch-summary-value{color:#0958d9}.batch-summary-item.warning .batch-summary-value{color:#d46b08}.batch-summary-item.danger .batch-summary-value{color:#cf1322}.batch-summary-sub{margin-top:4px;color:#8c8c8c;font-size:12px;white-space:nowrap}.batch-alert,.batch-policy-alert{margin-bottom:12px;border-radius:8px}.batch-tabs-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:0 8px}.batch-tabs-row .ant-tabs{flex:1 1 auto;min-width:280px}.batch-tabs-row .ant-tabs-nav{margin-bottom:8px}.batch-cell-main{min-width:0;display:flex;flex-direction:column;gap:3px}.batch-code-link{height:auto;padding:0;font-weight:700;line-height:20px;text-align:left}.batch-code-wrap{max-width:100%;align-items:center}.batch-code-wrap .batch-code-link,.batch-code-wrap .batch-trace-code,.batch-code-wrap .batch-detail-code{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.batch-column-resizer{position:absolute;z-index:2;top:0;right:-5px;width:10px;height:100%;cursor:col-resize;touch-action:none}.batch-column-resizer:after{content:"";position:absolute;top:25%;right:4px;width:1px;height:50%;background:transparent;transition:background-color .15s ease}.batch-column-resizer:hover:after{background:#1677ff}.batch-goods-name{color:#1f2937;font-weight:600;line-height:20px}.batch-cell-sub{display:inline-flex;align-items:center;gap:4px;color:#8c8c8c;font-size:12px;line-height:18px}.batch-row-actions .ant-btn{width:auto;min-width:30px;padding-inline:6px}.batch-row-actions{white-space:nowrap}.qty-positive{color:#389e0d;font-weight:600}.qty-negative{color:#cf1322;font-weight:600}.batch-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}.batch-detail-loading{height:240px;display:flex;align-items:center;justify-content:center}.batch-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid #f0f0f0}.batch-detail-code{color:#1f2937;font-size:20px;font-weight:700;line-height:28px}.batch-detail-sub{color:#6b7280;font-size:13px}.batch-trace-panel{padding:4px 8px 12px}.batch-trace-bar{display:flex;justify-content:flex-start;margin-bottom:16px}.batch-trace-result{display:flex;flex-direction:column}.batch-trace-batches{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.batch-trace-batch-card{border-radius:8px}.batch-trace-batch-card .ant-card-body{display:flex;flex-direction:column;gap:8px}.batch-trace-code,.batch-trace-code.batch-code-link{color:#1677ff;font-size:16px;font-weight:700}.batch-detail-code.batch-code-link{display:inline-block;color:#1f2937;font-size:20px;font-weight:700;line-height:28px}.batch-trace-name{color:#1f2937;font-weight:600}.batch-trace-meta{display:flex;justify-content:space-between;gap:12px;color:#6b7280;font-size:12px}@media (max-width: 1200px){.batch-filter-row{grid-template-columns:repeat(3,minmax(0,1fr))}.batch-summary-grid{grid-template-columns:repeat(2,minmax(180px,1fr))}}@media (max-width: 768px){.batch-page{padding:12px}.batch-toolbar{flex-direction:column}.batch-toolbar-actions{width:100%;justify-content:flex-start}.batch-filter-row,.batch-summary-grid,.batch-form-grid{grid-template-columns:1fr}.batch-detail-head{flex-direction:column}}
