*{margin:0;padding:0;box-sizing:border-box}body,html{font-family:Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Arial,sans-serif;font-size:14px;color:#303133;background:#f0f2f5}#app,body,html{height:100%}.app-wrapper{height:100vh}.app-wrapper,.sidebar{display:flex;overflow:hidden}.sidebar{width:210px;min-width:210px;background:#2c3e50;flex-direction:column;transition:width .28s}.sidebar .logo{height:60px;display:flex;align-items:center;justify-content:center;background:#1d2b36;color:#fff;font-size:16px;font-weight:600;white-space:nowrap;border-bottom:1px solid #1a2730}.sidebar .logo .logo-icon{font-size:22px;margin-right:8px;color:#409eff}.sidebar-menu{flex:1;overflow-y:auto;overflow-x:hidden;padding:8px 0}.sidebar-menu::-webkit-scrollbar{width:6px}.sidebar-menu::-webkit-scrollbar-thumb{background:#4a5e6e;border-radius:3px}.menu-item{display:flex;align-items:center;padding:0 20px;height:50px;color:#bfcbd9;cursor:pointer;transition:all .2s;white-space:nowrap;border-left:3px solid transparent}.menu-item:hover{background:#3a4f63;color:#fff}.menu-item.active{background:#1d2b36;color:#409eff;border-left-color:#409eff}.menu-item .menu-icon{font-size:18px;margin-right:12px;width:20px;text-align:center}.menu-item.menu-group .menu-arrow{margin-left:auto;font-size:13px}.menu-item.menu-sub-item{height:42px;padding-left:52px;font-size:13px}.menu-item.menu-sub-item .menu-icon{font-size:15px;margin-right:8px}.main-container{flex:1;display:flex;flex-direction:column;overflow:hidden}.navbar{height:60px;background:#fff;justify-content:space-between;padding:0 24px;box-shadow:0 1px 4px rgba(0,21,41,.08);z-index:10}.navbar,.navbar .navbar-left{display:flex;align-items:center}.navbar .navbar-left{gap:16px}.navbar .breadcrumb{font-size:15px;color:#303133}.navbar .breadcrumb .el-breadcrumb__separator{color:#c0c4cc}.navbar-right{display:flex;align-items:center;gap:20px}.navbar-right .user-info{display:flex;align-items:center;gap:8px;cursor:pointer}.navbar-right .user-avatar{width:36px;height:36px;border-radius:50%;background:#409eff;display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px}.app-main{flex:1;overflow-y:auto;padding:16px}.app-main::-webkit-scrollbar{width:8px}.app-main::-webkit-scrollbar-thumb{background:#d0d0d0;border-radius:4px}.fade-transform-enter-active,.fade-transform-leave-active{transition:all .3s}.fade-transform-enter{opacity:0;transform:translateX(-30px)}.fade-transform-leave-to{opacity:0;transform:translateX(30px)}.app-container{background:#fff;border-radius:4px;padding:20px;box-shadow:0 1px 3px rgba(0,0,0,.05);margin-bottom:16px}.search-bar{margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid #ebeef5}.search-bar .el-form-item{margin-bottom:0}.table-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.table-toolbar .toolbar-left{display:flex;gap:8px}.table-toolbar .toolbar-right{display:flex;align-items:center;gap:12px}.pagination-wrapper{display:flex;justify-content:flex-end;padding:16px 0 0}.dashboard-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:16px}.stat-card{background:#fff;border-radius:6px;padding:24px;display:flex;align-items:center;gap:16px;box-shadow:0 1px 3px rgba(0,0,0,.05);transition:transform .2s,box-shadow .2s}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.1)}.stat-icon{width:56px;height:56px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:26px;color:#fff;flex-shrink:0}.stat-info .stat-value{font-size:28px;font-weight:600;color:#303133;line-height:1.2}.stat-info .stat-label{font-size:13px;color:#909399;margin-top:4px}.stat-card.blue .stat-icon{background:linear-gradient(135deg,#409eff,#36a3f7)}.stat-card.green .stat-icon{background:linear-gradient(135deg,#67c23a,#85ce61)}.stat-card.orange .stat-icon{background:linear-gradient(135deg,#e6a23c,#f0b454)}.stat-card.purple .stat-icon{background:linear-gradient(135deg,#722ed1,#9254de)}.dashboard-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.dashboard-section-title{font-size:16px;font-weight:600;color:#303133;margin-bottom:16px;display:flex;align-items:center}.dashboard-section-title:before{content:"";width:4px;height:16px;background:#409eff;border-radius:2px;margin-right:8px}.status-distribution{display:flex;flex-direction:column;gap:12px}.status-bar-item{display:flex;align-items:center;gap:12px}.status-bar-item .status-label{width:90px;font-size:13px;color:#606266;flex-shrink:0}.status-bar-item .status-bar-track{flex:1;height:24px;background:#f5f7fa;border-radius:12px;overflow:hidden;position:relative}.status-bar-item .status-bar-fill{height:100%;border-radius:12px;transition:width .5s ease;display:flex;align-items:center;justify-content:flex-end;padding-right:8px;color:#fff;font-size:12px;min-width:24px}.status-bar-item .status-count{width:40px;text-align:right;font-size:13px;font-weight:600;color:#303133}.status-flow{justify-content:space-between;padding:24px 8px;margin-bottom:20px;background:linear-gradient(135deg,#f8f9fb,#eef2f7);border-radius:8px}.status-flow,.status-flow-step{display:flex;align-items:center;position:relative}.status-flow-step{flex-direction:column;z-index:2;flex:0 0 auto}.status-flow-step .step-circle{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;border:2px solid #dcdfe6;background:#fff;color:#c0c4cc;transition:all .3s}.status-flow-step.completed .step-circle{background:#67c23a;border-color:#67c23a;color:#fff}.status-flow-step.current .step-circle{background:#409eff;border-color:#409eff;color:#fff;box-shadow:0 0 0 4px rgba(64,158,255,.2);animation:pulse 2s infinite}@keyframes pulse{0%,to{box-shadow:0 0 0 4px rgba(64,158,255,.2)}50%{box-shadow:0 0 0 8px rgba(64,158,255,.1)}}.status-flow-step .step-label{margin-top:8px;font-size:12px;color:#909399;white-space:nowrap}.status-flow-step.completed .step-label{color:#67c23a;font-weight:600}.status-flow-step.current .step-label{color:#409eff;font-weight:600}.status-flow-line{flex:1;height:2px;background:#dcdfe6;margin:0 -4px;position:relative;top:-18px;z-index:1}.status-flow-line.completed{background:#67c23a}.detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.detail-info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}.detail-info-item{display:flex;flex-direction:column}.detail-info-item .info-label{font-size:12px;color:#909399;margin-bottom:4px}.detail-info-item .info-value{font-size:14px;color:#303133;font-weight:500}.history-timeline{padding:8px 0}.history-timeline .el-timeline-item__timestamp{font-size:13px;color:#909399}.history-timeline .el-timeline-item__content{font-size:13px}.item-action-btns{display:flex;gap:4px;flex-wrap:wrap}.status-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:10px;font-size:12px;font-weight:500}.status-tag:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.empty-state{text-align:center;padding:40px 0;color:#909399}.action-bar{display:flex;gap:8px;flex-wrap:wrap;padding:16px 0 0;border-top:1px solid #ebeef5;margin-top:16px}.dialog-form .el-form-item{margin-bottom:18px}.purchaser-assign-table .el-input{width:120px}.number-emphasis{font-size:15px;font-weight:600;color:#f56c6c}.log-time{font-size:12px;color:#606266}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.page-header .page-title{font-size:18px;font-weight:600;color:#303133}@media (max-width:1200px){.dashboard-stats{grid-template-columns:repeat(2,1fr)}.dashboard-row{grid-template-columns:1fr}}@media (max-width:768px){.sidebar{width:64px;min-width:64px}.sidebar .logo{font-size:0}.sidebar .logo .logo-icon{font-size:22px;margin:0}.menu-item .menu-text{display:none}.detail-info-grid{grid-template-columns:1fr}}.el-message.app-error-message{min-width:320px;max-width:min(560px,86vw);padding:12px 16px;align-items:flex-start;border-radius:6px;box-shadow:0 4px 16px rgba(0,0,0,.12)}.el-message.app-error-message .el-message__icon{margin-top:1px}.el-message.app-error-message .el-message__content{white-space:pre-line;word-break:break-word;overflow-wrap:anywhere;line-height:1.55;font-size:13px;max-height:45vh;overflow-y:auto}.el-message.app-error-message .el-message__closeBtn{position:relative;top:0;margin-left:10px;flex-shrink:0}.el-message-box__message{word-break:break-word;overflow-wrap:anywhere;line-height:1.55}.el-message-box__message p{white-space:pre-line;line-height:1.6}.el-notification__content{word-break:break-word;overflow-wrap:anywhere;line-height:1.55}.el-form-item__error{word-break:break-word;overflow-wrap:anywhere;white-space:pre-line;line-height:1.4}