.app-shell{min-height:100vh}.sidebar{background:#123c2f;color:#fff;display:flex;flex-direction:column;transition:width .3s;overflow:hidden}.brand{height:72px;display:flex;align-items:center;padding:0 18px;gap:12px}.brand-mini{justify-content:center;padding:0}.brand-mark{width:40px;height:40px;border-radius:12px;background:#2eb67d;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:22px;flex-shrink:0}.brand-title{font-size:18px;font-weight:800}.brand-sub{font-size:12px;color:#a8d6c7;margin-top:3px}.topbar{background:#fff;display:flex;align-items:center;justify-content:space-between;box-shadow:0 3px 16px rgba(31,45,61,.06);font-weight:700}.admin-chip{padding:6px 14px;background:#eef8f3;color:#127a54;border-radius:20px}.el-menu{border-right:none;flex:1}.el-menu--collapse{width:64px}.collapse-btn{height:48px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#a8d6c7;font-size:20px;transition:color .2s}.collapse-btn:hover{color:#fff}.filter-form[data-v-03ff5f9b] .el-row{width:100%}.filter-form[data-v-03ff5f9b] .el-form-item{margin-bottom:12px}.filter-form[data-v-03ff5f9b] .el-form-item__content{width:calc(100% - 68px)}.filter-form[data-v-03ff5f9b] .el-date-editor,.filter-form[data-v-03ff5f9b] .el-input,.filter-form[data-v-03ff5f9b] .el-select{width:100%}.filter-form[data-v-03ff5f9b] .filter-actions .el-form-item__content{width:100%;display:flex;gap:8px}.filter-form[data-v-03ff5f9b] .filter-actions .el-button{min-width:72px}.action-bar[data-v-03ff5f9b]{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px;line-height:20px}.action-text[data-v-03ff5f9b]{cursor:pointer;font-size:13px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.action-text[data-v-03ff5f9b]:hover{text-decoration:underline}.action-text.view[data-v-03ff5f9b]{color:#606266}.action-text.edit[data-v-03ff5f9b]{color:#409eff}.action-text.audit[data-v-03ff5f9b]{color:#2f8f5b}.action-text.delete[data-v-03ff5f9b]{color:#f56c6c}.table-toolbar[data-v-03ff5f9b]{display:flex;justify-content:flex-end;gap:10px;margin-bottom:12px}.display-btn[data-v-03ff5f9b]{margin-left:10px}.action-bar[data-v-03ff5f9b] .el-button+.el-button{margin-left:0}.cover[data-v-03ff5f9b]{width:56px;height:56px;border-radius:8px;background:#f2f2f2}.photo[data-v-03ff5f9b]{width:96px;height:96px;border-radius:10px;margin:8px 8px 0 0}.section-title[data-v-03ff5f9b]{margin:18px 0 10px;font-weight:700;color:#123c2f}.audit-form[data-v-03ff5f9b],.edit-form[data-v-03ff5f9b]{margin-top:18px}.edit-form[data-v-03ff5f9b] .el-select{width:100%}.img-upload-list[data-v-03ff5f9b]{display:flex;flex-wrap:wrap;gap:10px}.img-upload-item[data-v-03ff5f9b]{position:relative;width:90px;height:90px;border-radius:6px;overflow:hidden;border:1px solid #e0e0e0}.img-thumb[data-v-03ff5f9b]{width:90px;height:90px}.img-delete[data-v-03ff5f9b]{position:absolute;top:2px;right:4px;color:#fff;background:rgba(0,0,0,.55);border-radius:50%;width:18px;height:18px;line-height:18px;text-align:center;font-size:14px;cursor:pointer}.img-upload-add[data-v-03ff5f9b]{display:flex;align-items:center;justify-content:center;width:90px;height:90px;border:1px dashed #ccc;border-radius:6px;cursor:pointer;font-size:13px;color:#409eff;background:#fafafa}.img-upload-add.disabled[data-v-03ff5f9b]{opacity:.5;cursor:not-allowed}.el-pagination[data-v-03ff5f9b]{margin-top:16px;text-align:right}.env-checkbox-group[data-v-03ff5f9b]{display:flex;flex-wrap:wrap;gap:4px 16px;padding-top:4px}.env-checkbox-group[data-v-03ff5f9b] .el-checkbox{margin-right:0}.stats-row[data-v-01ab34b9]{margin-bottom:18px}.stat-card[data-v-01ab34b9]{background:linear-gradient(135deg,#1c6b53,#2eb67d);color:#fff;border-radius:16px;padding:22px;box-shadow:0 8px 24px rgba(31,45,61,.08)}.stat-card.green[data-v-01ab34b9]{background:linear-gradient(135deg,#0d8b65,#58d68d)}.stat-card.orange[data-v-01ab34b9]{background:linear-gradient(135deg,#d9822b,#f6b44b)}.num[data-v-01ab34b9]{font-size:32px;font-weight:800;margin-bottom:8px}.filter-form[data-v-01ab34b9] .el-input{width:180px}.filter-form[data-v-01ab34b9] .el-date-editor{width:260px}.table-toolbar[data-v-01ab34b9]{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.table-title[data-v-01ab34b9]{font-size:14px;color:#333;font-weight:600}.user-cell[data-v-01ab34b9]{display:flex;align-items:center;gap:10px}.main-text[data-v-01ab34b9]{color:#333;font-weight:600;line-height:20px}.sub-text[data-v-01ab34b9]{color:#909399;font-size:12px;line-height:18px}.tag-item[data-v-01ab34b9]{margin:2px 4px 2px 0}.patrol-detail[data-v-01ab34b9]{padding:4px 8px}.section-title[data-v-01ab34b9]{margin:16px 0 10px;font-weight:700;color:#123c2f}.photo[data-v-01ab34b9]{width:90px;height:90px;border-radius:10px;margin:0 8px 8px 0}.empty-tip[data-v-01ab34b9]{color:#999}.tag-grid[data-v-01ab34b9]{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.tag-pair[data-v-01ab34b9]{display:flex;gap:8px}.pill[data-v-01ab34b9]{padding:6px 10px;border-radius:16px;font-size:12px}.ok[data-v-01ab34b9]{background:#e8f5e9;color:#16824f}.bad[data-v-01ab34b9]{background:#ffebee;color:#d93026}.disabled[data-v-01ab34b9]{background:#f1f3f5;color:#9aa2af}.action-bar[data-v-01ab34b9]{display:flex;align-items:center;gap:10px}.action-text[data-v-01ab34b9]{cursor:pointer;font-size:13px}.action-text[data-v-01ab34b9]:hover{text-decoration:underline}.action-text.view[data-v-01ab34b9]{color:#606266}.action-text.edit[data-v-01ab34b9]{color:#409eff}.action-text.delete[data-v-01ab34b9]{color:#f56c6c}.el-pagination[data-v-01ab34b9]{margin-top:16px;text-align:right}.panel-card[data-v-0c07f725]{background:#fff;border-radius:12px;padding:18px;box-shadow:0 2px 12px rgba(0,0,0,.06)}.panel-title[data-v-0c07f725]{font-weight:800;color:#123c2f;margin-bottom:12px}.filter-inline[data-v-0c07f725]{margin-bottom:12px}.action-bar[data-v-0c07f725]{display:flex;align-items:center;gap:10px}.action-text[data-v-0c07f725]{cursor:pointer;font-size:13px}.action-text[data-v-0c07f725]:hover{text-decoration:underline}.action-text.primary[data-v-0c07f725]{color:#409eff}.action-text.delete[data-v-0c07f725]{color:#f56c6c}.action-text.disabled[data-v-0c07f725]{color:#c0c4cc;cursor:not-allowed}.action-text.disabled[data-v-0c07f725]:hover{text-decoration:none}.empty-tip[data-v-0c07f725]{color:#999}[data-v-0c07f725] .rank-top td{background:#fffbe6!important}.filter-form[data-v-268b3eac] .el-row{width:100%}.filter-form[data-v-268b3eac] .el-form-item{margin-bottom:12px}.filter-form[data-v-268b3eac] .el-date-editor,.filter-form[data-v-268b3eac] .el-input,.filter-form[data-v-268b3eac] .el-select{width:100%}.filter-form[data-v-268b3eac] .filter-actions .el-form-item__content{display:flex;gap:8px}.table-toolbar[data-v-268b3eac]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.table-total[data-v-268b3eac]{font-size:13px;color:#606266}.user-cell[data-v-268b3eac]{display:flex;align-items:center;gap:8px}.user-name[data-v-268b3eac]{font-weight:600;font-size:13px;color:#303133}.user-sub[data-v-268b3eac]{font-size:12px;color:#909399}.action-bar[data-v-268b3eac]{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px}.action-text[data-v-268b3eac]{cursor:pointer;font-size:13px}.action-text[data-v-268b3eac]:hover{text-decoration:underline}.action-text.view[data-v-268b3eac]{color:#606266}.action-text.audit[data-v-268b3eac]{color:#2f8f5b}.action-text.reject[data-v-268b3eac]{color:#e6a23c}.action-text.delete[data-v-268b3eac]{color:#f56c6c}.action-text.disabled[data-v-268b3eac]{color:#c0c4cc;cursor:not-allowed}.action-text.disabled[data-v-268b3eac]:hover{text-decoration:none}.filter-form[data-v-75c444e4] .el-row{width:100%}.filter-form[data-v-75c444e4] .el-form-item{margin-bottom:12px}.filter-form[data-v-75c444e4] .el-date-editor,.filter-form[data-v-75c444e4] .el-input,.filter-form[data-v-75c444e4] .el-select{width:100%}.filter-form[data-v-75c444e4] .filter-actions .el-form-item__content{display:flex;gap:8px}.table-toolbar[data-v-75c444e4]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.table-total[data-v-75c444e4]{font-size:13px;color:#606266}.user-cell[data-v-75c444e4]{display:flex;align-items:center;gap:10px}.user-info[data-v-75c444e4]{line-height:1.5}.user-nickname[data-v-75c444e4]{font-size:13px;color:#303133;font-weight:500}.user-realname[data-v-75c444e4]{font-size:12px;color:#909399}.action-bar[data-v-75c444e4]{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px}.action-text[data-v-75c444e4]{cursor:pointer;font-size:13px}.action-text[data-v-75c444e4]:hover{text-decoration:underline}.action-text.view[data-v-75c444e4]{color:#606266}.action-text.audit[data-v-75c444e4]{color:#2f8f5b}.action-text.reject[data-v-75c444e4]{color:#e6a23c}.action-text.delete[data-v-75c444e4]{color:#f56c6c}.action-text.disabled[data-v-75c444e4]{color:#c0c4cc;cursor:not-allowed}.action-text.disabled[data-v-75c444e4]:hover{text-decoration:none}.filter-form[data-v-973c5f1c] .el-row{width:100%}.filter-form[data-v-973c5f1c] .el-form-item{margin-bottom:12px}.filter-form[data-v-973c5f1c] .el-date-editor,.filter-form[data-v-973c5f1c] .el-input{width:100%}.filter-form[data-v-973c5f1c] .filter-actions .el-form-item__content{display:flex;gap:8px}.table-toolbar[data-v-973c5f1c]{display:flex;justify-content:flex-end;gap:10px;margin-bottom:12px}.action-bar[data-v-973c5f1c]{display:flex;align-items:center;gap:10px}.action-text[data-v-973c5f1c]{cursor:pointer;font-size:13px}.action-text[data-v-973c5f1c]:hover{text-decoration:underline}.action-text.edit[data-v-973c5f1c]{color:#409eff}.action-text.delete[data-v-973c5f1c]{color:#f56c6c}.empty-tip[data-v-973c5f1c]{color:#999}.img-upload-list[data-v-973c5f1c]{display:flex;flex-wrap:wrap;gap:8px}.img-item[data-v-973c5f1c]{position:relative;width:80px;height:80px}.img-thumb[data-v-973c5f1c]{width:80px;height:80px;border-radius:6px;border:1px solid #e5e7eb}.img-del[data-v-973c5f1c]{position:absolute;top:-8px;right:-8px;width:20px;height:20px;background:#f56c6c;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;cursor:pointer;line-height:1;z-index:2}.img-del[data-v-973c5f1c]:hover{background:#e53e3e}.img-uploader .img-add[data-v-973c5f1c]{width:80px;height:80px;border:1.5px dashed #d0d7de;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:28px;color:#b0b8c4;cursor:pointer;background:#fafafa}.img-uploader .img-add[data-v-973c5f1c]:hover{border-color:#409eff;color:#409eff}.filter-form[data-v-93307010] .el-row{width:100%}.filter-form[data-v-93307010] .el-form-item{margin-bottom:12px}.filter-form[data-v-93307010] .el-date-editor,.filter-form[data-v-93307010] .el-input{width:100%}.filter-form[data-v-93307010] .filter-actions .el-form-item__content{display:flex;gap:8px}.table-toolbar[data-v-93307010]{display:flex;justify-content:flex-end;gap:10px;margin-bottom:12px}.action-bar[data-v-93307010]{display:flex;align-items:center;gap:10px}.action-text[data-v-93307010]{cursor:pointer;font-size:13px}.action-text[data-v-93307010]:hover{text-decoration:underline}.action-text.edit[data-v-93307010]{color:#409eff}.action-text.delete[data-v-93307010]{color:#f56c6c}.empty-tip[data-v-93307010]{color:#999}.img-upload-list[data-v-93307010]{display:flex;flex-wrap:wrap;gap:8px}.img-item[data-v-93307010]{position:relative;width:80px;height:80px}.img-thumb[data-v-93307010]{width:80px;height:80px;border-radius:6px;border:1px solid #e5e7eb}.img-del[data-v-93307010]{position:absolute;top:-8px;right:-8px;width:20px;height:20px;background:#f56c6c;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;cursor:pointer;line-height:1;z-index:2}.img-del[data-v-93307010]:hover{background:#e53e3e}.img-uploader .img-add[data-v-93307010]{width:80px;height:80px;border:1.5px dashed #d0d7de;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:28px;color:#b0b8c4;cursor:pointer;background:#fafafa}.img-uploader .img-add[data-v-93307010]:hover{border-color:#409eff;color:#409eff}.filter-form[data-v-eadc5f80] .el-row{width:100%}.filter-form[data-v-eadc5f80] .el-form-item{margin-bottom:12px}.filter-form[data-v-eadc5f80] .el-date-editor,.filter-form[data-v-eadc5f80] .el-input{width:100%}.filter-form[data-v-eadc5f80] .filter-actions .el-form-item__content{display:flex;gap:8px}.table-toolbar[data-v-eadc5f80]{display:flex;justify-content:flex-end;gap:10px;margin-bottom:12px}.action-bar[data-v-eadc5f80]{display:flex;align-items:center;gap:10px}.action-text[data-v-eadc5f80]{cursor:pointer;font-size:13px}.action-text[data-v-eadc5f80]:hover{text-decoration:underline}.action-text.edit[data-v-eadc5f80]{color:#409eff}.action-text.delete[data-v-eadc5f80]{color:#f56c6c}.empty-tip[data-v-eadc5f80]{color:#999}.img-upload-list[data-v-eadc5f80]{display:flex;flex-wrap:wrap;gap:8px}.img-item[data-v-eadc5f80]{position:relative;width:80px;height:80px}.img-thumb[data-v-eadc5f80]{width:80px;height:80px;border-radius:6px;border:1px solid #e5e7eb}.img-del[data-v-eadc5f80]{position:absolute;top:-8px;right:-8px;width:20px;height:20px;background:#f56c6c;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;cursor:pointer;line-height:1;z-index:2}.img-del[data-v-eadc5f80]:hover{background:#e53e3e}.img-uploader .img-add[data-v-eadc5f80]{width:80px;height:80px;border:1.5px dashed #d0d7de;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:28px;color:#b0b8c4;cursor:pointer;background:#fafafa}.img-uploader .img-add[data-v-eadc5f80]:hover{border-color:#409eff;color:#409eff}.filter-form[data-v-4333e668] .el-row{width:100%}.filter-form[data-v-4333e668] .el-form-item{margin-bottom:12px}.filter-form[data-v-4333e668] .el-form-item__content{width:calc(100% - 68px)}.filter-form[data-v-4333e668] .el-date-editor,.filter-form[data-v-4333e668] .el-input,.filter-form[data-v-4333e668] .el-select{width:100%}.filter-form[data-v-4333e668] .filter-actions .el-form-item__content{width:100%;display:flex;gap:8px}.table-toolbar[data-v-4333e668]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.table-total[data-v-4333e668]{font-size:13px;color:#606266}.action-bar[data-v-4333e668]{display:flex;align-items:center;gap:10px}.action-text[data-v-4333e668]{cursor:pointer;font-size:13px}.action-text[data-v-4333e668]:hover{text-decoration:underline}.action-text.view[data-v-4333e668]{color:#606266}.action-text.edit[data-v-4333e668]{color:#409eff}.action-text.audit[data-v-4333e668]{color:#2f8f5b}.action-text.delete[data-v-4333e668]{color:#f56c6c}body{margin:0;background:#f4f7fb;color:#1f2d3d;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}.page{padding:20px}.filter-card,.panel-card,.table-card{background:#fff;border-radius:14px;box-shadow:0 8px 24px rgba(31,45,61,.06);padding:18px;margin-bottom:18px}.page-title{font-size:22px;font-weight:700;margin:0 0 16px;color:#123c2f}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.env-tag{margin:2px 4px 2px 0}.rank-top{background:linear-gradient(90deg,#fff7e6,#fff)}