*{margin:0;padding:0;box-sizing:border-box}
body{font-family:-apple-system,"PingFang SC","Microsoft YaHei","Segoe UI",sans-serif;background:#eef1f8;color:#1a1a2e;height:100vh;overflow:hidden;padding:20px}

/* Page Container */
.page{height:100%;display:flex;flex-direction:column;max-width:1360px;margin:0 auto;background:#fff;border-radius:16px;box-shadow:0 4px 24px rgba(0,0,0,.08);overflow:hidden}

/* Header */
.header{background:linear-gradient(135deg,#5b6abf 0%,#8b5cf6 100%);color:#fff;padding:18px 32px;display:flex;justify-content:space-between;align-items:center;flex-shrink:0}
.header h1{font-size:20px;font-weight:700;letter-spacing:.5px}
.header p{opacity:.8;font-size:13px;margin-top:3px;font-weight:400}
.header-right{display:flex;align-items:center;gap:12px}
.header-right a{color:rgba(255,255,255,.8);text-decoration:none;font-size:13px;padding:6px 14px;border-radius:8px;transition:.2s;font-weight:500}
.header-right a:hover{background:rgba(255,255,255,.18);color:#fff}

/* Body */
.body{display:flex;flex:1;overflow:hidden}

/* Sidebar */
.sidebar{width:260px;flex-shrink:0;background:#f8f9fd;border-right:1px solid #e8eaf0;display:flex;flex-direction:column;transition:width .3s ease;overflow:hidden}
.sidebar.collapsed{width:0;border-right:none}
.sidebar-toggle{width:28px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:#f8f9fd;border-right:1px solid #e8eaf0;cursor:pointer;color:#8b8fa8;font-size:16px;transition:.2s}
.sidebar-toggle:hover{background:#eef0f8;color:#5b6abf}

.sidebar-search{width:100%;padding:14px 18px;border:none;border-bottom:1px solid #e8eaf0;font-size:14px;outline:none;background:#fff;font-weight:400}
.sidebar-search:focus{background:#f0f2ff}
.sidebar-search::placeholder{color:#b0b4c8}
.sidebar-nav{flex:1;overflow-y:auto;padding:8px 0}
.group-title{font-size:11px;color:#9ca0b8;font-weight:700;padding:14px 18px 5px;text-transform:uppercase;letter-spacing:1.5px}
.nav-item{padding:9px 18px;cursor:pointer;font-size:14px;color:#3a3f5c;transition:.15s;display:flex;align-items:center;gap:10px;border-left:3px solid transparent;margin:1px 0;font-weight:400}
.nav-item:hover{background:#eef0ff;color:#5b6abf}
.nav-item.active{background:#e8ebff;color:#5b6abf;border-left-color:#5b6abf;font-weight:600}
.nav-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.nav-meta{margin-left:auto;display:flex;gap:6px;font-size:11px}
.nav-meta .cols{color:#b0b4c8}
.nav-meta .rows{color:#c8ccd8}

/* Main */
.main{flex:1;overflow-y:auto;padding:24px 28px;background:#fff}

/* Overview Cards */
.overview-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin-bottom:22px}
.stat-card{background:#f8f9fd;border-radius:10px;padding:14px 16px;border:1px solid #ecedf5}
.stat-card .stat-num{font-size:20px;font-weight:700;color:#5b6abf;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stat-card .stat-label{font-size:12px;color:#8b8fa8;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}
.stat-card-date .stat-num{font-size:16px;font-weight:600;color:#22c55e}

/* Detail Card */
.detail-card{background:#fff;border-radius:12px;padding:22px 24px;border:1px solid #ecedf5;margin-bottom:16px;box-shadow:0 1px 4px rgba(0,0,0,.03)}
.detail-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid #f0f1f8}
.detail-title{font-size:17px;font-weight:700;color:#1a1a2e}
.detail-title .cn{font-weight:500;color:#6b70a0;font-size:14px;margin-left:8px}
.detail-desc{font-size:13px;color:#8b8fa8;margin-top:4px;line-height:1.6}
.detail-group{font-size:11px;padding:3px 10px;border-radius:8px;font-weight:600;flex-shrink:0}

/* Import Rules */
.import-rules{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.rule-tag{font-size:12px;padding:4px 10px;border-radius:6px;display:inline-flex;align-items:center;gap:4px;font-weight:500}
.rule-tag.source{background:#eef0ff;color:#4f5bd5;border:1px solid #d0d5ff}
.rule-tag.freq{background:#ecfdf5;color:#059669;border:1px solid #a7f3d0}
.rule-tag.append{background:#e0f2fe;color:#0284c7;border:1px solid #7dd3fc}
.rule-tag.overwrite{background:#fef3c7;color:#d97706;border:1px solid #fcd34d}
.rule-tag.date-extract{background:#f3e8ff;color:#7c3aed;border:1px solid #c4b5fd}
.rule-tag.keyword{background:#f1f5f9;color:#475569;border:1px solid #cbd5e1}
.rule-tag.note{background:#fefce8;color:#a16207;border:1px solid #fde68a;font-size:11px}

/* Stats bar */
.stats-bar{display:flex;gap:20px;margin-bottom:16px;font-size:13px;color:#6b70a0}
.stats-bar strong{color:#1a1a2e}

/* Fields Table */
.fields-table{width:100%;border-collapse:collapse;font-size:13px}
.fields-table th{background:#f8f9fd;padding:10px 14px;text-align:left;font-weight:600;border-bottom:2px solid #e8eaf0;color:#6b70a0;font-size:12px;position:sticky;top:0;z-index:1}
.fields-table td{padding:8px 14px;border-bottom:1px solid #f4f5fa}
.fields-table tr:hover{background:#f8f9ff}
.fields-table .col-name{font-family:'SF Mono','Fira Code',Consolas,monospace;font-size:12px;color:#5b6abf;font-weight:600}
.fields-table .col-type{font-size:12px;color:#8b8fa8}
.fields-table .col-desc{color:#3a3f5c;font-size:13px;line-height:1.5}
.fields-table .col-required{font-size:11px;color:#ef4444;font-weight:600}
.fields-table .col-optional{font-size:11px;color:#d1d5e0}
.fields-table .col-default{font-size:12px;color:#9ca0b8;font-family:monospace}

/* Data Preview */
.preview-section{margin-top:22px}
.preview-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.preview-title{font-size:15px;font-weight:600;color:#1a1a2e}
.preview-hint{font-size:12px;color:#9ca0b8}
.preview-table-wrap{overflow-x:auto;border:1px solid #ecedf5;border-radius:8px;max-height:280px;overflow-y:auto}
.preview-table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}
.preview-table th{background:#f8f9fd;padding:8px 12px;text-align:left;font-weight:600;border-bottom:1px solid #e8eaf0;color:#6b70a0;position:sticky;top:0;z-index:1}
.preview-table td{padding:6px 12px;border-bottom:1px solid #f4f5fa;color:#3a3f5c}
.preview-table tr:hover{background:#f8f9ff}
.preview-loading{text-align:center;padding:32px;color:#9ca0b8;font-size:13px}
.preview-empty{text-align:center;padding:32px;color:#d1d5e0;font-size:13px}

/* Group Colors */
.group-ops{background:#ecfdf5;color:#059669}
.group-hr{background:#fef3c7;color:#d97706}
.group-replenish{background:#e0f2fe;color:#0284c7}
.group-store{background:#eef0ff;color:#4f5bd5}
.group-satisfaction{background:#fef2f2;color:#ef4444}
.group-dict{background:#f3e8ff;color:#7c3aed}
.group-sys{background:#f1f5f9;color:#64748b}
.group-youzan{background:#fef2f2;color:#dc2626}
.group-talent{background:#ecfeff;color:#0891b2}
.group-salary{background:#fefce8;color:#ca8a04}
.group-ai{background:#eef0ff;color:#4f5bd5}

/* Welcome */
.welcome{text-align:center;padding:80px 32px;color:#9ca0b8}
.welcome-icon{font-size:48px;margin-bottom:16px}
.welcome-title{font-size:18px;font-weight:600;color:#6b70a0;margin-bottom:6px}
.welcome-desc{font-size:14px;color:#b0b4c8}

/* Scrollbar */
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-thumb{background:#d1d5e0;border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:#b0b4c8}

/* Responsive */
@media(max-width:900px){
  body{padding:0}
  .page{border-radius:0}
  .body{flex-direction:column}
  .sidebar{width:100%!important;max-height:200px;border-right:none;border-bottom:1px solid #e8eaf0}
  .sidebar.collapsed{max-height:0}
  .sidebar-toggle{display:none}
}

/* Embedded mode */
body.embedded{padding:0}
body.embedded .header{display:none}
body.embedded .page{border-radius:0}
