@import url(https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap);*{margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:#f5f7fa}.main-layout[data-v-26019a87]{min-height:100vh;overflow:hidden}[data-v-26019a87] .el-main{min-width:0;overflow-x:auto}.sidebar[data-v-26019a87]{background:linear-gradient(160deg,#1e3c72,#2a5298 50%,#1e3c72);box-shadow:4px 0 20px rgba(0,0,0,.25);position:fixed;left:0;top:0;height:100vh;width:220px;z-index:1001;transform:translateX(0);transition:transform .35s cubic-bezier(.4,0,.2,1);overflow:hidden}.sidebar.collapsed[data-v-26019a87]{transform:translateX(-100%);box-shadow:none}.sidebar[data-v-26019a87]:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 50%,rgba(120,119,198,.3) 0,transparent 50%),radial-gradient(circle at 80% 80%,rgba(255,119,198,.15) 0,transparent 50%);pointer-events:none}.sidebar-trigger[data-v-26019a87]{position:fixed;left:0;top:50%;transform:translateY(-50%);width:6px;height:200px;background:linear-gradient(180deg,#1e3c72,#2a5298 50%,#1e3c72);border-radius:0 6px 6px 0;z-index:1000;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:2px 0 8px rgba(0,0,0,.2);transition:width .25s ease,box-shadow .25s ease}.sidebar-trigger[data-v-26019a87]:hover{width:10px;box-shadow:3px 0 12px rgba(0,0,0,.3)}.trigger-arrow[data-v-26019a87]{color:hsla(0,0%,100%,.9);font-size:12px;margin-left:1px}.logo[data-v-26019a87]{height:90px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;background:linear-gradient(135deg,hsla(0,0%,100%,.15),hsla(0,0%,100%,.05));backdrop-filter:blur(10px);border-bottom:1px solid hsla(0,0%,100%,.1);gap:6px;padding-left:20px;position:relative;z-index:1;white-space:nowrap}.logo-image-wrapper[data-v-26019a87]{display:flex;align-items:center;justify-content:flex-start}.logo-icon[data-v-26019a87]{font-size:42px;line-height:1}.logo-img[data-v-26019a87]{max-width:80px;max-height:60px;width:auto;height:auto;-o-object-fit:contain;object-fit:contain}.logo-text[data-v-26019a87]{color:#fff;font-size:14px;font-weight:600;text-align:left}.sidebar-menu[data-v-26019a87]{border-right:none;background:transparent!important;position:relative;z-index:1}[data-v-26019a87] .el-menu-item{margin:4px 12px;border-radius:8px;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}[data-v-26019a87] .el-menu-item:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,hsla(0,0%,100%,.1),transparent);opacity:0;transition:opacity .3s ease}[data-v-26019a87] .el-menu-item:hover{background:hsla(0,0%,100%,.1)!important;transform:translateX(4px)}[data-v-26019a87] .el-menu-item:hover:before{opacity:1}[data-v-26019a87] .el-menu-item.is-active{background:linear-gradient(90deg,rgba(99,102,241,.5),rgba(168,85,247,.3))!important;box-shadow:0 4px 15px rgba(99,102,241,.3);font-weight:600}[data-v-26019a87] .el-sub-menu__title{margin:4px 12px;border-radius:8px;transition:all .3s cubic-bezier(.4,0,.2,1);padding-right:30px!important}[data-v-26019a87] .el-sub-menu__title:hover{background:hsla(0,0%,100%,.1)!important}[data-v-26019a87] .el-sub-menu__icon-arrow{right:10px!important;font-size:12px}[data-v-26019a87] .el-sub-menu__title span{margin-right:4px}[data-v-26019a87] .el-menu--inline{background:rgba(0,0,0,.2)!important;border-radius:8px;margin:0 12px 8px;padding:4px 0}[data-v-26019a87] .el-menu--inline .el-menu-item{margin:2px 8px;background:transparent!important}[data-v-26019a87] .el-menu--inline .el-menu-item.is-active{background:linear-gradient(90deg,rgba(236,72,153,.4),rgba(168,85,247,.2))!important;box-shadow:0 2px 8px rgba(236,72,153,.25)}.header[data-v-26019a87]{background:#fff;box-shadow:0 1px 4px rgba(0,21,41,.08);justify-content:space-between}.collapse-btn[data-v-26019a87],.header-left[data-v-26019a87],.header[data-v-26019a87]{display:flex;align-items:center}.collapse-btn[data-v-26019a87]{width:36px;height:36px;justify-content:center;border-radius:6px;cursor:pointer;color:#606266;transition:all .3s ease;font-size:18px}.collapse-btn[data-v-26019a87]:hover{background:#f0f2f5;color:#409eff}.header-right[data-v-26019a87],.user-info[data-v-26019a87]{display:flex;align-items:center}.user-info[data-v-26019a87]{cursor:pointer;color:#606266;gap:4px}.main-content[data-v-26019a87]{background:#f5f7fa;padding:20px}:root{--apple-blue:#007aff;--apple-blue-light:rgba(0,122,255,.1);--apple-green:#34c759;--apple-green-light:rgba(52,199,89,.1);--apple-orange:#ff9500;--apple-orange-light:rgba(255,149,0,.1);--apple-red:#ff3b30;--apple-red-light:rgba(255,59,48,.1);--apple-purple:#af52de;--apple-gray:#8e8e93;--apple-gray-2:#aeaeb2;--apple-gray-3:#c7c7cc;--apple-gray-4:#d1d1d6;--apple-gray-5:#e5e5ea;--apple-gray-6:#f2f2f7;--apple-bg:#f5f5f7;--apple-white:#fff;--apple-text:#000;--apple-text-secondary:#3c3c43;--apple-text-tertiary:#8e8e93;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--shadow-sm:0 1px 2px rgba(0,0,0,.04);--shadow-md:0 4px 12px rgba(0,0,0,.08);--shadow-lg:0 12px 40px rgba(0,0,0,.12);--font-stack:"Inter",-apple-system,BlinkMacSystemFont,"SF Pro Text",sans-serif}*{box-sizing:border-box}body,html{font-family:var(--font-stack);color:var(--apple-text);background:var(--apple-bg);margin:0;padding:0;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app,.app-container{background:var(--apple-bg);min-height:100vh}.btn-primary{background:var(--apple-blue);color:#fff;border:none;padding:8px 16px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;box-shadow:none}.btn-primary:hover{background:#06d;transform:translateY(-1px);box-shadow:0 2px 8px rgba(0,122,255,.3)}.btn-success{background:var(--apple-green);color:#fff;border:none;padding:8px 16px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;cursor:pointer}.btn-success:hover{background:#2db840}.btn-default{background:var(--apple-white);color:var(--apple-text);border:1px solid var(--apple-gray-5);padding:8px 16px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;cursor:pointer}.btn-default:hover{background:var(--apple-gray-6)}.btn-link{background:none;border:none;color:var(--apple-blue);cursor:pointer;padding:4px 8px;font-size:13px;font-weight:500}.btn-link:hover{opacity:.7}.btn-link.danger{color:var(--apple-red)}input[type=date],input[type=email],input[type=month],input[type=number],input[type=password],input[type=text],select,textarea{font-family:var(--font-stack);border:1px solid var(--apple-gray-5);border-radius:var(--radius-sm);padding:8px 12px;font-size:13px;background:var(--apple-white);color:var(--apple-text);transition:all .2s ease;width:100%;box-shadow:none}input:focus,select:focus,textarea:focus{border-color:var(--apple-blue);outline:none;box-shadow:0 0 0 4px var(--apple-blue-light)}.el-input .el-input__inner,.el-input .el-input__inner:focus,.el-select .el-select__input,.el-select .el-select__input:focus{border:none;padding:0;box-shadow:none;background:transparent}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath fill='%238E8E93' d='M6 8 1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}label{font-size:13px;font-weight:500;color:var(--apple-text-secondary);margin-bottom:6px;display:block}.data-table{width:100%;border-collapse:collapse;background:var(--apple-white);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.data-table thead tr{background:var(--apple-gray-6)}.data-table th{font-weight:600;color:var(--apple-text-secondary);font-size:12px;text-transform:uppercase;letter-spacing:.5px;text-align:left}.data-table td,.data-table th{padding:14px 12px;border-bottom:1px solid var(--apple-gray-5)}.data-table td{font-size:13px;color:var(--apple-text)}.data-table tbody tr:hover td{background:rgba(0,0,0,.02)}.data-table .empty-row{text-align:center;color:var(--apple-text-tertiary);padding:60px 20px}.status-tag{display:inline-flex;align-items:center;padding:4px 10px;border-radius:20px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.status-tag.pending,.status-tag.待结算,.status-tag.进行中{background:var(--apple-orange-light);color:#c70}.status-tag.settled,.status-tag.已完工,.status-tag.已结算{background:var(--apple-green-light);color:#1a8038}.status-tag.暂停{background:var(--apple-red-light);color:#cc2a1e}.status-tag.正常{background:var(--apple-green-light);color:#1a8038}.status-tag.维修中{background:var(--apple-orange-light);color:#c70}.status-tag.已报废{background:var(--apple-gray-5);color:var(--apple-text-tertiary)}.dialog-mask{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.4);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;z-index:9999;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.dialog{background:var(--apple-white);border-radius:var(--radius-xl);width:90%;max-width:560px;max-height:85vh;overflow:hidden;box-shadow:var(--shadow-lg);animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.dialog-header{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;border-bottom:1px solid var(--apple-gray-5)}.dialog-header h3{margin:0;font-size:17px;font-weight:600;color:var(--apple-text)}.dialog-header .close{font-size:24px;color:var(--apple-text-tertiary);cursor:pointer;line-height:1;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%}.dialog-header .close:hover{background:var(--apple-gray-6)}.dialog-body{padding:24px;max-height:60vh;overflow-y:auto}.dialog-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px;border-top:1px solid var(--apple-gray-5);background:var(--apple-gray-6)}.form-row{display:flex;gap:16px;margin-bottom:16px}.form-row .form-item{flex:1}.form-item{margin-bottom:16px}.form-item label{margin-bottom:6px}.form-item .required{color:var(--apple-red);margin-right:2px}.toolbar{justify-content:space-between;margin-bottom:20px;padding:16px 20px;background:var(--apple-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.search-box,.toolbar{display:flex;align-items:center}.search-box{gap:10px}.search-box input{width:240px}.pagination{display:flex;justify-content:center;align-items:center;gap:6px;margin-top:24px;padding:16px}.pagination button{min-width:32px;height:32px;padding:0 12px;border-radius:var(--radius-sm);border:1px solid var(--apple-gray-5);background:var(--apple-white);font-size:13px;cursor:pointer;transition:all .2s}.pagination button:hover:not(:disabled){border-color:var(--apple-blue);color:var(--apple-blue)}.pagination button:disabled{opacity:.4;cursor:not-allowed}.pagination span{color:var(--apple-text-secondary);font-size:13px;padding:0 8px}.page-header{display:flex;align-items:center;gap:16px;margin-bottom:24px}.page-header h2{font-size:28px;font-weight:700;color:var(--apple-text);margin:0}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--apple-gray-5);margin-bottom:20px;padding:0 20px;background:var(--apple-white);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.tab-item{padding:14px 20px;cursor:pointer;color:var(--apple-text-secondary);font-weight:500;font-size:14px;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .2s}.tab-item:hover{color:var(--apple-text)}.tab-item.active{color:var(--apple-blue);border-bottom-color:var(--apple-blue)}.tab-content{background:var(--apple-white);border-radius:0 0 var(--radius-lg) var(--radius-lg);padding:20px;box-shadow:var(--shadow-sm);min-height:400px}.summary-box{padding:20px 24px;background:linear-gradient(135deg,var(--apple-blue) 0,#5856d6 100%);border-radius:var(--radius-lg);color:#fff;margin-top:20px}.summary-box strong{font-size:32px;font-weight:700}.card{background:var(--apple-white);padding:20px;box-shadow:var(--shadow-sm);margin-bottom:16px}.card,.contract-info{border-radius:var(--radius-lg)}.contract-info{display:flex;gap:32px;padding:20px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;margin-bottom:24px}.contract-info .info-item{display:flex;flex-direction:column;gap:4px}.contract-info .label{font-size:12px;opacity:.8;text-transform:uppercase;letter-spacing:.5px}.contract-info .value{font-size:18px;font-weight:600}.device-rent-section{margin-bottom:24px;padding:20px;background:var(--apple-gray-6);border-radius:var(--radius-md)}.device-rent-section h4{margin:0 0 16px 0;font-size:15px;font-weight:600;color:var(--apple-text-secondary)}.panel-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.searchable-select{position:relative}.searchable-select .select-trigger{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border:1px solid var(--apple-gray-5);border-radius:var(--radius-sm);background:var(--apple-white);cursor:pointer;min-height:36px;transition:all .2s}.searchable-select .select-trigger:hover{border-color:var(--apple-gray-4)}.searchable-select .select-trigger.focused{border-color:var(--apple-blue);box-shadow:0 0 0 4px var(--apple-blue-light)}.searchable-select .dropdown{position:absolute;top:100%;left:0;right:0;background:var(--apple-white);border:1px solid var(--apple-gray-5);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);z-index:100;margin-top:4px;max-height:240px;overflow:hidden}.searchable-select .search-input-wrapper{padding:8px;border-bottom:1px solid var(--apple-gray-5)}.searchable-select .search-input-wrapper input{border:none;padding:6px;font-size:13px;box-shadow:none}.searchable-select .search-input-wrapper input:focus{box-shadow:none}.searchable-select .options-list{max-height:200px;overflow-y:auto}.searchable-select .option{padding:10px 12px;cursor:pointer;font-size:13px}.searchable-select .option.highlighted,.searchable-select .option.selected,.searchable-select .option:hover{background:var(--apple-blue-light);color:var(--apple-blue)}.searchable-select .option.selected{font-weight:500}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--apple-text-tertiary)}.empty-state svg{width:64px;height:64px;margin-bottom:16px;opacity:.5}.loading{display:flex;align-items:center;justify-content:center;padding:40px}.spinner{width:32px;height:32px;border:3px solid var(--apple-gray-5);border-top-color:var(--apple-blue);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--apple-gray-4);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--apple-gray-3)}.table-wrapper{overflow-x:auto;width:100%;-webkit-overflow-scrolling:touch}.table-wrapper .data-table,.table-wrapper table{min-width:900px;width:100%}.toolbar{gap:10px}.search-box,.toolbar{flex-wrap:wrap}.dialog{max-width:95vw}.btn-group,.form-row,.page-header,.tabs{flex-wrap:wrap}.stats-row .el-col{margin-bottom:16px}.el-table{width:100%!important}.el-table__body-wrapper,.el-table__header-wrapper{overflow-x:auto}@media (max-width:1200px){.search-box input{width:180px}.el-col-12,.el-col-16,.el-col-8,.form-row .el-col{width:100%!important;max-width:100%!important;flex:0 0 100%!important}}@media (max-width:768px){.page-header h2{font-size:20px}.search-box input{width:140px}.data-table td,.data-table th{padding:10px 8px;font-size:12px}.el-dialog{width:95vw!important;max-width:95vw!important}.el-col-12,.el-col-16,.el-col-4,.el-col-5,.el-col-6,.el-col-8{width:100%!important;max-width:100%!important;flex:0 0 100%!important}}