:root{--bg: #fafafa;--surface: #ffffff;--surface-alt: #f6f7f9;--blue: #2b5ea7;--blue-mid: #3a72c4;--blue-soft: #e9f0fa;--blue-border: #c8d8ee;--blue-muted: #8aacce;--text-primary: #1a1a18;--text-secondary: #5c5b56;--text-muted: #a8a6a0;--border: #eae9e5;--border-light: #f0efec;--success: #3e8a56;--danger: #c4534a;--radius: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .03);--jm-bg: #fafafa;--jm-panel: #ffffff;--jm-panel-soft: #f6f7f9;--jm-border: #eae9e5;--jm-border-light: #f0efec;--jm-text: #1a1a18;--jm-text-secondary: #5c5b56;--jm-muted: #a8a6a0;--jm-primary: #2b5ea7;--jm-primary-mid: #3a72c4;--jm-primary-soft: #e9f0fa;--jm-primary-border: #c8d8ee;--jm-primary-muted: #8aacce;--jm-success: #3e8a56;--jm-warning: #b87514;--jm-danger: #c4534a;--jm-radius: 8px;--jm-radius-lg: 12px;--jm-shadow-sm: 0 1px 2px rgba(0, 0, 0, .03);--jm-font-body: "Noto Sans SC", "Microsoft YaHei", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--jm-font-display: "Playfair Display", "Noto Sans SC", "Microsoft YaHei", serif;--jm-font-mono: "DM Mono", "Consolas", "SFMono-Regular", monospace}*{box-sizing:border-box}html,body,#app{width:100%;min-width:1180px;height:100%;margin:0}body{font-family:var(--jm-font-body);color:var(--jm-text);background:var(--jm-bg);-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}.admin-page{display:flex;flex-direction:column;gap:18px;padding-bottom:24px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.page-hero{display:flex;align-items:stretch;justify-content:space-between;gap:22px;padding:22px 24px;background:linear-gradient(180deg,#2b5ea70b,#2b5ea700),var(--jm-panel);border:1px solid var(--jm-border);border-radius:var(--jm-radius-lg);box-shadow:var(--jm-shadow-sm)}.hero-content{min-width:0;display:flex;flex-direction:column;justify-content:center}.hero-eyebrow{margin-bottom:7px;color:var(--jm-primary);font-family:var(--jm-font-mono);font-size:10px;font-weight:500;letter-spacing:.12em;text-transform:uppercase}.hero-title{margin:0;color:var(--jm-text);font-size:24px;line-height:1.25;font-weight:800;letter-spacing:0}.hero-subtitle{margin-top:8px;max-width:720px;color:var(--jm-text-secondary);font-size:13px;line-height:1.7}.hero-actions{display:flex;align-items:flex-start;justify-content:flex-end;gap:10px;flex-wrap:wrap}.hero-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:16px}.hero-pill{display:inline-flex;align-items:center;gap:7px;min-height:28px;padding:5px 10px;border:1px solid var(--jm-border);border-radius:999px;background:#fff;color:var(--jm-text-secondary);font-family:var(--jm-font-mono);font-size:11px}.page-title{margin:0;color:var(--jm-text);font-size:24px;font-weight:800;letter-spacing:0}.page-subtitle{margin-top:6px;color:var(--jm-muted);font-size:13px}.panel{background:var(--jm-panel);border:1px solid var(--jm-border);border-radius:var(--jm-radius-lg);box-shadow:var(--jm-shadow-sm);overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid var(--jm-border-light);background:var(--jm-panel)}.panel-title{margin:0;color:var(--jm-text);font-size:16px;font-weight:800}.panel-body{padding:18px}.section-title{margin:0;color:var(--jm-text);font-size:16px;font-weight:800}.section-subtitle{margin-top:4px;color:var(--jm-muted);font-size:12px}.muted{color:var(--jm-muted);font-size:12px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.toolbar-left,.toolbar-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.metric-card{position:relative;padding:18px;min-height:124px;background:var(--jm-panel);border:1px solid var(--jm-border);border-radius:var(--jm-radius-lg);box-shadow:var(--jm-shadow-sm)}.metric-card:after{content:"";position:absolute;left:18px;right:18px;bottom:13px;height:1px;background:var(--jm-border-light)}.metric-label{color:var(--jm-muted);font-family:var(--jm-font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.metric-value{margin-top:18px;font-size:32px;line-height:1;font-weight:800;color:var(--jm-primary);font-variant-numeric:tabular-nums}.metric-note{margin-top:14px;color:var(--jm-muted);font-size:12px}.metric-value small{margin-left:4px;color:var(--jm-muted);font-size:13px;font-weight:500}.login-shell{min-width:0;width:100%;height:100%;display:grid;place-items:center;background:linear-gradient(180deg,#2b5ea70f,#2b5ea700),var(--jm-bg)}.login-card{width:420px;padding:34px;background:#fff;border:1px solid var(--jm-border);border-radius:var(--jm-radius-lg);box-shadow:0 16px 42px #20242a14}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin-bottom:18px;border-radius:10px;background:var(--jm-primary);color:#fff;font-weight:800}.login-title{margin:0;color:var(--jm-text);font-size:26px;font-weight:800}.login-subtitle{margin:8px 0 24px;color:var(--jm-muted);font-size:14px}.table-id{font-family:var(--jm-font-mono);font-size:12px;color:var(--jm-muted)}.empty-tip{padding:40px 16px;text-align:center;color:var(--jm-muted);border:1px dashed var(--jm-border);border-radius:var(--jm-radius-lg);background:var(--jm-panel-soft)}.table-link{color:var(--jm-primary);text-decoration:none}.detail-stack{display:flex;flex-direction:column;gap:18px}.detail-section h3{margin:0 0 12px;color:var(--jm-text);font-size:15px}.json-box{max-height:420px;overflow:auto;padding:12px;border-radius:var(--jm-radius);background:#111827;color:#e5e7eb;font-size:12px;white-space:pre-wrap}.el-button--primary{--el-button-bg-color: var(--jm-primary);--el-button-border-color: var(--jm-primary);--el-button-hover-bg-color: var(--jm-primary-mid);--el-button-hover-border-color: var(--jm-primary-mid);--el-button-active-bg-color: var(--jm-primary-mid);--el-button-active-border-color: var(--jm-primary-mid)}.el-input__wrapper,.el-select__wrapper,.el-date-editor.el-input__wrapper,.el-date-editor.el-input,.el-textarea__inner{border-radius:var(--jm-radius);box-shadow:0 0 0 1px var(--jm-border) inset}.el-input__wrapper.is-focus,.el-select__wrapper.is-focused,.el-date-editor.el-input__wrapper.is-focus,.el-textarea__inner:focus{box-shadow:0 0 0 1px var(--jm-primary-muted) inset}.el-table{--el-table-header-bg-color: var(--jm-panel-soft);--el-table-header-text-color: var(--jm-text-secondary);--el-table-text-color: var(--jm-text-secondary);--el-table-border-color: var(--jm-border-light)}.el-tag{border-radius:4px;font-family:var(--jm-font-mono);font-size:11px;letter-spacing:.02em}.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.summary-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.summary-card{min-height:104px;padding:16px;background:var(--jm-panel);border:1px solid var(--jm-border);border-radius:var(--jm-radius-lg);box-shadow:var(--jm-shadow-sm)}.summary-label{color:var(--jm-muted);font-family:var(--jm-font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase}.summary-value{margin-top:14px;color:var(--jm-primary);font-family:var(--jm-font-display);font-size:28px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}.summary-value small{margin-left:4px;color:var(--jm-muted);font-family:var(--jm-font-body);font-size:12px;font-weight:500}.summary-note{margin-top:10px;color:var(--jm-text-secondary);font-size:12px;line-height:1.5}.filter-card{padding:16px 18px;background:var(--jm-panel);border:1px solid var(--jm-border);border-radius:var(--jm-radius-lg);box-shadow:var(--jm-shadow-sm)}.filter-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.filter-title{margin:0;color:var(--jm-text);font-size:15px;font-weight:800}.filter-desc{margin-top:4px;color:var(--jm-muted);font-size:12px}.filter-fields{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.filter-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.filter-chips{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px}.jm-chip{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:5px 14px;border:1px solid var(--jm-border);border-radius:999px;background:var(--jm-panel);color:var(--jm-text-secondary);font-family:var(--jm-font-mono);font-size:12px;cursor:pointer;transition:background .15s,border-color .15s,color .15s,transform .15s}.jm-chip:hover{border-color:var(--jm-primary-border);color:var(--jm-primary)}.jm-chip.active{border-color:var(--jm-primary);background:var(--jm-primary);color:#fff}.jm-chip:active{transform:scale(.96)}.data-card{background:var(--jm-panel);border:1px solid var(--jm-border);border-radius:var(--jm-radius-lg);box-shadow:var(--jm-shadow-sm);overflow:hidden}.data-card-header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px;border-bottom:1px solid var(--jm-border-light)}.data-card-body{padding:18px}.data-card-title{margin:0;color:var(--jm-text);font-size:16px;font-weight:800}.data-card-subtitle{margin-top:4px;color:var(--jm-muted);font-size:12px}.pagination-row{display:flex;justify-content:flex-end;margin-top:18px}.entity-main{display:flex;flex-direction:column;gap:5px;min-width:0}.entity-title{color:var(--jm-text);font-weight:700;line-height:1.4}.entity-sub{color:var(--jm-muted);font-size:12px;line-height:1.4}.field-pair{display:grid;gap:3px}.field-label{color:var(--jm-muted);font-family:var(--jm-font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase}.field-value{color:var(--jm-text-secondary);font-size:13px}.money-text{color:var(--jm-primary);font-family:var(--jm-font-mono);font-weight:700;font-variant-numeric:tabular-nums}.mono-text{font-family:var(--jm-font-mono);font-size:12px;color:var(--jm-text-secondary);font-variant-numeric:tabular-nums}.status-dot{display:inline-flex;align-items:center;gap:7px}.status-dot:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--jm-muted)}.status-dot.ok:before,.status-dot.success:before{background:var(--jm-success)}.status-dot.warn:before,.status-dot.warning:before{background:var(--jm-warning)}.status-dot.error:before,.status-dot.danger:before{background:var(--jm-danger)}.detail-card{padding:16px;background:var(--jm-panel);border:1px solid var(--jm-border);border-radius:var(--jm-radius-lg);box-shadow:var(--jm-shadow-sm)}.detail-card+.detail-card{margin-top:14px}.detail-card-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px;color:var(--jm-text);font-size:15px;font-weight:800}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.detail-grid.one-col{grid-template-columns:1fr}.detail-item{min-width:0;padding:12px;background:var(--jm-panel-soft);border:1px solid var(--jm-border-light);border-radius:var(--jm-radius)}.detail-label{color:var(--jm-muted);font-family:var(--jm-font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase}.detail-value{margin-top:7px;color:var(--jm-text-secondary);font-size:13px;line-height:1.5;word-break:break-all}.detail-value.strong{color:var(--jm-text);font-weight:700}.drawer-hero{margin-bottom:16px;padding:16px;background:var(--jm-panel-soft);border:1px solid var(--jm-border);border-radius:var(--jm-radius-lg)}.drawer-hero-title{margin:0;color:var(--jm-text);font-size:18px;font-weight:800}.drawer-hero-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px}.status-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.status-card{padding:15px;border:1px solid var(--jm-border);border-radius:var(--jm-radius-lg);background:var(--jm-panel);box-shadow:var(--jm-shadow-sm)}.status-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.status-card-title{color:var(--jm-text);font-size:14px;font-weight:700}.status-card-count{color:var(--jm-primary);font-family:var(--jm-font-display);font-size:26px;font-weight:700;line-height:1}.status-card-bar{height:8px;margin-top:14px;overflow:hidden;border-radius:999px;background:var(--jm-panel-soft)}.status-card-fill{height:100%;border-radius:inherit;background:var(--jm-primary)}.timeline-list{display:flex;flex-direction:column;gap:10px}.timeline-card{position:relative;padding:12px 12px 12px 28px;background:var(--jm-panel-soft);border:1px solid var(--jm-border-light);border-radius:var(--jm-radius)}.timeline-card:before{content:"";position:absolute;left:12px;top:17px;width:7px;height:7px;border-radius:50%;background:var(--jm-primary)}.timeline-title{color:var(--jm-text);font-size:13px;font-weight:700}.timeline-meta{margin-top:4px;color:var(--jm-muted);font-family:var(--jm-font-mono);font-size:11px}.timeline-desc{margin-top:7px;color:var(--jm-text-secondary);font-size:12px;line-height:1.6}.el-drawer__header{margin-bottom:0;padding:18px 20px;border-bottom:1px solid var(--jm-border-light);color:var(--jm-text);font-weight:800}.el-drawer__body{background:var(--jm-bg)}.el-dialog{border-radius:var(--jm-radius-lg)}.el-dialog__header{padding-bottom:14px;border-bottom:1px solid var(--jm-border-light)}.el-table .cell{line-height:1.45}.el-button{border-radius:var(--jm-radius);letter-spacing:.04em}.el-button--default{--el-button-border-color: var(--jm-border);--el-button-hover-bg-color: var(--jm-panel-soft);--el-button-hover-border-color: var(--jm-border);--el-button-hover-text-color: var(--jm-text);--el-button-active-bg-color: var(--jm-panel-soft)}
