:root {
  --cp-ink: #172231;
  --cp-muted: #6e7a89;
  --cp-line: #e5e9ee;
  --cp-paper: #f6f8fa;
  --cp-white: #ffffff;
  --cp-navy: #17324d;
  --cp-teal: #167c80;
  --cp-amber: #b56b11;
  --cp-red: #b74444;
  --cp-shadow: 0 10px 28px rgba(23, 34, 49, .06);
}

body, input, textarea, select, button { font-family: "Microsoft YaHei", "Noto Sans SC", sans-serif; }
body { background: var(--cp-paper); color: var(--cp-ink); }
#container { min-width: 0; }
#header { min-height: 68px; background: var(--cp-white); border-bottom: 1px solid var(--cp-line); padding: 0 30px; display: flex; align-items: center; }
#branding { flex: 1; }
.cp-branding { display: flex; align-items: baseline; gap: 12px; }
.cp-branding a { color: var(--cp-ink); font-size: 19px; font-weight: 700; letter-spacing: .2px; }
.cp-branding span { color: var(--cp-muted); font-size: 12px; }
.cp-user-tools { align-items: center; display: flex; gap: 18px; font-size: 12px; }
.cp-user-tools a { color: var(--cp-muted); }
.cp-user-name { color: var(--cp-ink); font-weight: 600; }
.cp-user-tools button { background: transparent; border: 0; color: var(--cp-muted); cursor: pointer; padding: 0; }
.main { display: flex; min-height: calc(100vh - 69px); }
#nav-sidebar.cp-sidebar { background: #10283e; border: 0; flex: 0 0 236px; left: auto; margin-left: 0; max-height: none; overflow: visible; visibility: visible; }
.cp-sidebar { background: #10283e; color: #dce7ee; flex: 0 0 236px; min-height: calc(100vh - 69px); padding: 28px 14px 18px; box-sizing: border-box; display: flex; flex-direction: column; }
.cp-sidebar-heading { color: #89a8bb; font-size: 11px; font-weight: 700; letter-spacing: .12em; margin: 0 12px 14px; text-transform: uppercase; }
.cp-sidebar-nav { display: flex; flex-direction: column; gap: 4px; }
.cp-nav-link { align-items: center; border-radius: 5px; color: #dce7ee; display: flex; font-size: 13px; gap: 11px; padding: 11px 12px; }
.cp-nav-link:hover, .cp-nav-link.is-active { background: #1d4760; color: #fff; text-decoration: none; }
.cp-nav-link.is-active { box-shadow: inset 3px 0 0 #4cc1b3; }
.cp-nav-icon { color: #8bc2bf; font-size: 16px; line-height: 1; text-align: center; width: 18px; }
.cp-nav-section { color: #7694a7; font-size: 11px; margin: 26px 12px 7px; }
.cp-sidebar-footer { align-items: center; border-top: 1px solid rgba(220, 231, 238, .15); color: #89a8bb; display: flex; font-size: 11px; gap: 8px; margin-top: auto; padding: 18px 12px 0; }
.cp-status-dot { background: #4cc1b3; border-radius: 50%; height: 7px; width: 7px; }
#content-start { background: var(--cp-paper); flex: 1; min-width: 0; padding: 0; }
#content { margin: 0 auto; max-width: 1440px; padding: 36px 42px 56px; }
.cp-dashboard { max-width: 1260px; margin: 0 auto; }
.cp-page-heading { align-items: flex-end; display: flex; justify-content: space-between; margin-bottom: 28px; }
.cp-eyebrow { color: var(--cp-teal); font-size: 10px; font-weight: 800; letter-spacing: .16em; margin: 0 0 8px; }
.cp-page-heading h1, .cp-login-card h1 { color: var(--cp-ink); font-size: 28px; letter-spacing: -.02em; margin: 0; }
.cp-subtitle, .cp-panel-heading p, .cp-login-intro { color: var(--cp-muted); font-size: 13px; margin: 8px 0 0; }
.cp-primary-button, .cp-login-button { background: var(--cp-navy); border: 0; border-radius: 4px; color: #fff; cursor: pointer; font-size: 13px; font-weight: 700; padding: 11px 16px; }
.cp-primary-button:hover, .cp-login-button:hover { background: #20496a; color: #fff; text-decoration: none; }
.cp-stat-grid { display: grid; gap: 14px; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 20px; }
.cp-stat-card { background: var(--cp-white); border: 1px solid var(--cp-line); border-radius: 6px; box-shadow: var(--cp-shadow); min-height: 128px; padding: 19px 20px; }
.cp-stat-card strong { color: var(--cp-ink); display: block; font-size: 30px; line-height: 1.1; margin-top: 15px; }
.cp-stat-label { color: var(--cp-muted); font-size: 12px; font-weight: 700; }
.cp-stat-hint { color: #9aa5b1; display: block; font-size: 11px; margin-top: 7px; }
.cp-stat-primary { border-top: 3px solid var(--cp-teal); }
.cp-stat-warning { border-top: 3px solid var(--cp-amber); }
.cp-content-grid { display: grid; gap: 20px; grid-template-columns: minmax(0, 1.55fr) minmax(300px, .85fr); margin-bottom: 20px; min-width: 0; }
.cp-panel { background: var(--cp-white); border: 1px solid var(--cp-line); border-radius: 6px; box-shadow: var(--cp-shadow); min-width: 0; padding: 22px; }
.cp-panel-heading { align-items: flex-start; display: flex; justify-content: space-between; margin-bottom: 17px; }
.cp-panel-heading h2 { color: var(--cp-ink); font-size: 15px; margin: 0; }
.cp-panel-heading a { color: var(--cp-teal); font-size: 12px; }
.cp-table-wrap { overflow-x: auto; }
.cp-table { border-collapse: collapse; font-size: 12px; width: 100%; }
.cp-table th { color: var(--cp-muted); font-size: 11px; font-weight: 700; padding: 0 10px 10px; text-align: left; white-space: nowrap; }
.cp-table td { border-top: 1px solid var(--cp-line); color: var(--cp-ink); padding: 13px 10px; white-space: nowrap; }
.cp-table td:first-child { font-weight: 700; }
.cp-table a { color: var(--cp-navy); }
.cp-avatar { border-radius: 50%; display: inline-flex; height: 34px; object-fit: cover; vertical-align: middle; width: 34px; }
.cp-avatar-empty { align-items: center; background: #e8f3f2; color: var(--cp-teal); font-size: 10px; font-weight: 800; justify-content: center; }
.cp-badge { border-radius: 12px; display: inline-block; font-size: 11px; padding: 4px 8px; }
.cp-badge-completed { background: #e3f4ef; color: #16715f; }
.cp-badge-partial, .cp-badge-processing { background: #fff2dc; color: #99600e; }
.cp-badge-failed { background: #fbe9e9; color: var(--cp-red); }
.cp-badge-connection_error { background: #fff2dc; color: #99600e; }
.cp-badge-queued { background: #edf1f5; color: #667586; }
.cp-empty-state { border: 1px dashed var(--cp-line); color: var(--cp-muted); padding: 35px; text-align: center; }
.cp-quick-panel { padding-bottom: 8px; }
.cp-action-row { align-items: center; border-top: 1px solid var(--cp-line); display: flex; gap: 12px; padding: 15px 0; }
.cp-action-row:hover { text-decoration: none; }
.cp-action-icon { align-items: center; background: #e8f3f2; border-radius: 5px; color: var(--cp-teal); display: flex; font-size: 17px; height: 32px; justify-content: center; width: 32px; }
.cp-action-row span:nth-child(2) { flex: 1; }
.cp-action-row strong, .cp-action-row small { display: block; }
.cp-action-row strong { color: var(--cp-ink); font-size: 13px; }
.cp-action-row small { color: var(--cp-muted); font-size: 11px; margin-top: 3px; }
.cp-arrow { color: #9ba7b3; font-size: 20px; }
.cp-data-panel .module { border: 0; margin: 0; }
.cp-data-panel .module caption { background: transparent; color: var(--cp-ink); font-size: 13px; padding: 12px 0; }
.cp-login-page #header { border-bottom: 0; }
.cp-login-page .main { min-height: calc(100vh - 69px); }
.cp-login-page #content { max-width: none; padding: 0; }
.cp-login-shell { align-items: center; display: flex; justify-content: center; min-height: calc(100vh - 69px); padding: 40px 20px; }
.cp-login-card { background: var(--cp-white); border: 1px solid var(--cp-line); border-radius: 7px; box-shadow: 0 16px 40px rgba(23, 34, 49, .08); max-width: 400px; padding: 38px; width: 100%; }
.cp-login-mark { align-items: center; background: var(--cp-navy); border-radius: 6px; color: #fff; display: flex; font-size: 13px; font-weight: 800; height: 42px; justify-content: center; letter-spacing: .08em; margin-bottom: 24px; width: 42px; }
.cp-field { margin: 20px 0; }
.cp-field label { color: var(--cp-ink); display: block; font-size: 12px; font-weight: 700; margin-bottom: 8px; }
.cp-field input { box-sizing: border-box; width: 100%; }
.cp-login-button { margin-top: 8px; width: 100%; }
.cp-login-card .errornote { background: #fbe9e9; border-radius: 4px; color: var(--cp-red); font-size: 12px; padding: 10px 12px; }
.cp-workspace-grid { display: grid; gap: 20px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 20px; }
.cp-inline-form { display: flex; gap: 8px; margin-bottom: 14px; }
.cp-inline-form input { box-sizing: border-box; min-width: 0; width: 100%; }
.cp-secondary-button { background: #e8f3f2; border: 1px solid #cbe4e1; border-radius: 4px; color: var(--cp-teal); cursor: pointer; font-size: 12px; font-weight: 700; padding: 9px 13px; white-space: nowrap; }
.cp-contact-list { border-top: 1px solid var(--cp-line); }
.cp-contact-row { align-items: center; border-bottom: 1px solid var(--cp-line); display: flex; gap: 10px; padding: 11px 0; }
.cp-contact-row > span:nth-child(2) { flex: 1; }
.cp-contact-row strong, .cp-contact-row small { display: block; }
.cp-contact-row strong { color: var(--cp-ink); font-size: 13px; }
.cp-contact-row small { color: var(--cp-muted); font-size: 11px; margin-top: 3px; }
.cp-contact-row a { color: var(--cp-teal); font-size: 12px; }
.cp-message-list { display: flex; flex-direction: column; gap: 8px; max-height: 310px; overflow-y: auto; }
.cp-message { align-self: flex-start; background: #eef2f5; border-radius: 5px; color: var(--cp-ink); max-width: 78%; padding: 9px 11px; }
.cp-message.is-out { align-self: flex-end; background: #e2f2ef; }
.cp-message small { color: var(--cp-muted); display: block; font-size: 10px; margin-top: 5px; }
.cp-send-panel { margin-bottom: 25px; }
.cp-send-form { display: grid; gap: 12px; }
.cp-send-form input, .cp-send-form textarea { box-sizing: border-box; width: 100%; }
.cp-workspace-error { background: #fbe9e9; border: 1px solid #f1cccc; border-radius: 4px; color: var(--cp-red); font-size: 12px; margin-bottom: 18px; padding: 11px 13px; }
.cp-import-page { max-width: 1120px; margin: 0 auto; }
.cp-import-layout { display: grid; gap: 20px; grid-template-columns: minmax(0, 1.45fr) minmax(280px, .75fr); }
.cp-import-form { padding: 26px; }
.cp-import-label { color: var(--cp-ink); display: block; font-size: 12px; font-weight: 700; margin: 3px 0 8px; }
.cp-import-select { background: var(--cp-white); border: 1px solid #cfd7df; border-radius: 4px; box-sizing: border-box; color: var(--cp-ink); font-size: 13px; min-height: 40px; padding: 8px 10px; width: 100%; }
.cp-import-file-heading { margin-top: 28px; }
.cp-upload-dropzone { align-items: center; background: #f8fbfb; border: 1px dashed #9cc7c3; border-radius: 6px; display: flex; flex-direction: column; justify-content: center; min-height: 206px; padding: 24px; position: relative; text-align: center; transition: background .15s, border-color .15s, box-shadow .15s; }
.cp-upload-dropzone:hover, .cp-upload-dropzone:focus, .cp-upload-dropzone.is-dragging { background: #eef8f6; border-color: var(--cp-teal); box-shadow: 0 0 0 3px rgba(22, 124, 128, .1); outline: 0; }
.cp-upload-dropzone.has-file { background: #f1faf7; border-style: solid; }
.cp-file-input { height: 1px; opacity: 0; overflow: hidden; position: absolute; width: 1px; }
.cp-upload-label { align-items: center; cursor: pointer; display: flex; flex-direction: column; gap: 8px; }
.cp-upload-label strong { color: var(--cp-navy); font-size: 15px; }
.cp-upload-label > span:last-child { color: var(--cp-muted); font-size: 12px; }
.cp-upload-icon { align-items: center; background: #dff1ef; border-radius: 50%; color: var(--cp-teal); display: flex; font-size: 21px; height: 46px; justify-content: center; width: 46px; }
.cp-file-name { color: var(--cp-teal); font-size: 12px; font-weight: 700; margin: 18px 0 0; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cp-file-summary { color: var(--cp-muted); font-size: 11px; margin-top: 6px; min-height: 16px; }
.cp-import-notes { background: #f6f8fa; border-left: 3px solid #b7c8d4; color: var(--cp-muted); font-size: 12px; line-height: 1.7; margin: 22px 0; padding: 13px 15px; }
.cp-import-notes strong { color: var(--cp-ink); display: block; margin-bottom: 5px; }
.cp-import-notes ul { margin: 0; padding-left: 18px; }
.cp-import-notes code { background: #e9eef2; border-radius: 3px; color: var(--cp-navy); font-family: Consolas, monospace; padding: 1px 4px; }
.cp-import-submit { min-width: 132px; }
.cp-import-submit:disabled { background: #8d9aa6; cursor: wait; }
.cp-import-guide { align-self: start; }
.cp-import-steps { list-style: none; margin: 0; padding: 0; }
.cp-import-steps li { align-items: flex-start; border-top: 1px solid var(--cp-line); display: flex; gap: 11px; padding: 16px 0; }
.cp-import-steps li:first-child { border-top: 0; padding-top: 2px; }
.cp-import-steps li > span { align-items: center; background: #e8f3f2; border-radius: 50%; color: var(--cp-teal); display: flex; flex: 0 0 26px; font-size: 12px; font-weight: 800; height: 26px; justify-content: center; width: 26px; }
.cp-import-steps strong, .cp-import-steps small { display: block; }
.cp-import-steps strong { color: var(--cp-ink); font-size: 13px; }
.cp-import-steps small { color: var(--cp-muted); font-size: 11px; line-height: 1.5; margin-top: 3px; }
.cp-import-result { align-items: center; background: #f1faf7; border: 1px solid #cbe4dc; border-radius: 6px; display: grid; gap: 20px; grid-template-columns: minmax(0, 1fr) auto auto; margin-bottom: 20px; padding: 20px 22px; }
.cp-result-kicker { color: #16715f; font-size: 11px; font-weight: 800; letter-spacing: .08em; }
.cp-import-result h2 { color: var(--cp-ink); font-size: 16px; margin: 5px 0 0; }
.cp-import-result p { color: var(--cp-muted); font-size: 12px; margin: 6px 0 0; }
.cp-import-result-grid { display: flex; gap: 18px; }
.cp-import-result-grid > div { border-left: 1px solid #cbe4dc; min-width: 62px; padding-left: 14px; }
.cp-import-result-grid strong, .cp-import-result-grid span { display: block; }
.cp-import-result-grid strong { color: var(--cp-ink); font-size: 22px; line-height: 1.1; }
.cp-import-result-grid span { color: var(--cp-muted); font-size: 11px; margin-top: 4px; white-space: nowrap; }
.cp-import-result-grid .is-success strong { color: #16715f; }
.cp-import-result-grid .is-warning strong { color: var(--cp-amber); }
@media (max-width: 900px) { .cp-import-layout { grid-template-columns: 1fr; } .cp-import-result { align-items: flex-start; grid-template-columns: 1fr; } .cp-import-result-grid { flex-wrap: wrap; } }
@media (max-width: 900px) { .cp-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .cp-content-grid, .cp-workspace-grid { grid-template-columns: 1fr; } #content { padding: 28px 24px 44px; } }
@media (max-width: 640px) { #header { padding: 0 16px; } .cp-branding span, .cp-user-name { display: none; } .cp-sidebar { flex-basis: 62px; padding: 20px 8px; } .cp-sidebar-heading, .cp-nav-link span:last-child, .cp-nav-section, .cp-sidebar-footer span:last-child { display: none; } .cp-nav-link { justify-content: center; padding: 12px 5px; } .cp-nav-icon { width: auto; } .cp-page-heading { align-items: flex-start; flex-direction: column; gap: 16px; } .cp-stat-grid { grid-template-columns: 1fr; } }
