body,html{margin:0;padding:0}*{box-sizing:border-box}:root{--primary-color:#2563eb;--primary-hover:#1d4ed8;--success-color:#10b981;--warning-color:#f59e0b;--danger-color:#ef4444;--bg-color:#f8fafc;--card-bg:#fff;--text-primary:#1e293b;--text-secondary:#64748b;--border-color:#e2e8f0;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,.1);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1);--transition:all 0.3s cubic-bezier(0.4,0,0.2,1)}::-webkit-scrollbar{width:0;height:0}.btn{padding:10px 20px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);display:inline-flex;align-items:center;gap:8px}.btnPrimary{background:#2563eb;color:#fff}.btnPrimary:hover{background:#1d4ed8;transform:translateY(-1px);box-shadow:0 4px 6px -1px rgba(0,0,0,.1)}.btnPrimary:active{transform:translateY(1px);box-shadow:none}.btnSecondary{background:#fff;color:#1e293b;border:1px solid #e2e8f0}.btnSecondary:hover{background:#f8fafc}.btnSecondary:active{transform:translateY(1px)}.btnDanger{background:#fee2e2;color:#dc2626;border:1px solid #fecaca}.btnDanger:hover{background:#fecaca}.btnSmall{padding:6px 12px;font-size:12px;border:none;border-radius:8px;cursor:pointer}.btnWarning{background:#fff3cd;color:#856404;border:1px solid #ffc107}.btnWarning:hover{background:#ffc107;color:#fff}.btnGradient{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:20px}.btnGradient:hover{transform:translateY(-2px);box-shadow:0 5px 15px rgba(102,126,234,.3)}.btnView{background:#e0f7fa;color:#00838f}.btnView:hover{background:#00838f;color:#fff}.btnEdit{background:#e6f0ff;color:#667eea}.btnEdit:hover{background:#667eea;color:#fff}.btnDelete{background:#ffe6e6;color:#dc3545}.btnDelete:hover{background:#dc3545;color:#fff}.iconBtn{font-size:24px;cursor:pointer;padding:4px;border-radius:4px;transition:all .3s}.iconBtn:hover{background:#f3f4f6;border-color:#2563eb;color:#2563eb}.detailTab,.typeTab{flex:1 1;padding:12px 24px;background:transparent;border-radius:0;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);color:#64748b;text-align:center;border:none;border-bottom:3px solid transparent}.detailTab:hover,.typeTab:hover{background:#f8fafc;color:#1e293b}.detailTab.active,.typeTab.active{color:#667eea;border-bottom-color:#667eea;font-weight:600}.btnAction{padding:6px 12px;border-radius:15px;border:none;cursor:pointer;font-size:12px;transition:all .3s;white-space:nowrap}.active{color:#2563eb}.modalOverlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:3000;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;pointer-events:none;overflow-y:auto;transition:all .2s cubic-bezier(.4,0,.2,1)}.modalOverlay.active{opacity:1!important;visibility:visible!important;pointer-events:auto}.modal{background:#fff;border-radius:12px;width:90%;max-width:800px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 10px 15px -3px rgba(0,0,0,.1);transform:scale(.9);transition:all .2s cubic-bezier(.4,0,.2,1)}.modalOverlay.active .modal{transform:scale(1)}.modalHeader{padding:12px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.modalTitle{font-size:20px;font-weight:600;margin:0}.closeBtn{width:32px;height:32px;border-radius:50%;border:none;background:hsla(0,0%,100%,.2);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:20px;color:#fff;transition:all .3s}.closeBtn:hover{background:hsla(0,0%,100%,.3);transform:rotate(90deg)}.modalBody{flex:1 1;overflow-y:auto;padding:24px}.modalBody::-webkit-scrollbar{width:6px}.modalBody::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.modalBody::-webkit-scrollbar-thumb{background:#ccc;border-radius:3px}.modalBody::-webkit-scrollbar-thumb:hover{background:#999}.modalFooter{padding:16px 24px;border-top:1px solid #e2e8f0;display:flex;justify-content:flex-end;gap:12px;flex-shrink:0}.filterBar{background:#fff;padding:20px;border-radius:12px;margin-bottom:16px;box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.filterRow{display:flex;gap:8px;flex-wrap:nowrap;align-items:flex-end}.filterItem{flex:1 1;min-width:200px}.filterItem label{display:block;font-size:13px;font-weight:500;color:#64748b;margin-bottom:6px}.filterItem input,.filterItem select{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;transition:all .3s cubic-bezier(.4,0,.2,1)}.filterItem input:focus,.filterItem select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.1)}.filterInput{padding:8px 12px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;transition:all .3s cubic-bezier(.4,0,.2,1);min-width:130px;box-sizing:border-box}.filterInput:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.1)}.filterSelect{padding:8px 12px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;transition:all .3s cubic-bezier(.4,0,.2,1);min-width:120px;box-sizing:border-box;background:#fff;cursor:pointer}.filterSelect:focus,.filterSelect:hover{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.1)}.filterCheckbox{width:16px;height:16px;cursor:pointer}.filterCheckboxLabel{display:flex;align-items:center;gap:4px;cursor:pointer;font-size:14px}.filterCheckboxBadge{padding:2px 8px;border-radius:4px;font-size:12px;font-weight:500;transition:all .2s}.formGrid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:20px;gap:20px}.formRow{display:flex;gap:16px;align-items:center}.formGroup{margin-bottom:20px;flex:1 1;min-width:0}.formGroup.fullWidth,.fullWidth{grid-column:1/-1}.formLabel{display:block;font-size:14px;font-weight:500;color:#1e293b;margin-bottom:8px}.formLabel.required:after{content:"*";color:#ef4444;margin-left:4px}.formInput{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;transition:all .3s cubic-bezier(.4,0,.2,1)}.formInput:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.1)}.formSelect{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;transition:all .3s cubic-bezier(.4,0,.2,1);background:#fff;cursor:pointer}.formSelect:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.1)}textarea.formInput,textarea.formTextarea{resize:vertical;min-height:100px}.formTextarea{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;transition:all .3s cubic-bezier(.4,0,.2,1);font-family:inherit}.formTextarea:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.1)}.tagSelector{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.tag{padding:6px 14px;border-radius:20px;font-size:13px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);border:1px solid #e2e8f0;background:#fff}.tag:hover{border-color:#2563eb;color:#2563eb}.tag.active{background:#2563eb;color:#fff;border-color:#2563eb}.fileUpload{border:2px dashed #e2e8f0;border-radius:8px;padding:20px;text-align:center;cursor:pointer;transition:all .3s;background:#fafafa}.fileUpload:hover{border-color:#667eea;background:#f0f4ff}.fileUploadIcon{font-size:36px;margin-bottom:10px;opacity:.3}.fileUploadIcon i{font-size:36px}.fileUploadText{color:#666;font-size:13px}.filePreview{display:flex;align-items:center;gap:10px;padding:10px;background:#f0f4ff;border-radius:6px;margin-top:10px}.filePreviewInfo{flex:1 1}.filePreviewName{font-size:13px;color:#333;margin-bottom:3px}.filePreviewSize{font-size:12px;color:#999}.formValue{padding:10px 15px;background:#f8fafc;border-radius:8px;font-size:14px;color:#64748b}.tableContainer{background:#fff;border-radius:12px;box-shadow:0 1px 2px 0 rgba(0,0,0,.05);overflow:hidden}.tableHeader{padding:12px 20px;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between}.tableTitle{font-size:16px;font-weight:600}.tableActions{display:flex;gap:12px}.dataTable{width:100%;border-collapse:collapse}.dataTable thead{background:#f8fafc}.dataTable th{padding:16px 20px;text-align:left;font-size:13px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.5px}.dataTable tbody tr{border-bottom:1px solid #e2e8f0;transition:all .3s cubic-bezier(.4,0,.2,1)}.dataTable tbody tr:hover{background:#f8fafc}.dataTable tbody tr.selected{background:rgba(37,99,235,.05)}.dataTable td{padding:16px 20px;font-size:14px}.checkbox{width:18px;height:18px;cursor:pointer}.tableSeq{width:40px;color:#999;font-size:12px;text-align:center}.tableInfo{gap:12px}.tableAvatar,.tableInfo{display:flex;align-items:center}.tableAvatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);justify-content:center;color:#fff;font-weight:600;font-size:14px}.tableDetails{flex:1 1}.tableName{font-weight:500;color:#1e293b;margin-bottom:2px}.tableMeta{font-size:12px;color:#64748b}.statusBadge{padding:4px 12px;border-radius:12px;font-size:12px;font-weight:500}.statusActive{background:rgba(16,185,129,.1);color:#10b981}.statusInactive{background:rgba(100,116,139,.1);color:#64748b}.statusVip{background:rgba(245,158,11,.1);color:#f59e0b}.levelBadge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:500}.levelDiamond{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.levelGold{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.levelSilver{background:linear-gradient(135deg,#94a3b8,#64748b);color:#fff}.levelNormal{background:rgba(100,116,139,.1);color:#64748b}.actionButtons{display:flex;gap:8px}.actionBtn{padding:6px 12px;border:1px solid #e2e8f0;background:#fff;border-radius:6px;font-size:13px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1)}.actionBtn:hover{background:#2563eb;color:#fff;border-color:#2563eb}.statCard{background:#fff;padding:16px;border-radius:12px;box-shadow:0 1px 2px 0 rgba(0,0,0,.05);transition:all .3s cubic-bezier(.4,0,.2,1);cursor:pointer}.statCard:hover{transform:translateY(-2px);box-shadow:0 4px 6px -1px rgba(0,0,0,.1)}.statHeader{display:flex;align-items:center;justify-content:space-between}.statTitle{font-size:13px;color:#64748b;font-weight:500}.statIcon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px}.statValue{font-size:28px;font-weight:700;color:#1e293b;margin-bottom:8px}.statChange{font-size:12px;display:flex;align-items:center;gap:4px}.statChange.positive{color:#10b981}.statChange.negative{color:#ef4444}.assetCards{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px;margin-bottom:24px}.assetCard{gap:12px;padding:16px;border:1px solid #e2e8f0;border-radius:8px;background:#fff}.assetCard,.assetIcon{display:flex;align-items:center}.assetIcon{width:48px;height:48px;border-radius:50%;justify-content:center;font-size:24px;flex-shrink:0}.assetInfo{flex:1 1}.assetLabel{font-size:12px;color:#64748b;margin-bottom:4px}.assetValue{font-size:18px;font-weight:700;color:#1e293b}.vehicleCard{display:flex;align-items:center;gap:16px;padding:16px;border:1px solid #e2e8f0;border-radius:8px;background:#fff}.vehicleIcon{font-size:32px;flex-shrink:0}.vehicleInfo{flex:1 1}.vehiclePlate{font-size:16px;font-weight:700;color:#1e293b;margin-bottom:4px;display:flex;align-items:center;gap:8px}.vehicleMeta{font-size:14px;color:#64748b}.vehicleActions{display:flex;gap:8px}.defaultBadge{padding:2px 8px;background:#10b981;color:#fff;border-radius:4px;font-size:12px;font-weight:400}.recordItem{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;transition:all .3s}.recordItem:hover{box-shadow:0 2px 8px rgba(0,0,0,.1)}.recordIcon{font-size:24px;flex-shrink:0}.recordInfo{flex:1 1}.recordTitle{font-size:14px;font-weight:500;color:#1e293b;margin-bottom:4px}.recordMeta{font-size:12px;color:#64748b}.recordAmount{font-size:16px;font-weight:700;color:#1e293b}.recordStatus{flex-shrink:0}.infoItem{box-sizing:border-box;padding:16px;background:#f8fafc;border-radius:8px}.infoLabel{font-size:12px;color:#64748b;margin-bottom:6px;font-weight:500}.infoValue{font-size:14px;color:#1e293b;font-weight:500}.detailCard{background:#f8fafc;border-radius:8px;padding:16px}.detailRow{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #e2e8f0;align-items:flex-start}.detailRow:last-child{border-bottom:none}.detailLabel{color:#64748b;font-size:14px;font-weight:500;min-width:90px;flex-shrink:0}.detailValue{color:#1e293b;font-size:14px;flex:1 1;text-align:right;word-break:break-word}.pagination{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:20px;padding-top:20px;border-top:1px solid #e0e0e0}.paginationInfo{font-size:14px;color:#64748b}.paginationControls{display:flex;align-items:center;gap:8px}.pageBtn{padding:8px 15px;border:1px solid #e0e0e0;background:#fff;border-radius:8px;cursor:pointer;font-size:14px;transition:all .3s;white-space:nowrap}.pageBtn:hover:not(:disabled){border-color:#667eea;color:#667eea}.pageBtn.active{background:#667eea;color:#fff;border-color:#667eea}.pageBtn:disabled{opacity:.5;cursor:not-allowed}.drawerOverlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:2000;opacity:0;visibility:hidden;transition:all .2s cubic-bezier(.4,0,.2,1)}.drawerOverlay.active{opacity:1;visibility:visible}.drawer{position:fixed;top:0;right:-600px;bottom:0;width:600px;background:#fff;box-shadow:0 10px 15px -3px rgba(0,0,0,.1);z-index:2001;transition:all .2s cubic-bezier(.4,0,.2,1);overflow-y:auto}.drawer.active{right:0}.drawerWide{width:900px;max-width:90vw}.drawerTitle{font-size:20px;font-weight:600}.drawerContent{padding:16px 24px 24px}.detailSection{margin-bottom:32px}.sectionTitle{font-size:16px;font-weight:600;margin-bottom:16px;display:flex;align-items:center;gap:8px}.infoGrid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:16px;gap:16px}.detailTabs{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:8px;gap:8px;box-sizing:border-box;padding:0 5px}.tagList{display:flex;flex-wrap:wrap;gap:8px}.customerTag{padding:6px 12px;border-radius:6px;font-size:12px;font-weight:500;display:inline-flex;align-items:center;gap:6px}.tagHighFreq{background:rgba(16,185,129,.1);color:#10b981}.addTag{border:1px dashed #d1d5db;background:#f9fafb;cursor:pointer;color:#6b7280;transition:all .2s}.addTag:hover{border-color:#2563eb;color:#2563eb;background:#f0f4ff}.confirmOverlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:99999;display:flex;align-items:center;justify-content:center}.confirmBox{background:#fff;border-radius:8px;padding:24px;min-width:320px;max-width:400px}.confirmTitle{font-size:18px;font-weight:700;margin-bottom:16px;text-align:center}.confirmMessage{font-size:16px;color:#666;margin-bottom:24px;text-align:center}.confirmActions{display:flex;gap:12px;justify-content:center}.confirmCancelBtn{padding:8px 24px;border:1px solid #ddd;border-radius:4px;background:#fff;cursor:pointer}.confirmOkBtn{padding:8px 24px;border:none;border-radius:4px;background:#2563eb;color:#fff;cursor:pointer}.licensePlate{display:inline-flex;align-items:center;justify-content:center;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:700;font-family:Microsoft YaHei,PingFang SC,sans-serif;letter-spacing:1px;border:1px solid;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;height:22px;box-sizing:border-box}.licensePlateBlue{background:linear-gradient(180deg,#1e4d8c,#0d2f5c);border-color:#1e4d8c}.licensePlateBlue,.licensePlateGreen{color:#fff;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.2),0 1px 2px rgba(0,0,0,.2)}.licensePlateGreen{background:linear-gradient(180deg,#1e7f3e,#0d4a20);border-color:#1e7f3e}.pagehead{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:12px 20px;justify-content:space-between;flex-wrap:wrap;gap:15px;flex-shrink:0}.pagehead,.pageheadTitle{display:flex;align-items:center}.pageheadTitle{font-size:20px;font-weight:600;gap:10px;margin:0}.pageheadStats{display:flex;gap:12px;flex-wrap:wrap}.pageheadStatItem{text-align:center;padding:6px 10px;background:hsla(0,0%,100%,.15);border-radius:10px;backdrop-filter:blur(10px);min-width:80px}.pageheadStatLabel{font-size:11px;opacity:.9;margin-bottom:2px}.pageheadStatValue{font-size:18px;font-weight:700}.toolbar{padding:15px 20px;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:15px;flex-shrink:0}.searchBox{position:relative;flex:1 1;max-width:400px}.searchInput{width:100%;padding:10px 40px 10px 15px;border:2px solid #e0e0e0;border-radius:25px;font-size:14px;outline:none;transition:all .3s;box-sizing:border-box}.searchInput:focus{border-color:#667eea;box-shadow:0 0 0 3px rgba(102,126,234,.1)}.searchIcon{position:absolute;right:15px;top:50%;transform:translateY(-50%);color:#999}.toolbarButtons{display:flex;gap:10px;flex-wrap:wrap}@media (max-width:768px){.toolbar{flex-direction:column;align-items:stretch}.searchBox{max-width:none}}.emptyState{text-align:center;padding:60px 20px}.emptyIcon{font-size:64px;margin-bottom:20px;opacity:.3}.emptyText{font-size:16px;color:#999}.parkSelection{max-height:250px;overflow-y:auto;border:2px solid #e0e0e0;border-radius:8px;padding:15px;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:10px;gap:10px}.parkCheckbox{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f9f9f9;border-radius:6px;cursor:pointer;transition:all .3s}.parkCheckbox:hover{background:#e9ecef}.parkCheckbox input[type=checkbox]{width:18px;height:18px;cursor:pointer}.parkCheckbox span{font-size:14px;color:#333}.pagecontainer{margin:0 auto;background:#fff;box-shadow:0 2px 20px rgba(0,0,0,.08);overflow:hidden;display:flex;flex-direction:column;height:calc(100vh - 100px)}.pagecontent{padding:20px;overflow-y:auto;flex:1 1;min-height:0}.batchBar{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:#fff;padding:15px 30px;border-radius:50px;box-shadow:0 10px 40px rgba(0,0,0,.2);display:flex;align-items:center;gap:20px;z-index:999}.batchInfo{color:#666;font-size:14px}.batchSelected{color:#667eea;font-weight:700}.tabContainer{display:flex;background:#f8fafc;border-bottom:1px solid #e2e8f0;flex-shrink:0}.tab{flex:1 1;padding:14px 20px;border:none;background:transparent;font-size:14px;font-weight:500;color:#64748b;cursor:pointer;transition:all .2s}.tab:hover{background:#f1f5f9;color:#1e293b}.activeTab,.tab.active{color:#667eea!important;border-bottom:3px solid #667eea!important;background:#fff!important}