*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px;color:#333;background:#f5f7fa}.layout{display:flex;height:100vh;overflow:hidden}.sidebar{width:220px;background:#fff;border-right:1px solid #eee;display:flex;flex-direction:column;flex-shrink:0}.sidebar-logo{padding:20px 20px 16px;font-size:18px;font-weight:700;color:#1677ff;border-bottom:1px solid #f0f0f0}.sidebar-nav{flex:1;padding:12px 0}.nav-item{display:flex;align-items:center;gap:10px;padding:10px 20px;color:#555;text-decoration:none;font-size:14px;border-left:3px solid transparent;transition:all .15s}.nav-item:hover{background:#f5f7fa;color:#1677ff}.nav-item.active{background:#e6f4ff;color:#1677ff;border-left-color:#1677ff;font-weight:500}.nav-icon{font-size:16px}.sidebar-footer{padding:16px 20px;border-top:1px solid #f0f0f0}.user-info{font-size:13px;color:#666;margin-bottom:8px}.logout-btn{width:100%;padding:6px;border:1px solid #d9d9d9;border-radius:6px;background:#fff;color:#666;cursor:pointer;font-size:13px}.logout-btn:hover{color:#ff4d4f;border-color:#ff4d4f}.main-wrapper{flex:1;display:flex;flex-direction:column;overflow:hidden}.topbar{height:56px;background:#fff;border-bottom:1px solid #eee;display:flex;align-items:center;justify-content:space-between;padding:0 24px;flex-shrink:0}.topbar-title{font-size:16px;font-weight:600}.user-badge{font-size:13px;color:#888}.main-content{flex:1;overflow-y:auto;padding:24px}.card{background:#fff;border-radius:8px;padding:20px;margin-bottom:16px;box-shadow:0 1px 4px #0000000f}.section-title{font-size:15px;font-weight:600;margin-bottom:16px}.section-title-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.see-all{font-size:13px;color:#1677ff;text-decoration:none}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.page-header h2{font-size:20px;font-weight:600}.btn-primary{background:#1677ff;color:#fff;border:none;border-radius:6px;padding:8px 16px;font-size:14px;cursor:pointer}.btn-primary:hover{background:#0958d9}.btn-primary:disabled{background:#ccc;cursor:not-allowed}.btn-primary-sm{background:#1677ff;color:#fff;border:none;border-radius:4px;padding:4px 12px;font-size:13px;cursor:pointer}.btn-secondary{background:#fff;color:#1677ff;border:1px solid #1677FF;border-radius:6px;padding:8px 16px;font-size:14px;cursor:pointer}.btn-secondary:hover{background:#e6f4ff}.btn-link{background:none;border:none;color:#1677ff;cursor:pointer;font-size:13px;padding:0 4px}.btn-link:hover{text-decoration:underline}.btn-link.btn-danger{color:#ff4d4f}.btn-text{background:none;border:1px solid #d9d9d9;border-radius:4px;color:#555;cursor:pointer;font-size:13px;padding:4px 10px}.form-item{margin-bottom:14px}.form-item label{display:block;font-size:13px;color:#555;margin-bottom:5px}.form-input{width:100%;height:36px;border:1px solid #d9d9d9;border-radius:6px;padding:0 10px;font-size:14px;outline:none}.form-input:focus{border-color:#1677ff}.search-input{height:32px;border:1px solid #d9d9d9;border-radius:6px;padding:0 10px;font-size:13px;width:200px;outline:none}.search-input-sm{height:30px;border:1px solid #d9d9d9;border-radius:4px;padding:0 8px;font-size:13px;width:160px}.filter-row{display:flex;gap:10px;margin-bottom:14px}.filter-select{height:32px;border:1px solid #d9d9d9;border-radius:6px;padding:0 10px;font-size:13px;background:#fff}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th{background:#fafafa;padding:10px 12px;text-align:left;border-bottom:1px solid #f0f0f0;font-weight:500;color:#555}.data-table td{padding:10px 12px;border-bottom:1px solid #f8f8f8}.data-table tr:hover td{background:#fafffe}.data-table .row-locked td{color:#999}.td-actions{display:flex;gap:8px}.td-name{font-weight:500}.td-dest{font-size:12px;color:#888;margin-left:6px}.status-tag{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px}.status-active{background:#f6ffed;color:#52c41a}.status-locked{background:#fff7e6;color:#fa8c16}.status-archived{background:#fafafa;color:#999;border:1px solid #d9d9d9}.badge-warn{background:#fff7e6;color:#fa8c16;font-size:12px;padding:1px 6px;border-radius:4px;margin-left:4px}.alert-row{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#fffbe6;border:1px solid #FFE58F;border-radius:6px;margin-bottom:8px;cursor:pointer}.alert-row:hover{background:#fff7cc}.alert-text{flex:1;font-size:13px}.alert-arrow{color:#1677ff}.alert-banner{background:#fff7e6;border:1px solid #FAAD14;border-radius:6px;padding:10px 16px;margin-bottom:12px;display:flex;align-items:center;gap:12px;font-size:13px}.version-tip{background:#fff2f0;color:#ff4d4f;padding:8px 14px;border-radius:6px;font-size:13px;margin-bottom:12px}.progress-wrap{margin-top:10px}.progress-bar{height:6px;background:#f0f0f0;border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:#1677ff;border-radius:3px}.progress-label{font-size:12px;color:#888;margin-top:4px}.watermark{font-size:12px;color:#bbb;margin-top:6px}.locked-text{color:#faad14}.tag-blue{background:#e6f4ff;color:#1677ff;padding:1px 6px;border-radius:4px;font-size:12px}.tag-orange{background:#fff7e6;color:#fa8c16;padding:1px 6px;border-radius:4px;font-size:12px}.ticket-tag{padding:1px 6px;border-radius:4px;font-size:12px}.text-success{color:#52c41a}.text-warn{color:#fa8c16}.pay-divider-row{text-align:center;color:#bbb;font-size:12px;padding:8px 0;border-top:1px dashed #eee;margin-top:4px}.batch-actions{padding:10px 14px;background:#e6f4ff;border-radius:6px;display:flex;align-items:center;gap:12px;font-size:13px;margin-top:10px}.load-more-row{text-align:center;padding:14px 0}.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:20px}.stat-card{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 4px #0000000f;text-align:center}.stat-num{font-size:28px;font-weight:700;color:#1677ff}.stat-label{font-size:13px;color:#888;margin-top:4px}.export-section .export-info{display:flex;flex-direction:column;gap:8px}.export-price{font-size:15px}.price-free{color:#52c41a;font-weight:600}.price-per{font-size:12px;color:#888;margin-left:8px}.export-includes{font-size:12px;color:#888}.export-btn{width:200px}.export-tip{font-size:12px;color:#bbb}.generating-info,.failed-info{display:flex;align-items:center;gap:12px;font-size:14px;padding:8px 0}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-box{background:#fff;border-radius:10px;padding:28px;width:440px;position:relative}.modal-title{font-size:18px;font-weight:600;margin-bottom:20px}.modal-close{position:absolute;top:14px;right:14px;background:none;border:none;font-size:18px;cursor:pointer;color:#999}.modal-actions{display:flex;gap:10px;margin-top:20px;justify-content:flex-end}.pay-modal{width:380px}.pay-includes{background:#fafafa;border-radius:6px;padding:12px;font-size:13px;color:#555;line-height:2;margin-bottom:14px}.pay-amount{font-size:20px;font-weight:700;color:#ff4d4f;margin-bottom:4px}.pay-tip{font-size:12px;color:#888;margin-bottom:16px}.pay-btn{width:100%;padding:12px;font-size:16px}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2)}.login-card{background:#fff;border-radius:16px;padding:40px;width:360px;text-align:center;box-shadow:0 20px 60px #0003}.login-logo{font-size:48px;margin-bottom:8px}.login-title{font-size:24px;font-weight:700;color:#333}.login-subtitle{font-size:14px;color:#888;margin-bottom:28px}.qrcode-box{margin:0 auto 16px}.qrcode-img{width:200px;height:200px;border:1px solid #eee;border-radius:8px}.qrcode-loading{width:200px;height:200px;background:#fafafa;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#bbb;margin:0 auto}.qrcode-tip{font-size:13px;color:#888;margin-top:8px}.polling-tip{font-size:13px;color:#1677ff;margin-bottom:8px}.error-tip{font-size:13px;color:#ff4d4f;margin-bottom:8px}.login-footer{font-size:12px;color:#bbb;margin-top:20px}.detail-header{display:flex;justify-content:space-between;align-items:flex-start}.header-left{flex:1}.header-right{display:flex;flex-direction:column;align-items:flex-end;gap:10px}.team-name{font-size:22px;font-weight:700;margin-bottom:6px}.team-meta{font-size:13px;color:#888}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.members-card .section-title{margin-bottom:0}
