:root{--bg:#edf3f8;--surface:#fff;--surface-soft:#f6f9fc;--line:#cbd8e8;--line-soft:#dbe5f1;--primary:#123f68;--primary-strong:#0b3153;--text:#172033;--muted:#60758a;--green:#23613b;--green-bg:#e8f6ee;--amber:#8a4b00;--amber-bg:#fff3dd}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;color:var(--text);margin:0;font-family:Microsoft YaHei,Segoe UI,Arial,sans-serif}button,input,select,textarea{font:inherit}.page{min-width:1180px;min-height:100vh;padding:18px}.hero{background:var(--surface);border:1px solid var(--line);border-radius:8px;grid-template-columns:minmax(0,1fr) 300px;align-items:stretch;gap:16px;margin-bottom:12px;padding:18px;display:grid;box-shadow:0 10px 26px #0f172a14}.eyebrow{color:var(--muted);margin:0 0 8px;font-size:13px;font-weight:800}h1,h2,h3,p{letter-spacing:0}h1{color:var(--primary);margin:0 0 8px;font-size:28px;line-height:1.2}.lead{color:#516477;max-width:850px;margin:0;font-size:14px;font-weight:700;line-height:1.7}.heroPanel{border:1px solid var(--line);background:var(--surface-soft);border-radius:6px;flex-direction:column;justify-content:center;padding:14px;display:flex}.heroPanel span,.heroPanel small,.metrics span,.panelHead span{color:var(--muted);font-size:12px;font-weight:800}.heroPanel strong{color:var(--primary-strong);margin:8px 0 5px;font-size:25px;font-weight:900}.panelLink{border:1px solid var(--primary);min-height:34px;color:var(--primary);background:#fff;border-radius:6px;justify-content:center;align-items:center;margin-top:10px;font-size:13px;font-weight:900;text-decoration:none;display:inline-flex}.panelLink.secondary{border-color:var(--line);color:var(--primary-strong);background:var(--surface-soft)}.primaryAction{border:1px solid var(--primary);background:var(--primary);color:#fff;border-radius:6px;justify-content:center;align-items:center;min-height:42px;padding:0 16px;font-size:14px;font-weight:900;text-decoration:none;display:inline-flex}.primaryAction.disabled{border-color:var(--line);color:#8090a0;background:#e7edf4}.dangerButton{color:#9b1c1c;cursor:pointer;background:#fff5f5;border:1px solid #b42318;border-radius:6px;justify-content:center;align-items:center;min-height:42px;padding:0 14px;font-size:14px;font-weight:900;display:inline-flex}.primaryAction:disabled,.dangerButton:disabled,.panelLink:disabled{border-color:var(--line);color:#8090a0;cursor:not-allowed;background:#e7edf4}.metrics{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px;display:grid}.metrics div{border:1px solid var(--line);background:var(--surface);flex-direction:column;justify-content:center;min-height:72px;padding:10px 12px;display:flex}.metrics strong{color:var(--primary-strong);text-align:right;font-variant-numeric:tabular-nums;font-size:22px;font-weight:900}.panel{border:1px solid var(--line);background:var(--surface);border-radius:8px;margin-bottom:12px;overflow:hidden}.panelHead{border-bottom:1px solid var(--line);background:var(--surface-soft);justify-content:space-between;align-items:center;gap:12px;min-height:44px;padding:0 14px;display:flex}.panelHead h2{color:var(--primary);margin:0;font-size:17px;font-weight:900}.stageGrid{grid-template-columns:repeat(5,1fr);gap:10px;padding:12px;display:grid}.stageCard{border:1px solid var(--line-soft);background:#fbfdff;border-left:4px solid #2f6f9f;border-radius:6px;min-height:146px;padding:10px}.stageCard:first-child{border-left-color:var(--green);background:var(--green-bg)}.stageCard:nth-child(2){border-left-color:var(--amber);background:var(--amber-bg)}.stageTop{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.stageTop b{background:var(--primary);color:#fff;border-radius:999px;justify-content:center;align-items:center;width:26px;height:26px;font-size:13px;display:inline-flex}.stageTop span{color:#475569;background:#fff;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:900}.stageCard h3{color:var(--primary-strong);margin:0 0 6px;font-size:15px}.stageCard p{color:#526173;margin:0;font-size:12px;font-weight:700;line-height:1.55}.twoCol{grid-template-columns:.9fr 1.1fr;gap:12px;display:grid}.checkList{color:#334155;margin:0;padding:12px 14px 12px 34px;font-size:14px;font-weight:800;line-height:1.8}.modelList{gap:8px;padding:12px;display:grid}.modelList div{border:1px solid var(--line-soft);background:#fbfdff;grid-template-columns:120px 1fr;align-items:center;gap:8px;padding:9px 10px;display:grid}.modelList strong{color:var(--primary);font-size:13px}.modelList span{color:#334155;font-size:13px;font-weight:750}.roleTable{grid-template-columns:repeat(5,1fr);gap:10px;padding:12px;display:grid}.roleTable article{border:1px solid var(--line-soft);background:#fbfdff;border-radius:6px;padding:10px}.roleTable h3{color:var(--primary);margin:0 0 4px;font-size:15px;font-weight:900}.roleTable p{color:var(--muted);margin:0 0 8px;font-size:12px;font-weight:800}.roleTable ul{color:#334155;margin:0;padding-left:17px;font-size:12px;font-weight:700;line-height:1.6}.wecomPage,.adminPage{min-width:1180px;min-height:100vh;padding:18px}.wecomHero{background:var(--surface);border:1px solid var(--line);border-radius:8px;grid-template-columns:minmax(0,1fr) 280px;align-items:center;gap:16px;margin-bottom:12px;padding:18px;display:grid;box-shadow:0 10px 26px #0f172a14}.wecomHero h1{margin:6px 0 8px}.wecomHero p{color:#516477;max-width:880px;margin:0;font-size:14px;font-weight:700;line-height:1.7}.backLink{color:var(--primary);font-size:13px;font-weight:900;text-decoration:none}.syncAction{justify-items:stretch;gap:8px;display:grid}.syncAction button{border:1px solid var(--primary);background:var(--primary);color:#fff;cursor:pointer;border-radius:6px;min-height:40px;font-size:14px;font-weight:900}.syncAction button:disabled{border-color:var(--line);color:#8090a0;cursor:not-allowed;background:#e7edf4}.syncAction span{color:var(--amber);font-size:12px;font-weight:800}.configPanel{border:1px solid var(--line);background:var(--surface);border-radius:8px;margin-bottom:12px;overflow:hidden}.configGrid{grid-template-columns:repeat(4,1fr);gap:8px;padding:12px;display:grid}.configBadge{border-radius:6px;justify-content:center;align-items:center;min-height:40px;font-size:13px;font-weight:900;display:inline-flex}.configBadge.ok{background:var(--green-bg);color:var(--green);border:1px solid #b7dfc4}.configBadge.warn{background:var(--amber-bg);color:var(--amber);border:1px solid #dfc48f}.warningText{border-top:1px solid var(--line);color:var(--amber);background:#fffaf0;margin:0;padding:10px 12px;font-size:13px;font-weight:800}.warningText code{color:var(--primary);font-weight:900}.dataTable{border-collapse:collapse;table-layout:fixed;width:100%}.dataTable th{background:var(--primary);color:#fff;border:1px solid var(--primary);text-align:center;padding:8px;font-size:12px;font-weight:900}.dataTable td{border:1px solid var(--line-soft);text-align:center;padding:8px;font-size:13px;font-weight:750}.ruleList{color:#334155;margin:0;padding:12px 14px 12px 34px;font-size:13px;font-weight:750;line-height:1.75}.wecomLayout{grid-template-columns:minmax(0,1fr) 390px;align-items:start;gap:12px;display:grid}.wecomMain,.wecomSide{min-width:0}.wecomSide{gap:12px;display:grid;position:sticky;top:12px}.heroStatusBox{border:1px solid var(--line);background:var(--surface-soft);border-radius:6px;flex-direction:column;justify-content:center;min-height:110px;padding:14px;display:flex}.heroStatusBox span,.heroStatusBox small{color:var(--muted);font-size:12px;font-weight:800}.heroStatusBox strong{color:var(--primary-strong);margin:7px 0;font-size:26px;font-weight:900}.configGrid.wide{grid-template-columns:repeat(4,minmax(0,1fr))}.configBadge{text-align:left;flex-direction:column;justify-content:center;align-items:flex-start;gap:3px;min-height:76px;padding:9px 10px;display:flex}.configBadge span,.configBadge small{font-size:12px;font-weight:800}.configBadge strong{font-size:18px;font-weight:900}.flowList{grid-template-columns:repeat(4,1fr);gap:10px;padding:12px;display:grid}.flowList div{border:1px solid var(--line-soft);border-left:4px solid var(--primary);background:#fbfdff;border-radius:6px;min-height:120px;padding:10px}.flowList b{background:var(--primary);color:#fff;border-radius:999px;justify-content:center;align-items:center;width:26px;height:26px;margin-bottom:8px;font-size:13px;display:inline-flex}.flowList strong{color:var(--primary-strong);margin-bottom:6px;font-size:14px;font-weight:900;display:block}.flowList span{color:#526173;font-size:12px;font-weight:750;line-height:1.55;display:block}.wecomChecklist{gap:8px;padding:12px;display:grid}.wecomChecklist div{border:1px solid var(--line-soft);background:#fbfdff;grid-template-columns:180px minmax(0,1fr);align-items:center;gap:10px;padding:10px 12px;display:grid}.wecomChecklist span{color:var(--muted);font-size:13px;font-weight:900}.wecomChecklist strong{overflow-wrap:anywhere;color:var(--primary-strong);font-size:14px;font-weight:900;line-height:1.45}.actionPanel,.sideNote{border:1px solid var(--line);background:var(--surface);border-radius:8px;overflow:hidden}.actionPanelHead{border-bottom:1px solid var(--line);background:var(--surface-soft);justify-content:space-between;align-items:center;gap:12px;min-height:48px;padding:0 14px;display:flex}.actionPanelHead strong,.sideNote h2{color:var(--primary);margin:0;font-size:17px;font-weight:900}.actionPanelHead span{color:var(--muted);font-size:12px;font-weight:800}.actionButtons{grid-template-columns:1fr;gap:8px;padding:12px;display:grid}.actionButtons button{border:1px solid var(--primary);background:var(--primary);color:#fff;cursor:pointer;border-radius:6px;min-height:40px;font-size:14px;font-weight:900}.actionButtons button+button{color:var(--primary);background:#fff}.actionButtons button:disabled{border-color:var(--line);color:#8090a0;cursor:not-allowed;background:#e7edf4}.actionMessage,.actionHint{background:var(--amber-bg);color:var(--amber);border:1px solid #dfc48f;border-radius:6px;margin:0 12px 12px;padding:9px 10px;font-size:13px;font-weight:850;line-height:1.55}.actionMessage.ok{background:var(--green-bg);color:var(--green);border-color:#b7dfc4}.previewResult{gap:10px;padding:0 12px 12px;display:grid}.previewSteps{gap:7px;display:grid}.previewStep{border:1px solid var(--line-soft);background:#fbfdff;border-radius:6px;grid-template-columns:54px 1fr;align-items:center;gap:8px;padding:8px;display:grid}.previewStep b{color:#475569;background:#e7edf4;border-radius:999px;justify-content:center;align-items:center;min-height:28px;font-size:12px;font-weight:900;display:inline-flex}.previewStep.pass b{background:var(--green-bg);color:var(--green)}.previewStep.fail b{color:#9b1c1c;background:#ffe6e6}.previewStep strong,.previewStep span{display:block}.previewStep strong{color:var(--primary-strong);font-size:13px;font-weight:900}.previewStep span{color:#526173;font-size:12px;font-weight:750;line-height:1.5}.errorBox{background:#fffaf0;border:1px solid #dfc48f;border-radius:6px;gap:5px;padding:10px;display:grid}.errorBox strong{color:var(--amber);font-size:14px;font-weight:900}.errorBox span,.errorBox small{color:#6b4b13;font-size:12px;font-weight:800;line-height:1.55}.previewMetrics{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.previewMetrics div{border:1px solid var(--line-soft);background:var(--surface-soft);min-height:56px;padding:7px 8px}.previewMetrics span{color:var(--muted);font-size:11px;font-weight:800;display:block}.previewMetrics strong{color:var(--primary-strong);text-align:right;font-variant-numeric:tabular-nums;font-size:20px;font-weight:900;display:block}.miniTables{gap:8px;display:grid}.compactTable th{padding:6px;font-size:11px}.compactTable td{padding:6px;font-size:12px}.statusPill{color:#475569;background:#e7edf4;border-radius:999px;justify-content:center;align-items:center;min-width:54px;padding:4px 8px;font-size:12px;font-weight:900;display:inline-flex}.statusPill.success{background:var(--green-bg);color:var(--green)}.statusPill.fail{color:#9b1c1c;background:#ffe6e6}.statusPill.running{background:var(--amber-bg);color:var(--amber)}.syncHistory th:nth-child(6),.syncHistory td:nth-child(6){width:38%}.errorCell{color:#6b4b13;text-align:left;font-size:12px;line-height:1.45}.sideNote h2{border-bottom:1px solid var(--line);background:var(--surface-soft);align-items:center;min-height:44px;padding:0 14px;display:flex}.sideNote ul{color:#334155;margin:0;padding:12px 14px 12px 32px;font-size:13px;font-weight:750;line-height:1.75}.loginPage{place-items:center;min-width:900px;min-height:100vh;padding:24px;display:grid}.loginCard{border:1px solid var(--line);background:var(--surface);border-radius:8px;width:min(760px,100%);padding:22px;box-shadow:0 10px 26px #0f172a14}.loginCard .lead{max-width:none;margin-bottom:16px}.authActions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;display:flex}.authActions .panelLink{min-width:118px;margin-top:0;padding:0 14px}.loginError{background:var(--amber-bg);color:var(--amber);border:1px solid #dfc48f;border-radius:6px;margin:12px 0;padding:10px 12px;font-size:13px;font-weight:900}.loginState{border:1px solid var(--line-soft);background:var(--surface-soft);border-radius:6px;gap:4px;padding:12px;display:grid}.loginState span,.loginState small{color:var(--muted);font-size:12px;font-weight:800}.loginState strong{color:var(--primary-strong);font-size:24px;font-weight:900}.loginChecklist{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px;display:grid}.loginChecklist div{border:1px solid var(--line-soft);background:#fbfdff;padding:10px}.loginChecklist span{color:var(--muted);font-size:12px;font-weight:800;display:block}.loginChecklist strong{color:var(--primary-strong);text-align:right;font-size:18px;font-weight:900;display:block}.authSummary{gap:7px;padding:12px;display:grid}.authSummary strong{color:var(--primary-strong);font-size:22px;font-weight:900}.authSummary span{color:#526173;font-size:13px;font-weight:800;line-height:1.55}.authSummary .panelLink{margin-top:2px}.permissionLayout{grid-template-columns:260px 330px minmax(0,1fr) 300px;align-items:start;gap:12px;display:grid}.orgTreePanel,.personListPanel{max-height:calc(100vh - 180px)}.orgTree{max-height:calc(100vh - 238px);padding:8px;overflow:auto}.orgNode{gap:6px;display:grid}.orgRow{border:1px solid var(--line-soft);min-height:38px;color:var(--text);background:#fbfdff;border-radius:6px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 10px;text-decoration:none;display:grid}.orgRow+.orgNode,.orgNode+.orgNode{margin-top:6px}.orgRow.selected{border-color:var(--primary);background:#eef6ff}.orgRow span{text-overflow:ellipsis;white-space:nowrap;color:var(--primary-strong);font-size:13px;font-weight:900;overflow:hidden}.orgRow strong{color:#34445a;text-align:center;background:#e8eef6;border-radius:999px;min-width:28px;padding:2px 7px;font-size:12px;font-weight:900}.personList{max-height:calc(100vh - 238px);padding:8px;overflow:auto}.personRow{border:1px solid var(--line-soft);color:var(--text);background:#fbfdff;border-radius:6px;gap:5px;padding:10px;text-decoration:none;display:grid}.personRow+.personRow{margin-top:7px}.personRow.selected{border-color:var(--primary);background:#eef6ff}.personRow strong,.personRow span,.personRow small{display:block}.personRow strong{color:var(--primary-strong);font-size:15px;font-weight:900}.personRow span{color:var(--muted);font-size:12px;font-weight:800}.personRow small{color:#334155;font-size:12px;font-weight:800;line-height:1.45}.permissionDetail{gap:12px;padding:12px;display:grid}.personProfile{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.personProfile div{border:1px solid var(--line-soft);background:#fbfdff;min-height:72px;padding:10px}.personProfile span{color:var(--muted);font-size:12px;font-weight:800;display:block}.personProfile strong{color:var(--primary-strong);text-align:right;margin-top:6px;font-size:17px;font-weight:900;display:block}.roleForm{gap:12px;display:grid}.roleOptionGrid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.roleOption{border:1px solid var(--line-soft);background:#fbfdff;border-radius:6px;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:10px;min-height:78px;padding:10px;display:grid}.roleOption input{width:18px;height:18px}.roleOption strong,.roleOption small{display:block}.roleOption strong{color:var(--primary-strong);font-size:15px;font-weight:900}.roleOption small{color:var(--muted);font-size:12px;font-weight:800}.managerScopeBox{border:1px solid var(--line);background:#f8fbff;border-radius:6px;gap:10px;padding:12px;display:grid}.scopeHead{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;display:grid}.scopeHead h3,.scopeHead p{margin:0}.scopeHead h3{color:var(--primary-strong);font-size:15px;font-weight:900}.scopeHead p{color:var(--muted);margin-top:4px;font-size:12px;font-weight:800;line-height:1.5}.scopeHead>span{color:#334155;text-align:right;max-width:260px;font-size:12px;font-weight:900;line-height:1.45}.storeScopeGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.storeScopeOption{border:1px solid var(--line-soft);min-height:42px;color:var(--primary-strong);background:#fff;border-radius:6px;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:8px;padding:8px 10px;font-size:13px;font-weight:900;display:grid}.storeScopeOption input{width:16px;height:16px}.storeScopeOption span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.inlineActionForm{justify-content:flex-end;display:flex}.inlineActionForm .panelLink{cursor:pointer;min-width:120px;margin-top:0}.detailHint{color:var(--muted);margin:0;font-size:13px;font-weight:800}.pageNotice{border:1px solid var(--line);border-radius:6px;margin-bottom:12px;padding:10px 12px;font-size:13px;font-weight:900}.pageNotice.ok{background:var(--green-bg);color:var(--green);border-color:#b7dfc4}.pageNotice.warn{background:var(--amber-bg);color:var(--amber);border-color:#dfc48f}.emptyState{color:var(--muted);gap:6px;padding:18px;font-size:13px;font-weight:800;display:grid}.emptyState.compact{margin-top:8px;padding:12px}.emptyState strong{color:var(--primary-strong);font-size:17px;font-weight:900}.roleExplainList{gap:8px;padding:12px;display:grid}.roleExplainList div{border:1px solid var(--line-soft);background:#fbfdff;padding:10px}.roleExplainList strong,.roleExplainList span{display:block}.roleExplainList strong{color:var(--primary-strong);font-size:15px;font-weight:900}.roleExplainList span{color:var(--muted);margin-top:4px;font-size:12px;font-weight:800}.storeTableWrap{padding:12px}.storeCreateForm{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) 140px;align-items:end;gap:10px;padding:12px;display:grid}.storeCreateForm label,.storeEditForm label{gap:5px;display:grid}.storeCreateForm label span,.storeEditForm label span,.storeStatusCell span{color:var(--muted);font-size:12px;font-weight:900}.storeCreateForm input,.storeEditForm input{border:1px solid var(--line);width:100%;min-height:40px;color:var(--primary-strong);background:#fff;border-radius:6px;padding:0 10px;font-size:14px;font-weight:850}.storeCreateForm input:disabled,.storeEditForm input:disabled{color:#7a8a9b;background:#eef3f8}.storeManageList{gap:8px;padding:12px;display:grid}.storeManageRow{border:1px solid var(--line-soft);background:#fbfdff;border-radius:6px;grid-template-columns:minmax(0,1fr) 120px;align-items:end;gap:10px;padding:10px;display:grid}.storeEditForm{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) 92px 108px;align-items:end;gap:10px;display:grid}.storeEditForm .panelLink{cursor:pointer;min-height:40px;margin-top:0}.storeStatusCell{gap:5px;display:grid}.storeStatusForm{align-items:end;display:grid}.storeTable{border-collapse:collapse;table-layout:fixed;width:100%}.storeTable th,.storeTable td{border:1px solid var(--line-soft);color:#334155;text-align:left;padding:10px 12px;font-size:13px;font-weight:800;line-height:1.45}.storeTable th{background:var(--primary);color:#fff;font-weight:900}.storeTable td:first-child{color:var(--primary-strong);font-size:15px;font-weight:900}.storeNotes{gap:8px;padding:12px 14px;display:grid}.storeNotes p{color:#334155;margin:0;font-size:13px;font-weight:800;line-height:1.6}.storeAdminStrip{grid-template-columns:minmax(0,1fr) minmax(220px,280px);gap:0;display:grid;overflow:hidden}.storeCreateBlock{border-right:1px solid var(--line-soft);grid-template-columns:180px minmax(0,1fr);align-items:center;gap:22px;padding:22px 24px;display:grid}.storeCreateBlock h2{color:var(--primary-strong);margin:0 0 4px;font-size:18px;font-weight:950}.storeCreateBlock p{color:var(--muted);margin:0;font-size:12px;font-weight:800;line-height:1.5}.storeCreateCompact{grid-template-columns:minmax(180px,260px) 72px;justify-content:start;align-items:center;gap:8px;display:grid}.storeCreateCompact input,.storeRowNameForm input{border:1px solid var(--line);width:100%;min-height:36px;color:var(--primary-strong);background:#fff;border-radius:6px;padding:0 10px;font-size:14px;font-weight:850}.storeCreateCompact input:disabled,.storeRowNameForm input:disabled{color:#7a8a9b;background:#eef3f8}.storeMappingSummary{background:#f8fbfe;align-content:center;gap:4px;padding:22px 24px;display:grid}.storeMappingSummary span,.storeMetaCell span{color:var(--muted);font-size:12px;font-weight:900}.storeMappingSummary strong{color:var(--primary-strong);font-size:20px;font-weight:950}.storeMappingSummary small{color:#526173;font-size:12px;font-weight:800;line-height:1.45}.compactAction,.storeMiniButton{border:1px solid var(--primary);background:var(--primary);color:#fff;cursor:pointer;border-radius:6px;min-height:36px;padding:0 12px;font-size:13px;font-weight:950}.compactAction:disabled,.storeMiniButton:disabled{cursor:not-allowed;opacity:.6}.storeMiniButton{width:72px;color:var(--primary);background:#fff}.storeMiniButton.primary{background:var(--primary);color:#fff}.storeMiniButton.danger{color:#9a3412;border-color:#c2410c}.storeWorkbench{grid-template-columns:280px minmax(0,1fr);align-items:start;gap:16px;display:grid}.storeSelectorPanel{overflow:hidden}.storeSelectorList{gap:8px;padding:14px;display:grid}.storeSelectorItem{min-height:48px;color:var(--primary-strong);background:#f8fbfe;border:1px solid #0000;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:0 12px;text-decoration:none;display:flex}.storeSelectorItem.active{box-shadow:inset 3px 0 0 var(--primary);background:#eef6ff;border-color:#9bb9d7}.storeSelectorItem strong{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:950;overflow:hidden}.statusDot{border-radius:999px;flex:none;padding:3px 7px;font-size:11px;font-weight:950}.statusDot.success{color:#126636;background:#e8f7ee}.statusDot.muted{color:#667789;background:#edf1f5}.storeDetailPanel{min-height:560px;overflow:hidden}.storeDetailHero{border-bottom:1px solid var(--line-soft);padding:28px 30px 24px}.storeDetailHero h2{color:var(--primary-strong);letter-spacing:0;margin:12px 0 8px;font-size:28px;font-weight:950}.storeDetailHero p,.storeDetailCard p{color:#526173;margin:0;font-size:13px;font-weight:800;line-height:1.6}.storeDetailGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:22px 30px 30px;display:grid}.storeDetailCard{border:1px solid var(--line-soft);background:#fbfdff;border-radius:8px;align-content:space-between;gap:18px;min-height:150px;padding:18px;display:grid}.storeDetailCard h3{color:var(--primary-strong);margin:0 0 6px;font-size:17px;font-weight:950}.storeDetailCard label{gap:6px;display:grid}.storeDetailCard label span{color:var(--muted);font-size:12px;font-weight:900}.storeDetailInputLine{grid-template-columns:minmax(200px,300px) 78px;justify-content:start;align-items:center;gap:10px;display:grid}.storeDetailCard input{border:1px solid var(--line);width:100%;min-height:38px;color:var(--primary-strong);background:#fff;border-radius:6px;padding:0 11px;font-size:14px;font-weight:850}.storeDetailCard input:disabled{color:#7a8a9b;background:#eef3f8}.storeDetailAction{border:1px solid var(--primary);background:var(--primary);color:#fff;cursor:pointer;border-radius:6px;min-height:38px;padding:0 14px;font-size:13px;font-weight:950}.storeDetailAction.danger{color:#9a3412;background:#fff7ed;border-color:#c2410c;width:fit-content}.storeDetailAction:disabled{border-color:var(--line);color:#8090a0;cursor:not-allowed;background:#e7edf4}.storeDetailValue{border:1px solid var(--line-soft);background:#fff;border-radius:8px;padding:12px 14px}.storeDetailValue code,.storeDetailValue strong{color:#334155;font-size:15px;font-weight:900}.storeDetailValue code{color:#64748b;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.storeDangerCard{background:#fffdfb}.storeEmptyState{color:#526173;padding:36px;font-size:14px;font-weight:850}.monthOpenStrip{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:22px;padding:22px 24px;display:grid}.monthOpenStrip h2{color:var(--primary-strong);margin:0 0 6px;font-size:18px;font-weight:950}.monthOpenStrip p{color:#526173;margin:0;font-size:13px;font-weight:800;line-height:1.6}.monthOpenForm{grid-template-columns:160px 72px;align-items:center;gap:10px;display:grid}.monthOpenForm input,.monthStatusLine select{border:1px solid var(--line);width:100%;min-height:38px;color:var(--primary-strong);background:#fff;border-radius:6px;padding:0 11px;font-size:14px;font-weight:850}.monthOpenForm input:disabled,.monthStatusLine select:disabled{color:#7a8a9b;background:#eef3f8}.monthWorkbench{grid-template-columns:260px minmax(0,1fr);align-items:start;gap:16px;display:grid}.monthSelectorPanel,.monthDetailPanel{overflow:hidden}.monthSelectorList{gap:8px;padding:14px;display:grid}.monthSelectorItem{min-height:56px;color:var(--primary-strong);background:#f8fbfe;border:1px solid #0000;border-radius:8px;gap:4px;padding:10px 12px;text-decoration:none;display:grid}.monthSelectorItem.active{box-shadow:inset 3px 0 0 var(--primary);background:#eef6ff;border-color:#9bb9d7}.monthSelectorItem strong{font-size:16px;font-weight:950}.monthSelectorItem span,.monthEmptyHint{color:#526173;font-size:12px;font-weight:850}.monthEmptyHint{padding:18px 4px}.monthDetailPanel{min-height:620px}.monthDetailHero{border-bottom:1px solid var(--line-soft);grid-template-columns:minmax(0,1fr) minmax(280px,420px);align-items:end;gap:28px;padding:30px;display:grid}.monthDetailHero h2{color:var(--primary-strong);letter-spacing:0;margin:12px 0 8px;font-size:30px;font-weight:950}.monthDetailHero p,.monthDetailCard p{color:#526173;margin:0;font-size:13px;font-weight:800;line-height:1.6}.monthHeroFacts{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.monthHeroFacts div{border:1px solid var(--line-soft);background:#fbfdff;border-radius:8px;align-content:center;gap:6px;min-height:74px;padding:12px;display:grid}.monthHeroFacts span{color:var(--muted);font-size:12px;font-weight:900}.monthHeroFacts strong{color:var(--primary-strong);text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:950;overflow:hidden}.monthDetailGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:22px 30px 30px;display:grid}.monthDetailCard{border:1px solid var(--line-soft);background:#fbfdff;border-radius:8px;align-content:space-between;gap:18px;min-height:168px;padding:18px;display:grid}.monthDetailCard.wide{grid-column:1/-1}.monthDetailCard h3{color:var(--primary-strong);margin:0 0 6px;font-size:17px;font-weight:950}.monthStatusLine{grid-template-columns:minmax(180px,260px) 92px;justify-content:start;align-items:center;gap:10px;display:grid}.monthScopeList,.monthFutureLinks{flex-wrap:wrap;gap:8px;display:flex}.monthScopeList span,.monthScopeList em,.monthFutureLinks span{color:var(--primary-strong);background:#eef6ff;border-radius:999px;padding:6px 10px;font-size:12px;font-style:normal;font-weight:900}.monthScopeList em{color:#526173;background:#f2f5f8}.monthFutureLinks span{color:#526173;background:#f8fbfe}.monthFlowGrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.monthFlowGrid div{border:1px solid var(--line-soft);background:#fff;border-radius:8px;align-content:center;gap:6px;min-height:72px;padding:12px;display:grid}.monthFlowGrid strong{color:var(--primary-strong);font-size:13px;font-weight:950}.monthFlowGrid span{color:#526173;font-size:12px;font-weight:850}.homeHero{border:1px solid var(--line);background:var(--surface);border-radius:8px;grid-template-columns:minmax(0,1fr) 300px;align-items:stretch;gap:16px;margin-bottom:12px;padding:22px;display:grid;box-shadow:0 10px 26px #0f172a14}.homeUserCard{border:1px solid var(--line);background:var(--surface-soft);border-radius:8px;align-content:center;gap:6px;padding:16px;display:grid}.homeUserCard span,.homeUserCard small{color:var(--muted);font-size:12px;font-weight:850}.homeUserCard strong{color:var(--primary-strong);font-size:24px;font-weight:950}.homeOverview{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px;display:grid}.homeOverview a{border:1px solid var(--line);background:var(--surface);border-radius:8px;align-content:center;gap:6px;min-height:86px;padding:14px;text-decoration:none;display:grid}.homeOverview span,.homeOverview small,.homeActionCard span,.homeUpcomingCard span{color:var(--muted);font-size:12px;font-weight:850}.homeOverview strong{color:var(--primary-strong);text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;font-size:25px;font-weight:950;overflow:hidden}.homeGrid{grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:12px;display:grid}.homeActionGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px;display:grid}.homeActionCard,.homeUpcomingCard{border:1px solid var(--line-soft);background:#fbfdff;border-radius:8px;align-content:start;gap:9px;min-height:150px;padding:16px;text-decoration:none;display:grid}.homeActionCard{border-color:#c7d8ea}.homeActionCard strong,.homeUpcomingCard strong{color:var(--primary-strong);font-size:18px;font-weight:950}.homeActionCard p,.homeUpcomingCard p{color:#526173;margin:0;font-size:13px;font-weight:800;line-height:1.6}.homeReminderList{gap:10px;margin:0;padding:16px 18px 18px 34px;display:grid}.homeReminderList li{color:#334155;font-size:14px;font-weight:850;line-height:1.6}.homeUpcomingGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:14px;display:grid}.homeUpcomingCard{background:#f8fbfe;min-height:132px}.adminPayrollHome{background:var(--bg);min-width:1260px;min-height:100vh;padding:16px}.adminPayrollShell{background:#fff;border:1px solid #c7d5e3;border-radius:8px;grid-template-columns:236px minmax(0,1fr);min-height:calc(100vh - 32px);display:grid;overflow:hidden;box-shadow:0 10px 26px #0f172a14}.adminPayrollSidebar{background:var(--primary);color:#fff;padding:14px 12px}.adminPayrollBrand{border-bottom:1px solid #ffffff38;margin-bottom:12px;padding-bottom:13px}.adminPayrollBrand strong{font-size:18px;font-weight:950;display:block}.adminPayrollBrand span,.adminPayrollMonthBox span{color:#bfd0df;font-size:12px;font-weight:800;line-height:1.5;display:block}.adminPayrollMonthBox{background:#ffffff14;border:1px solid #ffffff38;border-radius:7px;margin-bottom:14px;padding:10px}.adminPayrollMonthBox b{margin-bottom:6px;font-size:14px;font-weight:950;display:block}.adminPayrollSideTitle{color:#9eb8cf;margin:12px 6px 7px;font-size:12px;font-weight:900}.adminPayrollSideItem{color:#eaf2f9;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;min-height:34px;margin-bottom:4px;padding:0 10px;font-size:14px;font-weight:900;text-decoration:none;display:flex}.adminPayrollSideItem.active{color:var(--primary);background:#fff}.adminPayrollSideItem.muted{opacity:.72}.adminPayrollSideItem em{background:#fff3;border-radius:999px;justify-content:center;align-items:center;min-width:22px;height:20px;font-size:12px;font-style:normal;display:inline-flex}.adminPayrollSideItem.active em{background:#dce9f5}.adminPayrollMain{padding:18px 22px;overflow:hidden}.adminPayrollTopbar{border-bottom:2px solid var(--primary);justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:12px;padding-bottom:13px;display:flex}.adminPayrollTopbar h1{color:var(--primary-strong);margin:0 0 6px;font-size:25px;font-weight:950}.adminPayrollTopbar p{color:#5a6c7f;max-width:820px;margin:0;font-size:13px;font-weight:800;line-height:1.55}.adminPayrollTopActions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.adminPayrollMonthSwitch,.adminPayrollOpenMonthForm{align-items:center;gap:8px;display:inline-flex}.adminPayrollMonthSwitch select{min-width:150px;min-height:36px;color:var(--primary);background:#fff;border:1px solid #b9c8dc;border-radius:5px;padding:0 10px;font-size:13px;font-weight:950}.adminPayrollMonthSwitch select:disabled{color:#8090a0;background:#edf2f7}.adminPayrollButton{min-height:36px;color:var(--primary);background:#fff;border:1px solid #b9c8dc;border-radius:5px;justify-content:center;align-items:center;padding:0 12px;font-size:13px;font-weight:950;text-decoration:none;display:inline-flex}.adminPayrollButton.warn{color:#8a4b00;background:#fff8eb;border-color:#dfc48f}.adminPayrollButton:disabled{border-color:var(--line);color:#8090a0;cursor:not-allowed;background:#e7edf4}.adminPayrollMetrics{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-bottom:12px;display:grid}.adminPayrollMetrics div{border:1px solid var(--line);background:#fff;align-content:center;gap:5px;min-height:64px;padding:8px 10px;display:grid}.adminPayrollMetrics span{color:var(--muted);font-size:12px;font-weight:850}.adminPayrollMetrics strong{color:var(--primary-strong);text-align:right;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;font-size:19px;font-weight:950;overflow:hidden}.adminPayrollMetrics .warn strong{color:#985200}.adminPayrollMetrics .good strong{color:var(--green)}.adminPayrollStageRow{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px;display:grid}.adminPayrollStageRow section{border:1px solid var(--line);background:#fbfdff;min-height:122px;padding:12px}.adminPayrollStageRow h2{color:var(--primary);margin:0 0 7px;font-size:16px;font-weight:950}.adminPayrollStageRow p{color:#64748b;margin:0 0 10px;font-size:13px;font-weight:800;line-height:1.45}.adminPayrollStageRow div{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line);color:#334155;white-space:nowrap;background:#fff;border-radius:999px;align-items:center;padding:5px 8px;font-size:12px;font-weight:950;display:inline-flex}.chip.primary{border-color:var(--primary);background:var(--primary);color:#fff}.chip.warn{color:#8a4b00;background:#fff3dd;border-color:#dfc48f}.adminPayrollContent{grid-template-columns:minmax(0,1fr) 330px;align-items:start;gap:12px;display:grid}.adminPayrollPanel{border:1px solid var(--line);background:#fff;min-width:0}.adminPayrollPanelHead{border-bottom:1px solid var(--line);background:var(--surface-soft);justify-content:space-between;align-items:center;gap:12px;min-height:42px;padding:0 12px;display:flex}.adminPayrollPanelHead h2{color:var(--primary);margin:0;font-size:17px;font-weight:950}.adminPayrollPanelHead small{color:var(--muted);font-size:12px;font-weight:850}.adminPayrollTable{border-collapse:collapse;table-layout:fixed;width:100%}.adminPayrollTable th{border:1px solid var(--primary);background:var(--primary);color:#fff;text-align:center;vertical-align:middle;padding:8px 5px;font-size:13px;font-weight:950;line-height:1.2}.adminPayrollTable td{text-align:center;vertical-align:middle;color:#334155;font-variant-numeric:tabular-nums;border:1px solid #d4dfeb;padding:9px 5px;font-size:13px;font-weight:800}.adminPayrollTable td.name{color:var(--primary-strong);text-align:left;padding-left:9px;font-weight:950}.workStatus{color:#475569;background:#eef2f7;border-radius:999px;justify-content:center;min-width:52px;padding:3px 8px;font-size:12px;font-weight:950;display:inline-flex}.workStatus.warn{color:#8a4b00;background:#fff3dd}.workStatus.block{color:#8a2d2d;background:#f7e8e8}.miniAction{color:var(--primary);background:#fff;border:1px solid #b9c8dc;border-radius:4px;justify-content:center;align-items:center;padding:4px 7px;font-size:12px;font-weight:950;text-decoration:none;display:inline-flex}.adminPayrollRight{gap:12px;display:grid}.adminPayrollTask{border-bottom:1px solid var(--line-soft);padding:10px 11px}.adminPayrollTask:last-child{border-bottom:0}.adminPayrollTask b{color:#172033;justify-content:space-between;gap:8px;margin-bottom:4px;font-size:14px;font-weight:950;display:flex}.adminPayrollTask p{color:#64748b;margin:0;font-size:12px;font-weight:800;line-height:1.45}.adminPayrollTask.block b{color:#8a2d2d}.adminPayrollTask.good b{color:var(--green)}.adminPayrollLinkGrid{grid-template-columns:1fr 1fr;gap:8px;padding:10px;display:grid}.adminPayrollLinkGrid a{background:#fbfdff;border:1px solid #d4dfeb;min-height:62px;padding:9px;text-decoration:none}.adminPayrollLinkGrid strong{color:var(--primary);margin-bottom:5px;font-size:13px;font-weight:950;display:block}.adminPayrollLinkGrid span{color:#64748b;font-size:12px;font-weight:800;line-height:1.35}@media (max-width:1280px){.permissionLayout{grid-template-columns:250px 310px minmax(0,1fr)}.permissionLayout>.panel:last-child{grid-column:1/-1}}@media (max-width:980px){.permissionLayout{grid-template-columns:1fr}.orgTreePanel,.personListPanel,.orgTree,.personList{max-height:none}.personProfile,.roleOptionGrid,.storeScopeGrid,.scopeHead{grid-template-columns:1fr}.scopeHead>span{text-align:left;max-width:none}.storeCreateForm,.storeCreateCompact,.storeAdminStrip,.storeCreateBlock,.storeWorkbench,.storeDetailGrid,.storeDetailInputLine,.monthOpenStrip,.monthOpenForm,.monthWorkbench,.monthDetailHero,.monthHeroFacts,.monthDetailGrid,.monthStatusLine,.monthFlowGrid,.homeHero,.homeOverview,.homeGrid,.homeActionGrid,.homeUpcomingGrid,.storeManageRow,.storeEditForm{grid-template-columns:1fr}.storeCreateBlock{border-right:0;border-bottom:1px solid var(--line-soft)}.storeSelectorList,.monthSelectorList{grid-template-columns:repeat(2,minmax(0,1fr))}.storeDetailInputLine,.monthStatusLine{grid-template-columns:1fr;gap:8px}.storeDetailAction,.monthOpenForm .primaryAction{width:100%}}@media (max-width:640px){.storeSelectorList,.monthSelectorList{grid-template-columns:1fr}.storeDetailHero,.storeDetailGrid,.monthDetailHero,.monthDetailGrid{padding-left:18px;padding-right:18px}}
