:root{font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif;color:#303133;background:#f5f7fa;--content-padding: 28px;--rm-primary: #409eff;--rm-primary-light: #ecf5ff;--rm-border: #dcdfe6}*{box-sizing:border-box}body{margin:0;background:#f5f7fa}.app-shell{min-height:100vh;background:#f5f7fa}.sidebar{background:#fff}.brand{height:72px;display:flex;align-items:center;gap:11px;padding:0 20px;border-bottom:1px solid #edf0f5}.brand-mark{width:34px;height:34px;border-radius:8px;background:linear-gradient(135deg,#409eff,#337ecc);color:#fff;display:grid;place-items:center;font-weight:800}.brand strong,.brand small{display:block}.brand small{color:#8a94a5;margin-top:2px}.brand-image{width:34px;height:34px;border-radius:10px;object-fit:cover}.topbar{position:sticky;z-index:30;top:0;height:72px;padding:0 24px 0 28px;display:flex;align-items:center;justify-content:space-between;gap:20px;background:rgba(255,255,255,.96);box-shadow:0 1px 8px #0f172a08;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.topbar-context{display:flex;align-items:center;gap:12px;min-width:0}.topbar-context>div{display:grid;gap:3px;min-width:0}.topbar-context strong{color:#303133;font-size:17px;font-weight:650;line-height:1.25}.topbar-context small{overflow:hidden;color:#909399;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.topbar-actions{display:flex;align-items:center;gap:10px;flex:none}.topbar-status{color:#606266}.topbar-status:hover{color:#409eff;background:#ecf5ff}.account-trigger{display:flex;align-items:center;gap:9px;min-width:168px;padding:5px 9px 5px 6px;border:1px solid #e5eaf1;border-radius:10px;color:#303133;background:#fff;cursor:pointer;transition:border-color .2s,box-shadow .2s,background .2s}.account-trigger:hover,.account-trigger:focus-visible{border-color:#b3d8ff;outline:none;background:#f8fbff;box-shadow:0 3px 12px #409eff1a}.account-avatar{flex:none;font-size:15px;font-weight:700}.account-meta{display:grid;flex:1;min-width:0;text-align:left;line-height:1.3}.account-meta strong{overflow:hidden;font-size:13px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.account-meta small{color:#909399;font-size:11px}.account-chevron{flex:none;color:#909399;font-size:14px}.drawer-account-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;margin:14px 16px;padding:12px;border:1px solid #e5eaf1;border-radius:10px;background:#f8fafc}.drawer-account-card>div{display:grid;gap:3px;min-width:0}.drawer-account-card strong,.drawer-account-card small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawer-account-card strong{font-size:14px}.drawer-account-card small{color:#909399;font-size:11px}.drawer-account-card>.n-icon{color:#a8abb2;font-size:20px}.drawer-account-actions{margin:20px 16px}.status-dot{color:#16866f;font-size:13px}.status-dot:before{content:"";display:inline-block;width:7px;height:7px;background:#22c55e;border-radius:50%;margin-right:7px}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.page-heading h1{margin:0 0 5px;font-size:25px}.page-heading p{margin:0;color:#7b8797}.metric-card strong{display:block;font-size:32px;margin:10px 0 6px}.metric-card small{color:#8a94a5}.welcome-alert{margin-top:22px}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top left,#d9ecff 0,transparent 40%),#f5f7fa}.login-card{width:min(420px,100%);box-shadow:0 24px 70px #1e40af1f}.login-brand{text-align:center;margin-bottom:26px}.login-brand img,.login-brand .brand-mark{width:48px;height:48px;margin:0 auto 12px;border-radius:13px;object-fit:cover;display:grid;place-items:center}.login-brand h1{margin:0;font-size:24px}.login-brand p{color:#7b8797;margin:7px 0 0}.form-card{max-width:620px}.section-alert{margin-bottom:18px}.toolbar{margin-bottom:16px}.settings-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:20px;align-items:start}.settings-nav{position:sticky;top:92px}.settings-nav .n-card__content{padding:6px}.settings-content{min-width:0;max-width:980px}.settings-form{max-width:620px}.schedule-command-panel{display:grid;gap:13px;margin-top:26px;padding:17px;border:1px solid #d8e6fb;border-radius:10px;background:#f7faff}.schedule-command-panel__heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.schedule-command-panel__heading>div{display:grid;gap:4px;min-width:0}.schedule-command-panel__heading strong{font-size:14px}.schedule-command-panel__heading small{color:#7b8797;line-height:1.55}.schedule-command-panel pre{overflow-x:auto;margin:0;padding:13px 14px;border:1px solid #dcdfe6;border-radius:7px;color:#303133;background:#fff;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px;line-height:1.65;white-space:pre-wrap;word-break:break-all}.schedule-command-panel__meta{display:flex;gap:8px 18px;flex-wrap:wrap;color:#7b8797;font-size:12px}.notification-settings-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.85fr);gap:32px;align-items:start}.test-form{padding:20px;border:1px solid #e5eaf1;border-radius:10px;background:#f8fafc}.test-form h3{margin:0 0 18px;font-size:16px}.icon-picker{display:flex;align-items:center;gap:12px}.icon-picker img{width:54px;height:54px;border-radius:12px;object-fit:cover}.product-cell{display:grid;gap:3px;padding:5px 0}.product-cell strong{font-size:14px}.product-cell small{color:#7b8797}.mapping-site{color:#2563eb;font-size:12px;margin-bottom:3px}.dashboard-lists{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}.admin-alert-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:20px}.admin-alert-card{display:flex;flex-direction:column;gap:16px;min-height:205px;padding:18px;border:1px solid #e5eaf1;border-radius:12px;background:#f8fafc}.admin-alert-card>small,.admin-alert-card__header small{display:block;color:#7b8797;line-height:1.6}.admin-alert-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.admin-alert-card__header strong{display:block;margin-bottom:4px}.mapping-mobile{display:none}.mapping-summary-card{margin-bottom:18px}.mapping-summary-card .n-data-table-tr{cursor:pointer}.summary-site-cell{display:grid;gap:3px}.summary-site-cell small,.workbench-title small{color:#7b8797}.is-selected-summary-row td{background:#eff6ff!important}.is-selected-summary-row td:first-child{box-shadow:inset 3px 0 #2563eb}.match-progress{display:flex;align-items:center;gap:10px;min-width:130px}.match-progress__track{flex:1;height:7px;overflow:hidden;border-radius:99px;background:#e4e7ed}.match-progress__track span{display:block;height:100%;border-radius:inherit;background:#409eff}.match-progress small{min-width:35px;color:#606266}.danger-text{color:#dc2626!important}.mapping-workbench{display:grid;grid-template-columns:210px minmax(650px,1.7fr) minmax(280px,.62fr);align-items:stretch;min-height:610px;overflow:hidden;border:1px solid #e2e8f0;border-radius:12px;background:#fff}.mapping-workbench>*{min-width:0;padding:16px}.mapping-workbench>*+*{border-left:1px solid #e5eaf1}.mapping-workbench__nav{display:flex;flex-direction:column;gap:8px;background:#fbfcfe}.workbench-title{display:grid;gap:3px;min-height:44px;margin-bottom:10px}.workbench-title strong{font-size:16px}.mapping-workbench__nav button{display:flex;align-items:center;justify-content:space-between;width:100%;padding:11px 12px;border:0;border-radius:8px;color:#465466;background:transparent;cursor:pointer;text-align:left}.mapping-workbench__nav button:hover,.mapping-workbench__nav button.active{color:#1d4ed8;background:#eaf2ff}.mapping-workbench__nav button:disabled{cursor:default}.mapping-workbench__nav button b{font-size:13px}.mapping-workbench__list{display:flex;flex-direction:column;gap:12px}.mapping-workbench__list .n-pagination{justify-content:flex-end;margin-top:auto}.workbench-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px}.workbench-toolbar strong,.workbench-toolbar small{display:block}.workbench-toolbar small{color:#7b8797;margin-top:3px}.is-selected-product-row td{background:#f3f7ff!important}.mapping-workbench__detail{background:#fbfcfe}.detail-stack{display:grid;gap:12px}.detail-product{display:grid;gap:9px;padding:15px;border:1px solid;border-radius:10px}.detail-product--upstream{border-color:#bfdbfe;background:#f5f9ff}.detail-product--downstream{border-color:#bbebd0;background:#f2fbf6}.detail-product>strong{font-size:15px}.detail-product>small{color:#64748b}.detail-product dl{display:grid;grid-template-columns:88px minmax(0,1fr);gap:7px 10px;margin:2px 0 0;font-size:13px}.detail-product dt{color:#7b8797}.detail-product dd{margin:0;overflow-wrap:anywhere}.mapping-connector{justify-self:center;display:grid;width:30px;height:30px;place-items:center;border:1px solid #bfdbfe;border-radius:50%;color:#2563eb;background:#fff}.candidate-panel{display:grid;gap:10px}.candidate-search{display:grid;grid-template-columns:1fr auto;gap:8px}.candidate-panel__heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.candidate-ip-line,.product-ip-line{display:inline-flex!important;align-items:center;justify-content:center;gap:3px;flex-wrap:wrap}.candidate-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px;border:1px solid #e5eaf1;border-radius:8px;background:#fff}.candidate-item div{display:grid;gap:3px;min-width:0}.candidate-item small{color:#7b8797;overflow-wrap:anywhere}.empty-candidates{padding:28px 12px;color:#8a94a5;text-align:center}.detail-actions{display:flex;gap:8px;flex-wrap:wrap}.mobile-batch-toolbar{display:flex;align-items:center;justify-content:space-between;margin:10px 0;padding:10px 12px;border:1px solid #d8e6fb;border-radius:10px;color:#357;background:#f1f7ff}.mobile-product-card .mobile-card-heading strong{display:flex;align-items:center;gap:7px;min-width:0}.list-pagination{justify-content:flex-end;margin-top:18px}.manual-remote-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);gap:16px;align-items:start}.manual-selected-product{display:grid;gap:6px;margin-bottom:14px;padding:12px;border:1px solid #b3d8ff;border-radius:6px;background:#ecf5ff}.manual-selected-product small{color:#606266}.calibration-task-panel{display:grid;gap:18px}.calibration-task-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.calibration-task-heading>div{display:grid;gap:4px;min-width:0}.calibration-task-heading small,.calibration-task-log>div small{color:#909399}.calibration-task-heading strong{overflow-wrap:anywhere;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:13px}.calibration-task-meta{display:flex;gap:8px 22px;flex-wrap:wrap;color:#7b8797;font-size:12px}.calibration-task-statistics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.calibration-task-statistics span{display:grid;gap:5px;padding:12px;border:1px solid #d8e6fb;border-radius:8px;color:#7b8797;background:#f7faff;font-size:12px;text-align:center}.calibration-task-statistics strong{color:#303133;font-size:20px}.calibration-task-log{overflow:hidden;border:1px solid #e5eaf1;border-radius:9px}.calibration-task-log>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid #e5eaf1;background:#f8fafc}.calibration-task-log ol{overflow-y:auto;max-height:310px;margin:0;padding:5px 14px;list-style:none}.calibration-task-log li{display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px;padding:8px 0;border-bottom:1px dashed #ebeef5;color:#465466;font-size:12px;line-height:1.5}.calibration-task-log li:last-child{border-bottom:0}.calibration-task-log time{color:#909399}.system-overview{margin-bottom:18px;border-top:3px solid #409eff}.system-overview .n-card__content{display:flex;align-items:center;justify-content:space-between;gap:18px}.system-overview span,.system-overview strong,.system-overview small{display:block}.system-overview strong{margin:5px 0;font-size:24px}.system-overview small{color:#909399}.system-status-card{height:100%;border-left:3px solid #dcdfe6}.system-status-card.is-healthy{border-left-color:#67c23a}.system-status-card.is-warning,.system-status-card.is-running{border-left-color:#e6a23c}.system-status-card.is-error{border-left-color:#f56c6c}.system-status-card__heading,.system-status-card__footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.system-status-card p{min-height:42px;margin:14px 0 8px;color:#606266;line-height:1.6}.system-status-card ul{min-height:66px;margin:0 0 14px;padding-left:18px;color:#909399;font-size:12px;line-height:1.8}.system-status-card__footer{padding-top:10px;border-top:1px solid #ebeef5}.system-status-card__footer small,.system-status-note{color:#909399}.system-status-note{margin:16px 2px 0;font-size:12px}.mobile-menu-button{display:none}@media (max-width: 1200px){.mapping-workbench{grid-template-columns:190px minmax(580px,1fr) 300px;overflow-x:auto}.admin-alert-grid{grid-template-columns:1fr}}@media (max-width: 700px){:root{--content-padding: 14px}.sidebar{display:none}.topbar{height:60px;padding:0 10px 0 12px;gap:8px}.mobile-menu-button{display:inline-flex}.topbar-context{gap:7px}.topbar-context strong{font-size:15px}.topbar-context small{display:none}.topbar-actions{gap:2px}.topbar-status{padding:0 8px}.topbar-status__label{display:none}.account-trigger{min-width:0;padding:2px;border:0;border-radius:50%;background:transparent}.account-trigger:hover,.account-trigger:focus-visible{border-color:transparent;background:#ecf5ff;box-shadow:none}.account-meta,.account-chevron,.mapping-desktop{display:none}.mapping-mobile{display:block;padding-bottom:12px}.mobile-page-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.mobile-page-title h1{margin:0;font-size:21px}.mobile-page-title p{margin:3px 0 0;color:#7b8797;font-size:12px}.mobile-filter-chips{display:flex;gap:8px;margin-bottom:14px}.mobile-site-card,.mobile-product-card{display:grid;gap:9px;margin-bottom:10px;padding:14px;border:1px solid #e1e7ef;border-radius:12px;background:#fff;box-shadow:0 3px 12px #0f172a0a}.mobile-site-card:active,.mobile-product-card:active{background:#f5f8ff}.mobile-card-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.mobile-card-heading>span{color:#64748b;font-size:24px}.mobile-card-heading i{display:inline-grid;width:24px;height:24px;place-items:center;margin-right:8px;border-radius:50%;color:#fff;background:#2563eb;font-size:12px;font-style:normal}.mobile-site-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.mobile-site-metrics span{color:#7b8797;font-size:11px}.mobile-site-metrics b{display:block;margin-top:4px;color:#17202d;font-size:16px}.mobile-status-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-bottom:12px}.mobile-status-tabs button{min-height:38px;border:1px solid #e2e8f0;border-radius:7px;background:#fff;font-size:12px}.mobile-status-tabs button.active{color:#1d4ed8;border-color:#93b4f8;background:#eaf2ff}.mobile-product-card>small{color:#64748b;overflow-wrap:anywhere}.mobile-product-meta{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:11px}.mobile-pagination{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px}.mobile-page-size{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:8px;color:#7b8797}.mobile-detail-stack{padding-bottom:78px}.mobile-sticky-actions{position:fixed;z-index:20;right:0;bottom:0;left:0;display:flex;justify-content:center;gap:10px;padding:12px 14px max(12px,env(safe-area-inset-bottom));border-top:1px solid #e5eaf1;background:rgba(255,255,255,.97)}.settings-layout{grid-template-columns:1fr}.settings-nav{position:static}.notification-settings-grid{grid-template-columns:1fr}.schedule-command-panel{padding:14px}.schedule-command-panel__heading{align-items:stretch;flex-direction:column;gap:10px}.schedule-command-panel__heading .n-button{align-self:flex-end}.calibration-task-statistics{grid-template-columns:repeat(2,minmax(0,1fr))}.calibration-task-log>div{align-items:flex-start;flex-direction:column;gap:3px}.calibration-task-log li{grid-template-columns:1fr;gap:2px}}@media (max-width: 980px){.settings-layout{grid-template-columns:1fr}.settings-nav{position:static}.notification-settings-grid{grid-template-columns:1fr}}@media (max-width: 900px){.manual-remote-grid{grid-template-columns:1fr}}@media (max-width: 1100px){.dashboard-lists{grid-template-columns:1fr}}
