/* Shared business workspaces, scoped to avoid altering game screens. */
body.ws-active .app-shell>main>:not(#workspaceRoot){display:none!important}
body.ws-active .sidebar>.page-tabs,body.ws-active .sidebar>.new-compare,body.ws-active .sidebar>.history-head,body.ws-active .sidebar>.history-list{display:none!important}
body.ws-active #dashboard>main>:not(#workspaceRoot){display:none!important}
body.ws-active #dashboard>aside>nav:not(#workspaceNav):not(#workspaceGlobalNav),body.ws-active #dashboard>aside>.account{display:none!important}
body.ws-readonly .sidebar [data-page="manual"],body.ws-readonly .sidebar [data-page="config"],body.ws-readonly .sidebar [data-page="admin"],body.ws-readonly .sidebar>.new-compare,body.ws-readonly #clearHistory,body.ws-readonly #summarySyncMeta,body.ws-readonly #summarySyncAdjust,body.ws-readonly #summarySyncAll,body.ws-readonly #goToConfig,body.ws-readonly .topbar .top-actions>:not(.top-account),body.ws-readonly .sidebar>.history-head,body.ws-readonly .sidebar>.history-list{display:none!important}
#workspaceRoot[hidden],#workspaceNav[hidden],.ws-hidden{display:none!important}
/* A workspace select must expose exactly one visual control, even if an older tab
   has already run the select enhancer more than once. */
#workspaceRoot .mb-select>select{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  opacity:0!important;
  pointer-events:none!important;
  clip-path:inset(50%)!important;
}

/* 广告账户页：固定身份字段始终位于自定义指标之前。 */
.ws-account-report{min-width:1120px}
.ws-account-report th[class^="ws-account-"],.ws-account-report td[class^="ws-account-"]{box-sizing:border-box;text-align:left!important;font-weight:400}
.ws-account-report .ws-account-buyer{min-width:92px}
.ws-account-report .ws-account-project{min-width:150px;max-width:220px}
.ws-account-report .ws-account-bm{min-width:132px;font-variant-numeric:tabular-nums}
.ws-account-report th.ws-account-bit,.ws-account-report td.ws-account-bit{width:152px!important;min-width:152px!important;max-width:152px!important;text-align:center!important;border-right:0!important}
.ws-account-report .ws-account-bit button{display:block;width:120px!important;min-width:120px!important;max-width:120px!important;height:34px;margin-inline:auto;box-sizing:border-box;border:0;background:transparent;color:#235b89;text-align:center;padding:7px 6px;border-radius:6px;font:inherit;cursor:text;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ws-account-report .ws-account-bit button:hover{background:#eef6fd}
.ws-account-report .ws-account-bit button:has(input){background:transparent!important;box-shadow:none!important;padding:0!important;overflow:visible!important}
.ws-account-report .ws-account-bit input{display:block;width:120px!important;min-width:120px!important;max-width:120px!important;height:34px;margin-inline:auto;box-sizing:border-box;border:1px solid #3686cc;border-radius:6px;padding:6px 7px;background:#fff;color:#244c69;font:inherit;text-align:center;outline:0;user-select:text}
.ws-account-report .ws-account-bit input:focus{border-color:#28ad9e!important;border-right:2px solid #159b8d!important;box-shadow:none!important;outline:0!important}
.ws-account-report th.ws-account-note,.ws-account-report td.ws-account-note{width:210px;min-width:200px;max-width:220px;text-align:center!important}
.ws-account-report th.ws-account-payment,.ws-account-report td.ws-account-payment{width:160px;min-width:150px;max-width:170px;text-align:center!important}
.ws-payment-source-wrap{display:inline-block;max-width:100%;color:#315d70;white-space:nowrap;font-variant-numeric:tabular-nums}
.ws-payment-help{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;margin-left:3px;border:1px solid #9db9c4;border-radius:50%;color:#66899a;font-size:11px;line-height:1;vertical-align:middle;cursor:help}
.ws-payment-help:focus-visible{outline:2px solid #28ad9e;outline-offset:2px}
.ws-account-report .ws-account-note button{display:block;width:190px;max-width:100%;min-height:34px;margin:0 auto;box-sizing:border-box;padding:7px 9px;border:0;border-radius:6px;background:transparent;color:#235b89;text-align:center;font:inherit;cursor:text;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ws-account-report .ws-account-note button:hover{background:#eef6fd}
.ws-account-report .ws-account-note button:has(input){padding:0;background:transparent!important;box-shadow:none!important;overflow:visible}
.ws-account-report .ws-account-note input{display:block;width:190px;max-width:100%;height:34px;margin:0 auto;box-sizing:border-box;padding:6px 8px;border:1px solid #3686cc;border-radius:6px;background:#fff;color:#244c69;font:inherit;text-align:center;outline:0;user-select:text}
.ws-account-report .ws-account-note input:focus{border-color:#28ad9e!important;box-shadow:none!important;outline:0!important}
.ws-bit-empty{color:#8da0ad}
.ws-confirm-dialog.ws-bit-config-dialog{width:min(760px,calc(100vw - 36px));max-height:min(88vh,840px);border:1px solid #d9e5e8;border-radius:20px;box-shadow:0 30px 96px rgba(17,43,63,.27)}
.ws-bit-config-dialog>.ws-dialog-head{padding:29px 36px 25px;background:linear-gradient(135deg,#f2faf9 0%,#fff 74%);border-bottom:1px solid #e4edef}
.ws-bit-config-dialog>.ws-dialog-head h2{font-size:22px;letter-spacing:.01em;color:#203d4d}
.ws-bit-config-dialog>.ws-dialog-head>div small{margin-top:6px;color:#718997;font-size:12px}
.ws-bit-config-dialog>.ws-dialog-head>button{display:grid!important;flex:0 0 40px!important;place-items:center;box-sizing:border-box!important;width:40px!important;min-width:40px!important;max-width:40px!important;height:40px!important;min-height:40px!important;max-height:40px!important;margin:0 0 0 16px!important;padding:0!important;border:1px solid #e3ecee!important;border-radius:12px!important;background:#f3f7f8!important;color:#657f8a!important;font-size:23px!important;line-height:1!important;transform:none!important;overflow:hidden;transition:background .15s,border-color .15s,color .15s}
.ws-bit-config-dialog>.ws-dialog-head>button:hover{border-color:#c9dcdf!important;background:#eaf3f4!important;color:#315767!important;transform:none!important}
.ws-bit-config-form{padding:30px 36px 32px;display:grid;gap:19px}
.ws-bit-config-form label{display:grid;gap:8px;color:#425b68;font-size:13px;font-weight:650}
.ws-bit-config-form input{box-sizing:border-box;width:100%;height:44px;border:1px solid #cfdee2;border-radius:9px;background:#fff;padding:0 13px;font:inherit;font-size:14px;font-weight:400;color:#263e4d;transition:border-color .15s,box-shadow .15s}
.ws-bit-config-form input:focus{border-color:#28a99c;outline:0;box-shadow:0 0 0 4px rgba(24,159,146,.12)}
.ws-bit-config-form p{margin:0;padding:13px 15px;border:1px solid #dcece9;border-radius:10px;background:#f3faf8;color:#617c84;font-size:12px;line-height:1.75}
.ws-bit-download{display:flex;gap:9px;flex-wrap:wrap;font-size:12px}
.ws-bit-download a{display:inline-flex;align-items:center;min-height:34px;padding:0 11px;border:1px solid #dce7ea;border-radius:8px;background:#fff;color:#197f77;text-decoration:none;font-weight:600;transition:background .15s,border-color .15s,transform .15s}
.ws-bit-download a:hover{border-color:#acd7d1;background:#f1faf8;transform:translateY(-1px)}
.ws-bit-test-status{display:flex;align-items:flex-start;gap:11px;min-height:24px;margin-top:-5px;padding:14px 16px;border:1px solid #d4e5e8;border-radius:12px;background:#f5f8fa;color:#405b69;font-size:14px;font-weight:650;line-height:1.6;box-shadow:0 3px 12px rgba(24,67,78,.06)}
.ws-bit-test-status[hidden]{display:none}
.ws-bit-test-dot{flex:0 0 10px;width:10px;height:10px;margin-top:5px;border-radius:50%;background:#81949e;box-shadow:0 0 0 4px rgba(129,148,158,.14)}
.ws-bit-test-status[data-state="loading"]{border-color:#c4dced;background:#f1f8ff;color:#285d7b}
.ws-bit-test-status[data-state="loading"] .ws-bit-test-dot{background:#2582c4;box-shadow:0 0 0 4px rgba(37,130,196,.15);animation:ws-bit-test-pulse 1.1s ease-in-out infinite}
.ws-bit-test-status[data-state="success"]{border-color:#a9ddd2;background:linear-gradient(120deg,#e8f8f3,#f4fbf8);color:#087d6e}
.ws-bit-test-status[data-state="success"] .ws-bit-test-dot{background:#0caa8b;box-shadow:0 0 0 4px rgba(12,170,139,.15)}
.ws-bit-test-status[data-state="error"]{border-color:#f1c4c1;background:linear-gradient(120deg,#fff0ee,#fff8f7);color:#a63d37}
.ws-bit-test-status[data-state="error"] .ws-bit-test-dot{background:#dc5149;box-shadow:0 0 0 4px rgba(220,81,73,.14)}
@keyframes ws-bit-test-pulse{50%{opacity:.4;transform:scale(.82)}}
.ws-bit-config-form footer{display:flex;justify-content:flex-end;gap:10px;margin:5px -36px -32px;padding:19px 36px 23px;border-top:1px solid #e8eef0;background:#f8fafb}
.ws-bit-config-form footer .ws-btn{box-sizing:border-box;min-width:84px;height:40px;border-radius:9px;padding:0 16px;font-size:13px}
@media(max-width:560px){.ws-bit-config-dialog>.ws-dialog-head{padding:20px 19px 17px}.ws-bit-config-form{padding:20px 19px 22px}.ws-bit-config-form footer{margin:4px -19px -22px;padding:14px 19px 17px;flex-wrap:wrap}.ws-bit-config-form footer .ws-btn{flex:1 1 auto}}
.ws-confirm-dialog.ws-bit-import-dialog{width:min(900px,calc(100vw - 32px));max-height:min(88vh,900px);border:1px solid #d9e5e8;border-radius:18px;box-shadow:0 30px 96px rgba(17,43,63,.27)}
.ws-bit-import-dialog[open]{display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden}
.ws-bit-import-dialog:has(.ws-bit-import-result:not([hidden])){height:min(88vh,900px)}
.ws-bit-import-dialog>.ws-dialog-head{display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;gap:20px;padding:24px 30px;background:linear-gradient(135deg,#f2faf9 0%,#fff 74%);border-bottom:1px solid #e4edef}
.ws-bit-import-dialog>.ws-dialog-head h2{margin:0;color:#203d4d;font-size:21px}
.ws-bit-import-dialog>.ws-dialog-head small{display:block;margin-top:7px;color:#718997;font-size:12px;line-height:1.6}
.ws-bit-import-dialog>.ws-dialog-head>button{display:grid;flex:0 0 40px;place-items:center;box-sizing:border-box;width:40px;height:40px;margin:0;padding:0;border:1px solid #e3ecee;border-radius:12px;background:#f3f7f8;color:#657f8a;font-size:23px;line-height:1}
.ws-bit-import-body{display:grid;flex:0 1 auto;grid-template-rows:auto auto auto;gap:10px;min-height:0;padding:24px 30px;overflow:auto}
.ws-bit-import-dialog:has(.ws-bit-import-result:not([hidden])) .ws-bit-import-body{flex:1 1 auto;grid-template-rows:auto minmax(120px,min(25vh,220px)) auto minmax(0,1fr);overflow:hidden}
.ws-bit-import-body>label{font-size:13px;font-weight:700;color:#425b68}
.ws-bit-import-body textarea{box-sizing:border-box;width:100%;height:min(25vh,220px);min-height:120px;max-height:220px;resize:none;padding:13px 15px;border:1px solid #cfdee2;border-radius:10px;background:#fff;color:#263e4d;font:13px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace;outline:0}
.ws-bit-import-body textarea:focus{border-color:#28a99c;box-shadow:0 0 0 3px rgba(24,159,146,.1)}
.ws-bit-import-body>p{margin:0;padding:11px 13px;border:1px solid #dcece9;border-radius:9px;background:#f3faf8;color:#617c84;font-size:12px;line-height:1.65}
.ws-bit-import-result{display:grid;gap:10px;min-height:0;overflow:auto;padding:12px;border:1px solid #dce6e9;border-radius:10px;background:#f8fbfc}
.ws-bit-import-result[hidden]{display:none}
.ws-bit-import-result.is-error{display:block;border-color:#efc2bd;background:#fff5f3;color:#a33f35;font-size:13px}
.ws-bit-import-summary{display:flex;gap:15px;flex-wrap:wrap;color:#31566a;font-size:12px;font-weight:700}
.ws-bit-import-summary span{color:#63808d}.ws-bit-import-summary strong{color:#bd5a42}
.ws-bit-import-list{display:grid;gap:5px}
.ws-bit-import-list>div{display:grid;grid-template-columns:100px 170px minmax(120px,1fr) 70px;align-items:center;gap:10px;padding:8px 10px;border-radius:7px;background:#fff;color:#58717e;font-size:11px}
.ws-bit-import-list b{color:#203d4d;font-variant-numeric:tabular-nums}.ws-bit-import-list em{justify-self:end;color:#0b897b;font-style:normal;font-weight:700}.ws-bit-import-list .is-unmatched em{color:#bd5148}.ws-bit-import-list .is-overwrite em{color:#ad7217}
.ws-bit-import-dialog>footer{display:flex;flex:0 0 auto;position:sticky;z-index:2;bottom:0;justify-content:flex-end;gap:9px;padding:16px 30px 20px;border-top:1px solid #e8eef0;background:#f8fafb}
@media(max-height:650px){.ws-bit-import-dialog>.ws-dialog-head{padding-top:16px;padding-bottom:16px}.ws-bit-import-body{padding-top:14px;padding-bottom:14px}.ws-bit-import-body textarea{height:16vh;min-height:88px}.ws-bit-import-dialog:has(.ws-bit-import-result:not([hidden])) .ws-bit-import-body{grid-template-rows:auto minmax(88px,16vh) auto minmax(0,1fr)}.ws-bit-import-dialog>footer{padding-top:10px;padding-bottom:12px}}
@media(max-width:620px){.ws-bit-import-dialog>.ws-dialog-head{padding:19px}.ws-bit-import-body{padding:18px}.ws-bit-import-dialog>footer{padding:14px 18px;flex-wrap:wrap}.ws-bit-import-list>div{grid-template-columns:75px 1fr 65px}.ws-bit-import-list>div span:nth-of-type(2){grid-column:1/-1;grid-row:2}}
.ws-account-report .ws-account-id{min-width:148px;font-variant-numeric:tabular-nums}
.ws-account-report .ws-account-created{min-width:150px;white-space:nowrap;font-variant-numeric:tabular-nums}
.ws-account-report .ws-account-type{min-width:88px;white-space:nowrap}
.ws-account-type-wrap{display:inline-flex;align-items:center;justify-content:center;min-height:26px;cursor:default}
.ws-account-type-wrap[data-copy-owner]{cursor:copy}
.ws-account-type-wrap[data-copy-owner]:hover{color:#078d7f;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px}
.ws-account-type-wrap[data-copy-owner]:focus-visible{outline:2px solid #0c9b8c;outline-offset:3px;border-radius:3px}
.ws-owner-bm-tooltip{position:fixed;z-index:100000;display:grid;grid-template-columns:76px minmax(120px,1fr) auto;align-items:center;gap:7px 12px;width:max-content;max-width:min(440px,calc(100vw - 24px));padding:13px 15px;border:1px solid #d7e8e7;border-radius:10px;background:#fff;color:#627987;box-shadow:0 12px 32px rgba(23,58,72,.2);font-size:12px;line-height:1.45;white-space:normal;visibility:hidden;opacity:0;transform:translateY(3px);pointer-events:auto;transition:opacity .12s ease,transform .12s ease}
.ws-owner-bm-tooltip.is-visible{visibility:visible;opacity:1;transform:translateY(0)}
.ws-owner-bm-tooltip strong{min-width:0;color:#173e50;font-size:13px;font-weight:650;overflow-wrap:anywhere}
.ws-owner-bm-tooltip button{min-height:28px;padding:3px 8px;border:1px solid #cfe4e2;border-radius:6px;background:#f3fbfa;color:#078d7f;font:inherit;white-space:nowrap;cursor:pointer}
.ws-owner-bm-tooltip button:hover{border-color:#078d7f;background:#e8f7f5}
.ws-owner-bm-tooltip small{grid-column:1/-1;margin-top:2px;padding-top:7px;border-top:1px solid #edf2f3;color:#078d7f;font-size:11px}
  .ws-account-report .ws-account-health,.ws-account-report .ws-account-delivery{min-width:92px}
.ws-account-report .ws-account-balance{min-width:115px;font-variant-numeric:tabular-nums;white-space:nowrap}
.ws-account-report .ws-account-campaigns{min-width:74px;text-align:right!important}
.ws-account-report tbody tr,.ws-account-report tbody td{height:50px!important;max-height:50px!important}
.ws-account-report tbody td{padding-top:6px!important;padding-bottom:6px!important;line-height:1.25!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis;vertical-align:middle!important}
  .ws-billing-unread{color:#768999}
.ws-account-state{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.ws-account-state:before{content:'';flex:0 0 6px;width:6px;height:6px;border-radius:50%;background:#84969e}
.ws-account-state.is-normal:before,.ws-account-state.is-running:before{background:#0a9a87}
.ws-account-state.is-dead,.ws-account-state.is-closed{color:#b34f49}
.ws-account-state.is-dead:before,.ws-account-state.is-closed:before{background:#d85e54}

/* 系列明细页：固定归属与结构字段始终位于自定义指标之前。 */
.ws-campaign-report{min-width:1450px}
.ws-campaign-report th[class^="ws-campaign-"],.ws-campaign-report td[class^="ws-campaign-"]{box-sizing:border-box;text-align:left!important;font-weight:400}
.ws-campaign-report .ws-campaign-buyer{min-width:92px}
.ws-campaign-report .ws-campaign-project{min-width:145px;max-width:210px}
.ws-campaign-report .ws-campaign-bm{min-width:132px;font-variant-numeric:tabular-nums}
.ws-campaign-report .ws-campaign-account{min-width:148px;font-variant-numeric:tabular-nums}
.ws-campaign-report .ws-campaign-health,.ws-campaign-report .ws-campaign-delivery{min-width:92px}
.ws-campaign-report .ws-campaign-name{min-width:230px;max-width:360px}
.ws-campaign-report .ws-campaign-adsets,.ws-campaign-report .ws-campaign-ads{min-width:86px;text-align:right!important;font-variant-numeric:tabular-nums}
#workspaceRoot .mb-select:has(>.mb-select)>.mb-select-trigger{display:none!important}
#workspaceRoot .mb-select:has(>.mb-select)>.mb-select{width:100%!important;min-width:0!important;height:100%!important}
.ws-filter-actions{display:flex;gap:8px;margin-left:auto;align-items:center;flex-shrink:0}
#workspaceSelector{margin:0 0 20px;padding:12px;border:1px solid #3a5062;border-radius:10px;background:#20374a}#workspaceSelector label{display:block;margin-bottom:7px;font-size:11px;color:#a7bac8}#workspaceSelector select{width:100%;border:0;background:#20374a;color:#fff;font-size:13px;font-weight:650;outline:0;padding:5px 0;cursor:pointer}#workspaceSelector option{background:#20374a;color:white}
#workspaceNav{display:flex;flex-direction:column;gap:5px;margin:0 0 20px}#workspaceNav button{border:0;background:transparent;color:#a9bdcd;border-radius:8px;padding:12px 13px;text-align:left;cursor:pointer}#workspaceNav button:hover{background:#233d51;color:#fff}#workspaceNav button.active{background:#175d62;color:#9bf0df;font-weight:700}#workspaceNav small{color:#819aad;font-size:10px;padding:14px 13px 5px}
#workspaceRoot{padding-bottom:20px;font-size:13px}#workspaceRoot .ws-header{min-height:98px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0}.ws-header h1{font-size:24px;letter-spacing:-.5px;margin:0 0 6px;color:#183044}.ws-header p{font-size:12px;margin:0;color:#6f8493;line-height:1.65}.ws-header-actions,.ws-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.ws-user{display:flex;align-items:center;gap:9px;padding-right:8px;color:#334e60}.ws-user>span{width:34px;height:34px;border-radius:50%;background:#e6f3f1;display:grid;place-items:center;font-weight:700;color:#087d72}.ws-user small{display:block;color:#81909c;margin-top:3px;font-size:10px}
#workspaceRoot button,.ws-dialog button{font:inherit;cursor:pointer}.ws-btn{border:1px solid #d8e1e6;background:#fff;color:#3b5365;border-radius:7px;padding:9px 13px;white-space:nowrap;font-size:12px}.ws-btn:hover{background:#f5f9fa;border-color:#a9c3cb}.ws-btn.primary{background:#0c857b;border-color:#0c857b;color:white}.ws-btn.primary:hover{background:#086f65}.ws-btn:disabled{opacity:.5;cursor:default}.ws-btn.small{padding:6px 10px;font-size:11px}.ws-btn.link{border:0;padding:4px 6px;background:transparent;color:#0b8277}.ws-tag{display:inline-flex;align-items:center;border-radius:5px;background:#eef3f6;color:#577181;font-size:10px;padding:4px 7px;line-height:1.4}.ws-tag.good{background:#e7f5f0;color:#15765d}.ws-tag.warn{background:#fff3dd;color:#94661d}.ws-tag.off{background:#f1f2f3;color:#939ca3}
.ws-card{border:1px solid #dee7eb;border-radius:12px;background:#fff;margin-bottom:16px;overflow:hidden;box-shadow:0 2px 7px #1e394404}.ws-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px;border-bottom:1px solid #edf1f4}.ws-card-head h2{font-size:15px;color:#213d4e;margin:0 0 5px}.ws-card-head p{font-size:11px;color:#83929c;margin:0;line-height:1.7}
.ws-filters{padding:17px 18px;display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.ws-field{display:flex;flex-direction:column;gap:6px;font-size:11px;color:#6e8290;min-width:125px}.ws-field input,.ws-field select,.ws-field textarea{height:36px;border:1px solid #d7e1e6;border-radius:7px;background:#fff;padding:0 10px;color:#2e4657;font:inherit;min-width:0;outline:none}.ws-field textarea{height:80px;padding:9px 10px;resize:vertical}.ws-field input:focus,.ws-field select:focus,.ws-field textarea:focus{border-color:#59b1a7;box-shadow:0 0 0 3px #0b877b12}.ws-field small{font-size:10px;line-height:1.6;color:#8a98a2}.ws-filters .ws-search{min-width:160px;flex:1}.ws-filters .ws-date{min-width:134px}.ws-scope{display:flex;align-items:center;gap:8px;font-size:11px;color:#648091;background:#edf5f7;padding:10px 15px;border-radius:8px;margin-bottom:14px}
.ws-table .ws-customer-remark{min-width:120px;max-width:260px;white-space:normal!important;overflow-wrap:anywhere;line-height:1.5;font-weight:400!important}
#workspaceRoot .ws-remark-filter{min-width:170px!important;width:170px!important;flex:0 0 170px!important}
.ws-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin:0 0 16px}.ws-kpi{background:white;border:1px solid #dee7eb;border-radius:10px;padding:18px}.ws-kpi:first-child{background:linear-gradient(135deg,#17384b,#15535b);border-color:#1c4d5c;color:white}.ws-kpi>span{color:#7b909e;font-size:11px;display:block}.ws-kpi:first-child>span{color:#a5c5ce}.ws-kpi b{font-size:27px;display:block;margin:10px 0 7px;letter-spacing:-.7px;font-variant-numeric:tabular-nums}.ws-kpi small{font-size:10px;color:#8798a3;line-height:1.5}.ws-kpi:first-child small{color:#9ec8c7}
.ws-kpis.ws-kpis-five{grid-template-columns:repeat(5,minmax(0,1fr))}
.ws-table-tools{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 18px;border-bottom:1px solid #edf1f4;flex-wrap:wrap}.ws-table-tools label{display:flex;align-items:center;gap:7px;color:#728a98;font-size:11px}.ws-table-tools select{padding:7px;border:1px solid #d8e2e7;border-radius:6px;background:white;color:#365163}.ws-table-scroll{overflow:auto;max-height:61vh;min-height:180px}.ws-table{font-size:12px;width:100%;border-collapse:separate;border-spacing:0}.ws-table th,.ws-table td{white-space:nowrap;text-align:right!important;padding:13px 16px;border-bottom:1px solid #edf1f4;max-width:360px;overflow:hidden;text-overflow:ellipsis}.ws-table th{color:#6a8392;background:#f7fafb;font-size:11px;font-weight:600;position:sticky;top:0;z-index:1}.ws-table th:first-child,.ws-table td:first-child{text-align:left!important}.ws-table td{color:#3e5667}.ws-table tr:hover td{background:#f8fcfc}.ws-table td.ws-name{font-weight:600;color:#284756}.ws-table td.ws-text{text-align:left!important;white-space:normal;line-height:1.65}.ws-table td.ws-spend{font-weight:700;color:#193f48}.ws-table td small{display:block;font-size:10px;color:#8c9ba5;margin-top:4px;font-weight:400}.ws-table td .ws-tag{margin:2px 3px 2px 0}.ws-pager{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:13px 18px;font-size:11px;color:#8294a0}.ws-pager>span:first-child{margin-right:auto}.ws-pager select{border:1px solid #d8e1e6;border-radius:5px;padding:5px;background:white;color:#526b7d}
.ws-table-tools>label,.ws-table-tools .ws-actions>label,.ws-pager>label{display:flex;align-items:center;gap:7px;flex:0 0 auto;min-width:max-content;white-space:nowrap}.ws-table-tools>label>.mb-select,.ws-table-tools .ws-actions>label>.mb-select,.ws-pager>label>.mb-select{flex:0 0 auto}
#wsReportContent .ws-table-tools{justify-content:flex-start;column-gap:8px;flex-wrap:wrap}
#wsReportContent .ws-table-tools>.ws-actions{margin-left:0;flex-wrap:nowrap}
#wsReportContent .ws-table-tools>label>.mb-select{width:154px;min-width:154px}
#wsReportContent .ws-table-tools>.ws-actions label>.mb-select{width:150px;min-width:150px}
#wsReportContent .ws-pager{gap:8px;flex-wrap:nowrap}
#wsReportContent .ws-pager>label>.mb-select{width:76px;min-width:76px;height:32px}
#wsReportContent .ws-pager>label>.mb-select .mb-select-trigger{height:38px!important;min-height:38px!important;padding-left:10px!important}
#wsReportContent .ws-pager>.ws-btn.small{height:32px;min-width:58px;padding:6px 10px}
.ws-empty{padding:48px 22px;text-align:center;color:#8597a4;line-height:1.8}.ws-empty b{display:block;font-size:15px;color:#486477;margin-bottom:7px}.ws-empty p{max-width:550px;margin:0 auto 15px;font-size:12px}.ws-note{font-size:11px;color:#6c8796;line-height:1.8;padding:12px 16px;background:#f4f9fa;border-radius:8px;margin-bottom:15px}.ws-note.warning{color:#946a2c;background:#fff7e9;border:1px solid #f0e2c8}.ws-note.error{color:#a24646;background:#fff0f0;border:1px solid #f0d8d8}.ws-subtabs{display:flex;gap:5px;margin-bottom:16px;border-bottom:1px solid #dfe8eb;padding-bottom:9px}.ws-subtabs button{border:0;border-radius:6px;background:transparent;color:#778d9b;padding:9px 13px}.ws-subtabs button.active{background:#e4f3ef;color:#137e6f;font-weight:700}
.ws-checks{display:flex;flex-wrap:wrap;gap:9px 16px;padding:8px 0}.ws-checks label{display:flex;align-items:center;gap:7px;font-size:12px;color:#4b6373;line-height:1.6}.ws-checks input{accent-color:#0b877b;width:15px;height:15px;margin:0}.ws-dialog{width:min(670px,calc(100vw - 32px));min-width:0;max-height:90vh;padding:0;border:1px solid #dbe5e9;border-radius:14px;color:#294555}.ws-dialog::backdrop{background:#112b3f70;backdrop-filter:blur(2px)}.ws-dialog-head{display:flex;align-items:center;justify-content:space-between;padding:22px 24px 17px;border-bottom:1px solid #e7edef}.ws-dialog-head h2{font-size:18px;margin:0}.ws-dialog-head button{border:0;background:#f1f5f6;width:28px;height:28px;border-radius:50%;font-size:19px;color:#78909e}.ws-dialog form{padding:20px 24px 0}.ws-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 16px}.ws-form-grid .wide{grid-column:1/-1}.ws-dialog .ws-field{min-width:0}.ws-dialog .ws-field input,.ws-dialog .ws-field select{font-size:12px;height:39px}.ws-dialog .ws-form-grid>div{margin:0;display:block}.ws-dialog .ws-dialog-foot{display:flex;justify-content:flex-end;gap:9px;margin:23px -24px 0;padding:15px 24px;border-top:1px solid #e7edef;background:#f9fbfc}.ws-dialog .ws-error{font-size:12px;line-height:1.7;color:#ad4545;padding:11px 0 0;margin:0}.ws-form-intro{margin:0 0 18px;font-size:12px;color:#7f93a0;line-height:1.8}.ws-account-list{max-height:210px;overflow:auto;border:1px solid #e0e7eb;border-radius:8px;padding:10px 13px;margin-top:8px;display:grid;gap:10px}.ws-account-list label{display:flex;align-items:flex-start;gap:8px;font-size:12px;line-height:1.6;color:#425e6f}.ws-account-list input{height:auto!important;margin-top:4px}.ws-account-list small{display:block;font-size:10px;color:#8b9ea9}
.ws-permission-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ws-permission-option{padding:12px;border:1px solid #dce6e9;border-radius:8px;display:flex!important;gap:9px;align-items:flex-start!important}.ws-permission-option small{display:block;font-size:10px;color:#8b9ba5;margin-top:4px;line-height:1.6}.ws-team-strip{padding:18px 20px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.ws-team-strip>span{color:#8195a1;font-size:11px;margin-right:auto}.ws-team-pill{background:#f4f8fa;border:1px solid #e1eaee;border-radius:8px;padding:9px 12px;display:flex;gap:16px;align-items:center}.ws-team-pill b{font-size:12px;color:#385565}.ws-team-pill small{display:block;color:#8da0ac;font-size:10px;margin-top:4px}.ws-toast{position:fixed;right:24px;bottom:24px;z-index:10000;background:#19394b;color:white;padding:13px 19px;border-radius:9px;box-shadow:0 7px 25px #172d4130;max-width:420px;font-size:12px;line-height:1.7}.ws-legacy-bind{font-size:10px!important;padding:5px 8px!important;white-space:nowrap;color:#087b70!important}.ws-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:65px;color:#8196a4;font-size:12px}.ws-spinner{width:17px;height:17px;border:2px solid #dbe8e9;border-top-color:#0b877b;border-radius:50%;animation:ws-spin .7s linear infinite}@keyframes ws-spin{to{transform:rotate(360deg)}}
@media(max-width:1100px){.ws-kpis,.ws-kpis.ws-kpis-five{grid-template-columns:repeat(2,minmax(0,1fr))}.ws-header{align-items:flex-start!important;flex-direction:column}.ws-field{min-width:120px}.ws-filters .ws-field{flex:1}}@media(max-width:650px){.ws-form-grid,.ws-permission-grid{grid-template-columns:1fr}.ws-kpi b{font-size:22px}.ws-dialog form{padding:17px}.ws-dialog .ws-dialog-foot{margin-left:-17px;margin-right:-17px;padding:15px 17px}.ws-header h1{font-size:20px}.ws-table-tools{align-items:flex-start}.ws-pager{gap:6px;flex-wrap:wrap}}
@media(max-width:760px){#wsReportContent .ws-table-tools{align-items:flex-start;flex-wrap:wrap;column-gap:12px}#wsReportContent .ws-table-tools>.ws-actions{flex-wrap:wrap}#wsReportContent .ws-pager{flex-wrap:wrap}}

/* Meta 投放与客户财务共用的单行紧凑筛选栏。 */
.ws-filter-card{overflow:visible}.ws-report-filters{align-items:center;flex-wrap:nowrap;padding:12px 14px;overflow-x:auto}.ws-report-filters>.ws-filter-control{box-sizing:border-box;height:36px;min-width:0;border:1px solid #d7e1e6;border-radius:7px;background:#fff;padding:0 10px;color:#2e4657;font:inherit;outline:none}.ws-report-filters>.ws-filter-control:focus{border-color:#59b1a7;box-shadow:0 0 0 3px #0b877b12}.ws-report-filters>.ws-search{flex:0 0 210px;width:210px}.ws-report-filters>.ws-date{flex:0 0 136px;width:136px}.ws-report-filters>.ws-select{flex:0 1 150px;width:150px;min-width:112px}.ws-report-filters .ws-filter-actions{margin-left:auto}.ws-report-filters .ws-btn{height:36px;padding:8px 13px}
.ws-role-multi{position:relative;box-sizing:border-box;flex:0 0 190px;width:190px;min-width:190px;height:36px;color:#2e4657}.ws-role-multi>summary{box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;width:100%;height:36px;padding:0 10px;border:1px solid #d7e1e6;border-radius:7px;background:#fff;list-style:none;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ws-role-multi>summary::-webkit-details-marker{display:none}.ws-role-multi>summary::after{content:'⌄';flex:none;margin-left:8px;color:#6b8491;font-size:12px}.ws-role-multi[open]>summary{border-color:#42b5a9;box-shadow:0 0 0 3px rgba(13,140,126,.1)}.ws-role-multi[open]>summary::after{transform:rotate(180deg)}.ws-role-multi-pop{position:fixed;z-index:1200;box-sizing:border-box;max-height:min(360px,calc(100vh - 20px));padding:8px;border:1px solid #d7e1e6;border-radius:10px;background:#fff;box-shadow:0 12px 30px rgba(27,53,66,.18);overflow:auto}.ws-role-multi-pop>button{box-sizing:border-box;width:100%;height:34px;margin:0 0 5px;border:0;border-radius:7px;background:#eaf6f3;color:#087e73;text-align:left;padding:0 10px;font:inherit;cursor:pointer}.ws-role-multi-pop>div{display:grid;gap:3px}.ws-role-multi-pop label{display:flex;align-items:center;gap:8px;min-height:34px;padding:0 9px;border-radius:7px;white-space:nowrap;cursor:pointer}.ws-role-multi-pop label:hover{background:#f3f8f7}.ws-role-multi-pop input{width:15px;height:15px;margin:0;accent-color:#0b9185}.ws-role-multi-pop small{display:block;padding:9px;color:#82949e}.ws-role-team{flex-basis:150px!important}
@media(max-width:900px){.ws-filter-card{overflow:hidden}.ws-report-filters{flex-wrap:wrap;overflow-x:visible}.ws-report-filters>.ws-search{flex:1 1 210px;width:auto}.ws-report-filters>.ws-date{flex:1 1 136px;width:auto}.ws-report-filters>.ws-select{flex:1 1 140px;width:auto}.ws-report-filters .ws-filter-actions{margin-left:0}}

/* 报表中的 BM 选择框（含旧标签页残留的自定义控件）统一为 220px。 */
.ws-report-filters>.mb-select:has(>select[name="businessId"]),.ws-report-filters>select[name="businessId"]+.checklist-select{box-sizing:border-box!important;flex:0 0 220px!important;width:220px!important;min-width:220px!important;max-width:220px!important}
.ws-report-filters>select[name="businessId"]+.checklist-select>.multi-filter-pop{box-sizing:border-box!important;width:220px!important;min-width:220px!important;max-width:220px!important}
.ws-dialog:has(select[name="businessId"]){width:min(780px,calc(100vw - 32px))}
.ws-dialog:has(.ws-account-form-grid){width:min(980px,calc(100vw - 48px))}
@media(max-width:900px){.ws-report-filters>.mb-select:has(>select[name="businessId"]),.ws-report-filters>select[name="businessId"]+.checklist-select{flex:0 0 220px!important;width:220px!important;min-width:220px!important;max-width:220px!important}}

/* Meta 投放 / 客户财务：宽屏时筛选、汇总维度与报表动作保持同一行。 */
#wsReportContent .ws-table-tools{flex-wrap:wrap}
#wsReportContent .ws-table-tools>.ws-report-filters{box-sizing:border-box;display:flex;align-items:center;flex:1 1 1250px;width:auto;max-width:100%;min-width:min(100%,1250px);height:40px;min-height:40px;margin:0;padding:1px 0;gap:8px;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;background:transparent!important}
#wsReportContent .ws-table-tools>.ws-report-filters>.mb-select{height:38px!important;min-height:38px!important;overflow:visible}
#wsReportContent .ws-table-tools>.ws-report-filters .ws-filter-actions{margin-left:0}
/* Report actions share the same 38px control contract.  The global button hover
   animation moves ordinary buttons upward, but inside this clipped horizontal
   toolbar that movement cuts off the top border.  Keep feedback to colour and
   an inset focus ring so every edge remains visible in admin and buyer views. */
html body #wsReportContent .ws-table-tools>.ws-report-filters .ws-filter-actions .ws-btn{box-sizing:border-box!important;height:38px!important;min-height:38px!important;padding-block:0!important;transform:none!important}
html body #wsReportContent .ws-table-tools>.ws-report-filters .ws-filter-actions .ws-btn:is(:hover,:focus,:focus-visible,:active){transform:none!important;outline:0!important;outline-offset:0!important}
html body #wsReportContent .ws-table-tools>.ws-report-filters .ws-filter-actions .ws-btn:focus-visible{box-shadow:inset 0 0 0 2px rgba(34,179,164,.22)!important}
#wsReportContent .ws-table-tools>.ws-group-control,#wsReportContent .ws-table-tools>.mb-select:has(>select.ws-group-control){box-sizing:border-box;flex:0 0 142px;width:142px;min-width:142px;height:36px;margin-left:auto}
#wsReportContent .ws-table-tools>.ws-actions{flex:0 0 auto}
#wsReportContent .ws-table-tools>.ws-report-filters:has(select[name="deliveryStatus"]){flex-basis:1510px;min-width:0;height:auto;flex-wrap:wrap;overflow:visible}
#wsReportContent .ws-report-filters>.mb-select:has(>select:is([name="accountHealth"],[name="deliveryStatus"])){flex:0 0 148px;width:148px;min-width:148px}
@media(max-width:900px){#wsReportContent .ws-table-tools{flex-wrap:wrap}#wsReportContent .ws-table-tools>.ws-report-filters{flex:1 1 100%;height:auto;min-height:40px;flex-wrap:wrap;overflow:visible}#wsReportContent .ws-table-tools>.ws-report-filters>.ws-search,#wsReportContent .ws-table-tools>.ws-report-filters>.ws-date,#wsReportContent .ws-table-tools>.ws-report-filters>.ws-select{flex:1 1 140px;width:auto}}

/* Filter bars may scroll on compact screens, but must never reserve a visible
   scrollbar gutter underneath the controls. This applies to admin and buyer. */
:is(#wsReportContent .ws-report-filters,.combined-data-filters,.combined-data-filters>.toolbar,.adjust-local-filter,.manual-sync-filters,.buyer-adjust-filters,.sync-filters){
  scrollbar-width:none!important;
  -ms-overflow-style:none!important;
}
:is(#wsReportContent .ws-report-filters,.combined-data-filters,.combined-data-filters>.toolbar,.adjust-local-filter,.manual-sync-filters,.buyer-adjust-filters,.sync-filters)::-webkit-scrollbar{
  display:none!important;
  width:0!important;
  height:0!important;
}

/* 弹窗字段统一为左侧标签、右侧控件；窄屏仍保持这一阅读顺序。 */
.ws-dialog .ws-form-grid>label.ws-field{display:grid;grid-template-columns:110px minmax(0,1fr);column-gap:12px;row-gap:5px;align-items:center}
.ws-dialog .ws-form-grid>label.ws-field>.ws-field-label{line-height:1.45;text-align:right}
.ws-dialog .ws-form-grid>label.ws-field>input,.ws-dialog .ws-form-grid>label.ws-field>select,.ws-dialog .ws-form-grid>label.ws-field>.mb-select{grid-column:2;width:100%}
.ws-dialog .ws-form-grid>label.ws-field>small{grid-column:2}
.ws-dialog .ws-form-grid>div.wide:not(.ws-note){display:grid;grid-template-columns:110px minmax(0,1fr);column-gap:12px;align-items:start}
.ws-dialog .ws-form-grid>div.wide:not(.ws-note)>.ws-field{display:block;padding-top:10px;text-align:right}

/* Meta delivery and client finance pages do not show report annotation banners. */
#workspaceRoot .ws-note.warning{display:none!important}
.ws-dialog .ws-form-grid>div:not(.wide){display:grid;grid-template-columns:110px minmax(0,1fr);column-gap:12px;align-items:center}
.ws-dialog .ws-form-grid>div:not(.wide)>.ws-field{display:block;text-align:right}.ws-dialog .ws-form-grid>div:not(.wide)>p{margin:0}
.ws-dialog .ws-account-form-grid{grid-template-columns:1fr 1fr}.ws-dialog .ws-account-form-grid>label{grid-column:auto!important}
@media(min-width:1101px){.ws-dialog .ws-account-modules .ws-permission-option small{white-space:nowrap}}
@media(max-width:650px){.ws-dialog .ws-form-grid>label.ws-field,.ws-dialog .ws-form-grid>div.wide:not(.ws-note),.ws-dialog .ws-form-grid>div:not(.wide){grid-template-columns:92px minmax(0,1fr)}}
@media(max-width:430px){.ws-dialog .ws-form-grid>label.ws-field,.ws-dialog .ws-form-grid>div.wide:not(.ws-note),.ws-dialog .ws-form-grid>div:not(.wide){grid-template-columns:80px minmax(0,1fr);column-gap:9px}}

/* 账户归属选择：名称在前、ID 在后，所有文本左对齐。 */
.ws-dialog .ws-account-list{max-height:none;padding:0;gap:0;overflow:hidden}.ws-account-list-toolbar{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid #e5ecef;background:#f8fbfb}.ws-account-list-toolbar span{color:#718690;font-size:10px}.ws-account-list-head,.ws-account-list-options label{display:grid;grid-template-columns:24px minmax(180px,1fr) minmax(170px,1fr);align-items:center;column-gap:10px;text-align:left}.ws-account-list-head{padding:9px 12px;border-bottom:1px solid #e5ecef;background:#f3f7f8;color:#718690;font-size:10px}.ws-account-list-options{max-height:210px;overflow:auto}.ws-account-list-options label{min-height:46px;padding:7px 12px;border-bottom:1px solid #edf2f3;color:#3d5868}.ws-account-list-options label:last-child{border-bottom:0}.ws-account-list-options label:hover{background:#f7fbfb}.ws-account-list-options input{margin:0!important}.ws-account-option-name,.ws-account-option-id{min-width:0;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.ws-account-option-id{color:#637b89;font-variant-numeric:tabular-nums}
@media(max-width:650px){.ws-account-list-head,.ws-account-list-options label{grid-template-columns:24px minmax(120px,1fr) minmax(135px,1fr)}}

/* Meta 投放与客户财务 BM API：沿用子后台的状态卡、搜索栏和单行配置视觉。 */
.ws-source-api-head{overflow:visible}.ws-source-api-head .ws-card-head{padding:16px 18px}.ws-source-api-head-actions{display:flex;align-items:center;gap:10px}.ws-source-count{display:inline-flex;align-items:center;justify-content:center;min-width:96px;height:36px;border:1px solid #b9e9e2;border-radius:9px;background:#e8faf6;color:#087e72;font-weight:750}.ws-source-api-head #wsSourceAdd{height:36px;min-width:128px}
.ws-source-schedule{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:20px;margin-bottom:16px;padding:16px 18px;border:1px solid #d9e7e8;border-radius:12px;background:linear-gradient(100deg,#fff 0%,#f7fcfb 58%,#eef9f7 100%);box-shadow:0 5px 18px rgba(28,66,76,.05)}.ws-source-schedule-loading{grid-column:1/-1;color:#78909d}.ws-source-schedule-main{display:flex;align-items:center;gap:10px;min-width:220px}.ws-source-meta-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#e9efff;color:#3971df;font-size:25px;font-weight:800}.ws-source-schedule-main b{display:block;color:#2370d8;font-size:15px}.ws-source-schedule-main small{display:block;margin-top:3px;color:#7c8f9a;font-size:10px}.ws-source-schedule-state{margin-left:10px;padding:5px 9px;border-radius:14px;background:#e8f3ff;color:#3271cb;font-size:10px;font-weight:700}.ws-source-schedule-detail{display:grid;grid-template-columns:auto auto repeat(4,minmax(120px,1fr));align-items:center;gap:12px;border-left:1px solid #e1ebed;padding-left:20px;color:#6f8491}.ws-source-schedule-detail>span{font-size:11px}.ws-source-schedule-detail>strong{color:#2670db;font:500 22px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:1.5px;white-space:nowrap}.ws-source-schedule-detail>small,.ws-source-schedule-detail>time{font-size:10px;white-space:nowrap}
.ws-source-filter-card{overflow:visible}.ws-source-filters{display:flex;align-items:center;gap:10px;padding:11px 13px;background:#f4f9f8}.ws-source-filters input,.ws-source-filters select{box-sizing:border-box;height:36px;min-height:36px;border:1px solid #cfdbdf;border-radius:8px;background:#fff;padding:0 11px;color:#314b57;font:inherit;outline:none}.ws-source-filters input{width:min(420px,34vw)}.ws-source-filters select{min-width:150px}.ws-source-filters input:focus,.ws-source-filters select:focus{border-color:#56b7ab;box-shadow:0 0 0 3px rgba(13,140,126,.1)}#wsSourceVisibleCount{margin-left:auto;color:#71828a;font-size:10px;white-space:nowrap}
.ws-source-api-list{display:grid;gap:9px;margin-bottom:16px}.ws-source-api-row{display:grid;grid-template-columns:88px minmax(150px,1fr) minmax(170px,1.1fr) minmax(260px,2fr) 116px auto;align-items:center;gap:9px;padding:10px 12px 8px;border:1px solid #dde7ea;border-radius:11px;background:#fff;box-shadow:0 2px 8px rgba(24,55,67,.035)}.ws-source-api-row:focus-within{border-color:#9ed7d0;box-shadow:0 0 0 3px rgba(12,139,125,.07)}.ws-source-api-row.is-legacy{background:#fbfcfd}.ws-source-origin{display:inline-flex;align-items:center;justify-content:center;height:28px;padding:0 9px;border-radius:14px;background:#e2f6f1;color:#087c70;font-size:9px;font-weight:800;white-space:nowrap}.ws-source-origin.legacy{background:#e8efff;color:#3566c8}.ws-source-api-field{display:flex;align-items:center;gap:6px;min-width:0}.ws-source-api-field>span{flex:none;color:#687a84;font-size:10px;font-weight:700;white-space:nowrap}.ws-source-api-field input,.ws-source-api-field select{box-sizing:border-box;width:100%;height:36px;min-height:36px;border:1px solid #d4e0e4;border-radius:8px;background:#fff;padding:0 10px;color:#2e4657;font:inherit;outline:none}.ws-source-api-field input:focus,.ws-source-api-field select:focus{border-color:#56b7ab;box-shadow:0 0 0 3px rgba(13,140,126,.09)}.ws-source-api-field input[readonly],.ws-source-api-field select:disabled{background:#eff3f5;color:#6f7f87}.ws-source-token{min-width:260px}.ws-source-api-actions{display:flex;align-items:center;gap:7px}.ws-source-api-actions .ws-btn{height:36px;padding:0 11px}.ws-source-remove{width:30px;height:30px;border:0;border-radius:50%;background:#fff;color:#c66d66;font-size:18px}.ws-source-remove:hover{background:#fff0ee}.ws-source-api-meta{grid-column:2/-1;color:#82949e;font-size:9px}.ws-source-savebar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;color:#71858f;font-size:10px}.ws-source-savebar .ws-btn{height:36px;min-width:130px}
body.ws-active #workspaceRoot .ws-source-api-row:has(.ws-source-client){grid-template-columns:88px minmax(145px,.8fr) minmax(165px,.95fr) minmax(240px,1.6fr) minmax(170px,1fr) 108px auto}
.ws-source-api-row[hidden]{display:none!important}
.ws-source-api-field>.mb-select,.ws-source-api-field>.checklist-select{flex:1 1 auto;width:auto!important;min-width:0!important}.ws-source-api-field>.mb-select .mb-select-trigger{box-sizing:border-box;width:100%;min-width:0}.ws-source-api-field>.mb-select .mb-select-menu{box-sizing:border-box;width:100%!important;min-width:100%!important;max-width:100%!important}.ws-source-fixed-value{box-sizing:border-box;display:flex;align-items:center;min-width:0;flex:1 1 auto;height:36px;padding:0 10px;border:1px solid #d4e0e4;border-radius:8px;background:#eff3f5;color:#61747e;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ws-source-api-row.is-legacy .ws-source-project .ws-source-fixed-value{background:#eef3ff;border-color:#dbe5fb;color:#3566c8;font-weight:700}.ws-source-api-row.is-legacy .ws-source-status .ws-source-fixed-value{background:#eaf7f3;border-color:#d5ece6;color:#087c70;font-weight:700}
@media(max-width:1450px){.ws-source-schedule{grid-template-columns:1fr}.ws-source-schedule-detail{border-left:0;border-top:1px solid #e1ebed;padding:12px 0 0}.ws-source-api-list{overflow-x:auto}.ws-source-api-row{min-width:1270px}.ws-source-api-row:has(.ws-source-client){min-width:1450px}}@media(max-width:800px){.ws-source-filters{flex-wrap:wrap}.ws-source-filters input{width:100%;flex:1 1 240px}#wsSourceVisibleCount{margin-left:0;width:100%}.ws-source-schedule-detail{grid-template-columns:auto auto}.ws-source-schedule-detail>small,.ws-source-schedule-detail>time{white-space:normal}}

/* BM API fields: compact IDs/client, with the token field taking the flexible space. */
body.ws-active #workspaceRoot .ws-source-api-row{grid-template-columns:88px 125px 155px 185px minmax(220px,1fr) 96px minmax(300px,max-content)}
body.ws-active #workspaceRoot .ws-source-api-row:has(.ws-source-client){grid-template-columns:88px 125px 155px 185px minmax(220px,1fr) 175px 96px minmax(300px,max-content)}
body.ws-active #workspaceRoot .ws-source-api-row:has(.ws-source-project){grid-template-columns:88px 135px 125px 155px 185px minmax(220px,1fr) 165px 96px minmax(300px,max-content)}
.ws-source-token{min-width:0}.ws-source-api-actions{white-space:nowrap}.ws-source-history{min-width:78px!important}.ws-source-history.success{border-color:#a9e4da!important;background:#e6f8f4!important;color:#087c70!important;font-weight:750}.ws-source-history.partial,.ws-source-history.deferred{border-color:#f0d89f!important;background:#fff6df!important;color:#956000!important;font-weight:750}.ws-source-history.failed{border-color:#f1c2ba!important;background:#fde9e5!important;color:#b53d2f!important;font-weight:750}.ws-source-history.idle{background:#f4f7f8!important;color:#6f818a!important}
.ws-dialog{overflow-y:auto;scrollbar-gutter:auto}

/* First-impression date and its uncertainty label must remain readable. */
html body #workspaceRoot .ws-launch-date,html body .launch-date-cell{min-width:110px!important;white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important}

/* Preserve pasted line breaks without changing the shared toolbar height. */
html body #workspaceRoot #wsFilters textarea[name="accountId"] {
  box-sizing:border-box!important;
  height:38px!important;
  min-height:38px!important;
  max-height:38px!important;
  padding:8px 10px!important;
  line-height:20px!important;
  resize:none;
  font:inherit;
}

/* Account IDs wrap visually; pasted line breaks and submitted values stay intact. */
html body :is(#workspaceRoot #wsFilters textarea[name="accountId"],textarea#searchInput,textarea#accountSearch,textarea#manualAccountSearch) {
  box-sizing:border-box!important;
  flex:0 0 210px!important;
  width:210px!important;
  min-width:210px!important;
  max-width:210px!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  white-space:pre-wrap!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
  resize:none!important;
  scrollbar-width:none!important;
}
html body :is(#workspaceRoot #wsFilters textarea[name="accountId"],textarea#searchInput,textarea#accountSearch,textarea#manualAccountSearch)::-webkit-scrollbar {
  display:none!important;
  width:0!important;
  height:0!important;
}
html body :is(#workspaceRoot #wsFilters, .combined-data-filters>.toolbar, #syncPage .sync-filters)>.mb-series-search {
  box-sizing:border-box!important;
  flex:0 0 238px!important;
  width:238px!important;
  height:38px!important;
  min-height:38px!important;
  max-height:38px!important;
  padding:8px 12px!important;
  border:1px solid #cadde5;
  border-radius:8px;
  background:#fff;
  color:#285365;
  font:400 13px/20px system-ui,sans-serif!important;
  text-align:left!important;
  resize:none;
  overflow:auto;
  white-space:pre-wrap;
}
html body .mb-series-source{display:none!important}
html body :is(#workspaceRoot,#apiSyncPage,#syncPage,#dashboard) .mb-select:has(>select.mb-series-bm) {
  box-sizing:border-box!important;
  flex:0 0 220px!important;
  width:220px!important;
  min-width:220px!important;
  max-width:220px!important;
}
html body .mb-select:has(>select.mb-series-bm)>.mb-select-trigger{height:38px!important;min-height:38px!important;max-height:38px!important}

/* Meta 投放每日汇总：与小游戏每日汇总保持相同的信息层级。 */
.ws-meta-daily-plan{margin-top:14px;margin-bottom:14px}
.ws-meta-daily-toolbar{padding:12px 14px;margin-bottom:14px}
.ws-meta-daily-filter{display:flex;align-items:center;gap:10px;flex-wrap:nowrap;min-width:0}
.ws-meta-daily-filter .mb-date-range,.ws-meta-daily-filter .ws-date{flex:0 0 210px;width:210px}
.ws-meta-daily-filter>.ws-select{flex:0 0 150px;width:150px}
.ws-meta-daily-filter .ws-meta-daily-pull{border-color:#b9cdfd;color:#3470d8;background:#fff}
.ws-meta-daily-filter .ws-meta-daily-pull:hover{border-color:#7fa6f1;background:#f5f8ff}
.ws-meta-daily-table .ws-card-head{padding-bottom:12px}
.ws-meta-daily-table .ws-table{min-width:max-content;width:100%}
.ws-meta-daily-table th,.ws-meta-daily-table td{min-width:96px}
.ws-meta-daily-table .ws-daily-buyer{min-width:118px}
.ws-meta-daily-table .ws-daily-actions{min-width:184px;width:184px;white-space:nowrap}
.ws-meta-daily-table td.ws-daily-actions{display:flex;align-items:center;justify-content:center;gap:8px;min-height:51px}
.ws-meta-history-loading{display:flex;align-items:center;justify-content:center;gap:9px;min-height:180px;color:#6f8491}
.ws-meta-history-table{padding:24px 28px 28px;overflow:auto}
.ws-meta-history-table .ws-table{width:100%;min-width:800px;border-collapse:separate;border-spacing:0}
.ws-meta-history-table .ws-table th,.ws-meta-history-table .ws-table td{padding:15px 18px}
.ws-meta-history-table .ws-table th:first-child,.ws-meta-history-table .ws-table td:first-child{min-width:190px;text-align:left!important;font-variant-numeric:tabular-nums}
.ws-meta-history-table .ws-table tbody tr:nth-child(even) td{background:#f8fbfc}
.ws-meta-history-table .ws-table tbody tr:hover td{background:#eef8f6}
.ws-meta-history-table .ws-table td:not(:first-child){font-variant-numeric:tabular-nums}
.ws-dialog:has(.ws-meta-history-table){width:min(900px,calc(100vw - 40px));max-height:min(82vh,780px);border-color:#d8e6e8;border-radius:18px;box-shadow:0 28px 90px rgba(17,43,63,.25)}
.ws-dialog:has(.ws-meta-history-table)>.ws-dialog-head{padding:25px 30px 20px;background:linear-gradient(135deg,#f5fbfa 0%,#fff 72%);border-bottom:1px solid #e1eceb}
.ws-dialog:has(.ws-meta-history-table)>.ws-dialog-head h2{font-size:20px;letter-spacing:.01em;color:#203d4d}
.ws-dialog-head>div small{display:block;margin-top:5px;color:#7e929e;font-size:11px}
@media(max-width:640px){.ws-meta-history-table{padding:16px 14px 20px}.ws-dialog:has(.ws-meta-history-table)>.ws-dialog-head{padding:20px 18px 16px}}
@media(max-width:900px){.ws-meta-daily-filter{flex-wrap:wrap}.ws-meta-daily-filter .mb-date-range,.ws-meta-daily-filter .ws-date{flex:0 0 210px}.ws-meta-daily-filter>.ws-select{flex:1 1 150px}}

/* Meta 投放团队长/投手 API 页面复用小游戏 BM API 的单行配置布局。 */
.ws-member-api-head{overflow:visible}.ws-member-api-head .ws-card-head{padding:16px 18px}.ws-member-api-filter{display:flex;align-items:center;gap:10px;padding:11px 13px;background:#f4f9f8}.ws-member-api-filter label{display:flex;align-items:center;gap:8px;color:#687a84;font-size:10px;font-weight:700}.ws-member-api-filter input{box-sizing:border-box;width:min(420px,34vw);height:36px;border:1px solid #cfdbdf;border-radius:8px;background:#fff;padding:0 11px}.ws-member-api-filter>span{margin-left:auto;color:#71828a;font-size:10px}.ws-member-api-list{display:grid;gap:9px;padding:12px;overflow:visible}.ws-member-api-row{display:grid;grid-template-columns:88px 190px 250px minmax(340px,1fr) 210px 132px 32px;align-items:center;gap:10px;padding:10px;border:1px solid #dde7ea;border-radius:10px;background:#fff}.ws-member-api-row.is-locked{background:#fbfcfd}.ws-member-api-field{display:flex;align-items:center;gap:7px;min-width:0;white-space:nowrap}.ws-member-api-field>span{flex:0 0 auto;color:#687a84;font-size:10px;font-weight:700}.ws-member-api-field>input,.ws-member-api-field>select{box-sizing:border-box;width:100%;min-width:0;height:36px;border:1px solid #d4e0e4;border-radius:8px;background:#fff;padding:0 10px;color:#2e4657;font:inherit}.ws-member-api-field>input[readonly],.ws-member-api-field>select:disabled{background:#edf1f3;color:#697981}.ws-member-api-row>.ws-btn{height:36px;padding:0 11px}.ws-member-api-row>.ws-source-remove:disabled{opacity:.4;cursor:not-allowed}.ws-member-project{position:relative}.ws-member-project>.mb-select,.ws-member-project>.checklist-select{width:100%!important;min-width:0!important}.ws-member-project .mb-select-menu,.ws-member-project .multi-filter-pop{box-sizing:border-box!important;width:100%!important;min-width:100%!important;max-width:100%!important}.ws-member-api-row[hidden]{display:none!important}@media(max-width:1500px){.ws-member-api-list{overflow-x:auto}.ws-member-api-row{min-width:1320px}}@media(max-width:800px){.ws-member-api-filter{flex-wrap:wrap}.ws-member-api-filter input{width:100%}.ws-member-api-filter>span{width:100%;margin-left:0}}

/* 账户停用与删除确认：居中、清晰分级，避免误操作。 */
.ws-confirm-dialog{position:fixed;inset:0;box-sizing:border-box;width:min(440px,calc(100vw - 32px));margin:auto;padding:0;border:0;border-radius:14px;background:#fff;color:#243d4c;box-shadow:0 22px 65px rgba(10,35,48,.24);overflow:hidden}.ws-confirm-dialog::backdrop{background:rgba(12,31,43,.48);backdrop-filter:blur(2px)}.ws-confirm-body{display:grid;grid-template-columns:44px minmax(0,1fr);gap:15px;padding:26px 26px 22px}.ws-confirm-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#fff4da;color:#c47b00;font-size:23px;font-weight:800}.ws-confirm-dialog.is-danger .ws-confirm-icon{background:#ffeded;color:#d74343}.ws-confirm-body h2{margin:1px 0 9px;color:#203947;font-size:18px;line-height:1.4}.ws-confirm-body p{margin:0 0 7px;color:#405966;font-size:14px;line-height:1.65}.ws-confirm-body small{display:block;color:#84949d;font-size:12px;line-height:1.7}.ws-confirm-input{box-sizing:border-box;width:100%;height:40px;margin:2px 0 9px;padding:0 11px;border:1px solid #ccdade;border-radius:8px;background:#fff;color:#263f4c;font:inherit;font-size:14px;outline:0}.ws-confirm-input:focus{border-color:#28ad9e;box-shadow:0 0 0 3px rgba(22,164,149,.12)}.ws-confirm-foot{display:flex;justify-content:flex-end;gap:10px;padding:15px 22px;background:#f7f9fa;border-top:1px solid #e8edef}.ws-confirm-foot .ws-btn,.ws-confirm-submit{box-sizing:border-box;min-width:88px;height:36px;border-radius:7px;padding:0 17px;font:inherit;font-size:13px;font-weight:650}.ws-confirm-submit{border:1px solid #d28a11;background:#e99b19;color:#fff;cursor:pointer}.ws-confirm-submit:hover{background:#d8890d}.ws-confirm-dialog.is-danger .ws-confirm-submit{border-color:#d84d4d;background:#e45858}.ws-confirm-dialog.is-danger .ws-confirm-submit:hover{background:#cf4141}.ws-confirm-submit:focus-visible,.ws-confirm-foot .ws-btn:focus-visible{outline:3px solid rgba(36,151,139,.2);outline-offset:2px}@media(max-width:520px){.ws-confirm-body{grid-template-columns:38px minmax(0,1fr);padding:22px 20px 18px}.ws-confirm-icon{width:36px;height:36px;font-size:20px}.ws-confirm-foot{padding:13px 18px}}

/* All member BM API rows mirror the finance API row sizing and field order. */
.ws-member-api-row{grid-template-columns:88px 125px 155px 185px minmax(260px,1fr) 175px 132px 32px;gap:9px;padding:10px 12px 8px;border-radius:11px}
@media(max-width:1500px){.ws-member-api-row{min-width:1450px}}

/* 子后台 BM API：列表展示，单条配置在安全验证弹窗中完成。 */
.ws-child-bm-card{overflow:visible}.ws-child-bm-toolbar{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid #e5edef;background:#f5faf9}.ws-child-bm-toolbar input{box-sizing:border-box;width:min(430px,42vw);height:40px;border:1px solid #cedde0;border-radius:9px;background:#fff;padding:0 13px;color:#2d4857;font:inherit;outline:0}.ws-child-bm-toolbar input:focus{border-color:#41b4a7;box-shadow:0 0 0 3px rgba(24,159,145,.11)}.ws-child-bm-toolbar span{margin-left:auto;color:#758891;font-size:11px}.ws-child-bm-table-wrap{overflow:auto}.ws-child-bm-table{width:100%;border-collapse:collapse;font-size:12px}.ws-child-bm-table th,.ws-child-bm-table td{padding:14px 16px;border-bottom:1px solid #e9eff1;text-align:center!important;white-space:nowrap}.ws-child-bm-table th{background:#f5f9fa;color:#68808c;font-weight:650}.ws-child-bm-table tbody tr:hover td{background:#f6fbfa}.ws-child-bm-table td:first-child{text-align:left!important}.ws-child-bm-name{display:block;color:#264957;font-weight:700}.ws-child-bm-table td small{display:block;margin-top:4px!important;color:#8b9ba3;font-size:10px;text-align:left!important}.ws-child-bm-actions{display:flex;justify-content:center;gap:8px}.ws-child-bm-actions .ws-btn{min-width:68px;height:34px;padding:0 13px}
.ws-child-bm-dialog{box-sizing:border-box;width:min(1040px,calc(100vw - 40px));max-width:none;max-height:calc(100vh - 40px);padding:0;border:0;border-radius:22px;background:#fff;color:#203d4b;box-shadow:0 28px 90px rgba(8,34,47,.3);overflow:hidden}.ws-child-bm-dialog::backdrop{background:rgba(15,36,48,.56);backdrop-filter:blur(4px)}.ws-child-bm-head{display:grid;grid-template-columns:54px minmax(0,1fr) 44px;align-items:center;gap:14px;padding:22px 28px;border-bottom:1px solid #e4ecee;background:#fff}.ws-child-bm-head h2{margin:0 0 4px;color:#173747;font-size:23px}.ws-child-bm-head p{margin:0;color:#78909c;font-size:12px}.ws-child-bm-shield{display:grid;place-items:center;width:52px;height:52px;border-radius:15px;background:#ddf5f0;color:#078f82}.ws-child-bm-shield svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.ws-child-bm-close{display:grid;place-items:center;width:42px;height:42px;padding:0;border:0;border-radius:50%;background:#f1f5f6;color:#708690;font-size:24px;cursor:pointer}.ws-child-bm-close:hover{background:#e7eff0;color:#35535f}.ws-child-bm-layout{display:grid;grid-template-columns:280px minmax(0,1fr);min-height:540px}.ws-child-bm-layout>aside{padding:42px 32px;background:linear-gradient(155deg,#0d6265 0%,#0b8278 100%);color:#fff}.ws-child-bm-aside-icon{display:grid;place-items:center;width:60px;height:60px;border:1px solid rgba(255,255,255,.28);border-radius:18px;background:rgba(255,255,255,.13);font-size:35px}.ws-child-bm-layout aside h3{margin:24px 0 12px;font-size:22px}.ws-child-bm-layout aside p{margin:0;color:#d6f0eb;font-size:13px;line-height:1.9}.ws-child-bm-layout aside ul{margin:28px 0 0;padding:24px 0 0;border-top:1px solid rgba(255,255,255,.2);list-style:none}.ws-child-bm-layout aside li{position:relative;margin:15px 0;padding-left:22px;color:#e4f6f2;font-size:12px}.ws-child-bm-layout aside li:before{position:absolute;left:0;content:'✓';color:#74ead7;font-weight:800}.ws-child-bm-layout>form{display:flex;flex-direction:column;min-width:0;padding:34px 42px 0}.ws-child-bm-account{display:grid;grid-template-columns:90px minmax(0,1fr) auto;align-items:center;min-height:58px;padding:0 16px;border:1px solid #dce7e9;border-radius:11px;background:#f7fafb}.ws-child-bm-account span{color:#78909a;font-size:11px}.ws-child-bm-account b{color:#193d4c}.ws-child-bm-account em{color:#078f82;font-size:11px;font-style:normal}.ws-child-bm-fields{display:grid;grid-template-columns:1fr 1fr;gap:17px 16px;margin-top:25px}.ws-child-bm-fields label{display:grid;gap:7px;color:#294754;font-size:12px;font-weight:650}.ws-child-bm-fields label.wide{grid-column:1/-1}.ws-child-bm-fields input,.ws-child-bm-fields select{box-sizing:border-box;width:100%;height:48px;border:1px solid #ccdade;border-radius:10px;background:#fff;padding:0 14px;color:#263f4c;font:inherit;font-weight:400;outline:0}.ws-child-bm-fields input:focus,.ws-child-bm-fields select:focus{border-color:#28ad9e;box-shadow:0 0 0 4px rgba(22,164,149,.12)}.ws-child-bm-fields input[readonly]{background:#f1f5f6;color:#6e8088}.ws-child-bm-test-state{display:flex;align-items:center;gap:9px;min-height:42px;margin-top:18px;padding:0 13px;border-radius:9px;background:#f2f6f7;color:#6e818a;font-size:11px}.ws-child-bm-test-state i{width:8px;height:8px;border-radius:50%;background:#aebdc2}.ws-child-bm-test-state.testing{background:#eef5ff;color:#426f9b}.ws-child-bm-test-state.testing i{background:#4b8fd0;animation:ws-pulse 1s infinite}.ws-child-bm-test-state.success{background:#e7f7f2;color:#087c70}.ws-child-bm-test-state.success i{background:#16aa92;box-shadow:0 0 0 4px rgba(22,170,146,.12)}.ws-child-bm-test-state.failed{background:#fff0ef;color:#b34c43}.ws-child-bm-test-state.failed i{background:#d05d52}.ws-child-bm-layout footer{display:flex;justify-content:flex-end;gap:10px;margin:24px -42px 0;padding:18px 42px;border-top:1px solid #e5edef;background:#f8fafb}.ws-child-bm-layout footer .ws-btn{box-sizing:border-box;min-width:118px;height:44px;border-radius:9px}.ws-child-bm-layout footer .ws-bm-test{border-color:#9fd9d1;background:#effaf7;color:#087f74}.ws-child-bm-layout footer .ws-bm-test:hover{background:#e3f6f1}.ws-child-bm-layout footer .ws-btn.primary:disabled{border-color:#d9e1e3;background:#dfe6e8;color:#92a0a5;box-shadow:none}
@keyframes ws-pulse{50%{opacity:.35;transform:scale(.75)}}
@media(max-width:760px){.ws-child-bm-dialog{width:calc(100vw - 20px);max-height:calc(100vh - 20px);overflow:auto}.ws-child-bm-head{padding:17px 18px}.ws-child-bm-layout{grid-template-columns:1fr}.ws-child-bm-layout>aside{display:none}.ws-child-bm-layout>form{padding:24px 20px 0}.ws-child-bm-fields{grid-template-columns:1fr}.ws-child-bm-fields label.wide{grid-column:auto}.ws-child-bm-layout footer{margin-left:-20px;margin-right:-20px;padding:15px 20px;flex-wrap:wrap}.ws-child-bm-toolbar{flex-wrap:wrap}.ws-child-bm-toolbar input{width:100%}.ws-child-bm-toolbar span{margin-left:0}}

/* Destructive data actions; persistent account actions are owned by auth-client.css. */
.ws-danger-link,.ws-btn[data-action^="delete-"],.buyer-remove:not(:disabled),.remove-config:not(:disabled),.ws-source-remove:not(:disabled){border-color:#efc7c7!important;background:#fff1f1!important;color:#bd5151!important;box-shadow:0 3px 9px rgba(190,81,81,.08)!important}
.ws-danger-link:hover,.ws-btn[data-action^="delete-"]:hover,.buyer-remove:not(:disabled):hover,.remove-config:not(:disabled):hover,.ws-source-remove:not(:disabled):hover{border-color:#e6aaaa!important;background:#ffe5e5!important;color:#a93f3f!important}

/* The legacy games shell uses the same persistent account controls as every workspace. */
.topbar .workspace-header-sync{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;min-width:150px;height:40px;padding:0 15px;border:1px solid #d3e0e3!important;border-radius:9px!important;background:#fff!important;color:#526b77!important;font-weight:650!important;box-shadow:0 2px 7px rgba(22,58,68,.05)!important}.topbar .workspace-header-sync:hover{border-color:#9fcac4!important;background:#f4faf9!important;color:#087b70!important}
.topbar .top-account{margin-left:0!important;padding-left:14px!important}.topbar .top-account>span{width:34px!important;height:34px!important;border-radius:50%!important;background:#e6f3f1!important;color:#087d72!important}.topbar .top-account b{color:#334e60!important}.topbar .top-account small{color:#81909c!important}
.topbar .account-password-button{margin-left:0!important}.topbar #adminLogout{margin-left:0!important}

/* A workspace select exposes exactly one custom control. Explicitly undo the
   old native-select compatibility layer that could show both controls at once. */
#workspaceRoot .mb-select{display:inline-flex!important}

/* Meta 投放项目使用轻量文字操作；启用与删除保留明确的语义色。 */
#workspaceRoot .ws-project-actions{display:flex;align-items:center;justify-content:center;gap:12px;white-space:nowrap}
#workspaceRoot .ws-project-actions .ws-project-action{appearance:none!important;box-sizing:border-box!important;width:auto!important;min-width:0!important;height:auto!important;min-height:0!important;max-height:none!important;margin:0!important;padding:3px 1px!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:#49636f!important;font:inherit!important;font-weight:400!important;line-height:1.4!important;cursor:pointer;transform:none!important}
#workspaceRoot .ws-project-actions .ws-project-action:hover{background:transparent!important;color:#087f74!important;text-decoration:underline;text-underline-offset:3px;box-shadow:none!important;transform:none!important}
#workspaceRoot .ws-project-actions .ws-project-enable-action{color:#0b947f!important}
#workspaceRoot .ws-project-actions .ws-project-delete-action{color:#cf4b4b!important}
#workspaceRoot .ws-project-actions .ws-project-delete-action:hover{color:#b73535!important}
#workspaceRoot .ws-project-actions .ws-project-action:disabled{opacity:.45;cursor:not-allowed;text-decoration:none}
#workspaceRoot .mb-select-trigger{display:flex!important}
#workspaceRoot .mb-select>select.mb-native-select{
  position:absolute!important;
  display:block!important;
  width:1px!important;
  height:1px!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  opacity:0!important;
  pointer-events:none!important;
  clip-path:inset(50%)!important;
  border:0!important;
}
#workspaceRoot .ws-field>.mb-select{width:100%!important}

/* Meta/Facebook Business Manager brand mark used by every BM editor. */
.ws-child-bm-shield.meta-bm-icon{background:#edf4ff;color:#0866ff}
.ws-child-bm-shield.meta-bm-icon .ws-meta-bm-logo-img{display:block;width:38px;height:28px;object-fit:contain}

/* BM modal selects are single-choice menus, so their options do not need checkbox chrome. */
.ws-child-bm-dialog .single-checklist-select .multi-options input[type="checkbox"]{display:none!important}
.ws-child-bm-dialog .single-checklist-select .multi-options label:has(input:checked){background:#eef8f6!important;color:#147f73!important}
.ws-child-bm-fields .ws-bm-workspaces{display:flex;align-items:center;gap:10px 22px;min-width:0;margin:0;padding:13px 14px;border:1px solid #ccdade;border-radius:10px;background:#f8fbfb}.ws-child-bm-fields .ws-bm-workspaces legend{padding:0 6px;color:#294754;font-size:12px;font-weight:650}.ws-child-bm-fields .ws-bm-workspaces label{display:flex;grid-template-columns:none;align-items:center;gap:8px;color:#355563;font-weight:500}.ws-child-bm-fields .ws-bm-workspaces input{width:16px;height:16px;margin:0;accent-color:#0b9185}.ws-child-bm-fields .ws-bm-workspaces small{margin-left:auto;color:#7b9099;font-size:10px;font-weight:400}

/* Unified product navigation: two fixed workspaces plus global actions. */
body.mb-unified-layout .app-shell>.sidebar,
body.mb-unified-layout #dashboard>aside{display:flex!important;flex-direction:column!important}
body.mb-unified-layout .app-shell>.sidebar,
body.mb-unified-layout #dashboard>aside{box-sizing:border-box!important;min-height:100vh!important;height:100vh!important;align-self:start!important;position:sticky!important;top:0!important}
body.mb-unified-layout #workspaceSelector{display:none!important}
body.mb-unified-layout .sidebar>.page-tabs,
body.mb-unified-layout .sidebar>.new-compare,
body.mb-unified-layout #dashboard>aside>nav:not(#workspaceNav):not(#workspaceGlobalNav),
body.mb-unified-layout #dashboard>aside>.account{display:none!important}
body.mb-unified-layout #workspaceNav{display:flex!important;flex-direction:column!important;gap:0!important;margin:2px 0 0!important;min-height:0!important;max-width:100%!important;overflow-x:hidden!important;overflow-y:auto!important;border:0!important}
#workspaceNav .ws-nav-section{display:grid;gap:4px}
#workspaceNav .ws-nav-section>b{display:block;padding:9px 12px 6px;color:#6f8a9a;font-size:10px;font-weight:650;letter-spacing:.08em}
#workspaceNav .ws-nav-divider{height:1px;margin:12px 8px;background:rgba(164,196,208,.16)}
#workspaceNav .ws-nav-section button{box-sizing:border-box;display:flex;align-items:center;gap:11px;width:100%;height:40px;padding:0 12px!important;border-left:3px solid transparent!important;border-radius:8px!important;color:#a9bdcd!important;text-align:left!important}
#workspaceNav .ws-nav-section button:hover{background:#203d50!important;color:#fff!important}
#workspaceNav .ws-nav-section button.active{border-left-color:#43dac7!important;background:linear-gradient(90deg,rgba(21,101,105,.92),rgba(26,72,88,.9))!important;color:#8ef1df!important;font-weight:700!important}
#workspaceNav .nav-item-icon svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round}
body.mb-unified-layout #workspaceGlobalNav{display:grid!important;gap:4px;margin:12px 0 14px!important;padding-top:12px!important;border-top:1px solid rgba(166,195,207,.15)!important;border-bottom:0!important}
body.mb-unified-layout #workspaceGlobalNav[hidden]{display:none!important}
body.mb-unified-layout #workspaceGlobalNav button{box-sizing:border-box;height:42px;padding:0 12px!important}
body.mb-unified-layout #workspaceGlobalNav button:first-child{order:-1}
body.mb-unified-layout.ws-active #workspaceNav{display:flex!important}
body.mb-unified-layout.ws-active #workspaceGlobalNav{display:grid!important}
body.mb-unified-layout.ws-active #workspaceGlobalNav[hidden]{display:none!important}
body.mb-unified-layout #workspaceNav button:hover,
body.mb-unified-layout #workspaceGlobalNav button:hover{transform:none!important}
@media(max-width:900px){
  body.mb-unified-layout .app-shell>.sidebar,
  body.mb-unified-layout #dashboard>aside{box-sizing:border-box!important;width:100%!important;max-width:100vw!important}
  body.mb-unified-layout .app-shell>main,
  body.mb-unified-layout #dashboard>main{box-sizing:border-box!important;width:100%!important;max-width:100vw!important;min-width:0!important}
  body.mb-unified-layout #workspaceRoot .ws-header>div:first-child{box-sizing:border-box!important;width:100%!important;max-width:100%!important}
  body.mb-unified-layout #workspaceNav{display:grid!important;grid-template-columns:1fr 1fr;overflow:visible!important}
  #workspaceNav .ws-nav-divider{display:none}
  body.mb-unified-layout #workspaceGlobalNav{margin:12px 0 14px!important}
}

/* 素材分析：身份列给足可读宽度，指标列紧凑排列；状态与风险保持纯文字语义色。 */
#workspaceRoot .ws-material-toolbar{overflow:visible;margin-bottom:14px}
#workspaceRoot .ws-material-filters{box-sizing:border-box;display:flex!important;align-items:center;gap:8px;flex-wrap:nowrap!important;width:100%;min-width:0;padding:12px 14px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}
#workspaceRoot .ws-material-filters::-webkit-scrollbar{height:0}
#workspaceRoot .ws-material-filters>.ws-filter-control{box-sizing:border-box;height:38px;min-height:38px;min-width:0;border:1px solid #d7e1e6;border-radius:8px;background:#fff;padding:0 10px;color:#2e4657;font-family:inherit;font-size:12px;font-weight:400;line-height:1.2;outline:none}
#workspaceRoot .ws-material-filters>.ws-search{flex:0 0 210px;width:210px}
#workspaceRoot .ws-material-filters>.ws-material-account{flex-basis:210px;width:210px}
#workspaceRoot .ws-material-filters>.mb-select{box-sizing:border-box;flex:0 0 120px;width:120px;min-width:120px;max-width:120px}
#workspaceRoot .ws-material-filters>.mb-select:has(>select[name="projectId"]){flex-basis:120px;width:120px;min-width:120px;max-width:120px}
#workspaceRoot .ws-material-filters>.mb-select:has(>select[name="businessId"]){flex:0 0 220px!important;width:220px!important;min-width:220px!important;max-width:220px!important}
#workspaceRoot .ws-material-filters>.mb-select:has(>select[name="materialStatus"]){flex-basis:148px;width:148px;min-width:148px;max-width:148px}
#workspaceRoot .ws-material-filters>.mb-select:has(>select[name="risk"]){flex-basis:148px;width:148px;min-width:148px;max-width:148px}
#workspaceRoot .ws-material-filters .mb-date-range{order:-1;flex:0 0 210px;width:210px;min-width:210px;max-width:210px}
#workspaceRoot .ws-material-filters .ws-filter-actions{display:flex;gap:8px;flex:0 0 auto;margin-left:auto}
#workspaceRoot .ws-material-filters>.mb-select:has(>select:is([name="accountHealth"],[name="deliveryStatus"])){flex:0 0 148px;width:148px;min-width:148px}
#workspaceRoot .ws-material-table-card{overflow:hidden}
/* Content-sized material columns are defined in the final shared layout layer. */
#workspaceRoot .ws-material-pending{color:#9a670b;background:#fff5d9;border-color:#f0dfaa}
#workspaceRoot .ws-material-status,#workspaceRoot .ws-material-risk{position:relative;display:inline-flex;align-items:center;min-height:24px;color:#657c88;white-space:nowrap;overflow:visible}
#workspaceRoot .ws-material-status::before{content:'';flex:0 0 6px;width:6px;height:6px;margin-right:6px;border-radius:50%;background:currentColor}
#workspaceRoot .ws-material-status.is-running{color:#078d7f}
#workspaceRoot .ws-material-status.is-closed{color:#7a8b94}
#workspaceRoot .ws-material-status.is-rejected{color:#d64f4f;cursor:help}
#workspaceRoot .ws-material-status.is-rejected:hover::after,#workspaceRoot .ws-material-status.is-rejected:focus::after{content:attr(data-reason);position:absolute;z-index:20;left:0;bottom:calc(100% + 7px);box-sizing:border-box;width:max-content;max-width:340px;padding:8px 10px;border:1px solid #efc1c1;border-radius:7px;background:#fff7f7;color:#8f3434;box-shadow:0 8px 24px rgba(57,41,41,.16);font-size:12px;line-height:1.55;white-space:normal}
#workspaceRoot .ws-material-risk.is-high{color:#c83e3e}
#workspaceRoot .ws-material-risk.is-watch{color:#b07912}
#workspaceRoot .ws-material-risk.is-safe{color:#078d7f}
@media(max-width:900px){#workspaceRoot .ws-material-toolbar{overflow:hidden}#workspaceRoot .ws-material-filters{flex-wrap:nowrap!important;overflow-x:auto;overflow-y:hidden}#workspaceRoot .ws-material-filters .ws-filter-actions{margin-left:0}}
/* Combined search accepts both free text and one account ID per line. */
#workspaceRoot .ws-material-filters>textarea.ws-search{box-sizing:border-box;height:38px;min-height:38px;line-height:1.2;padding:8px 10px;resize:vertical;white-space:pre-wrap}
#workspaceRoot .ws-material-filters .ws-filter-actions{margin-left:0}
#workspaceRoot :is(.ws-material-filters,.ws-adset-filters)>:is(.ws-material-provider,.mb-select:has(>select.ws-material-provider)){
  box-sizing:border-box;flex:0 0 290px;width:290px;min-width:290px;max-width:290px;
  height:38px!important;min-height:38px!important;max-height:38px!important;margin-left:auto;
}
#workspaceRoot :is(.ws-material-filters,.ws-adset-filters)>.ws-material-provider{padding:0 12px}
#workspaceRoot :is(.ws-material-filters,.ws-adset-filters)>.mb-select:has(>select.ws-material-provider)>.mb-select-trigger{
  box-sizing:border-box;width:100%;height:38px!important;min-height:38px!important;max-height:38px!important;
}
@media(max-width:900px){#workspaceRoot :is(.ws-material-filters,.ws-adset-filters)>:is(.ws-material-provider,.mb-select:has(>select.ws-material-provider)){margin-left:0}}
#workspaceRoot .ws-adset-toolbar{margin:0;border-bottom:1px solid #edf1f4}
#workspaceRoot .ws-adset-filters{align-items:center;margin:0;padding:12px 16px;gap:8px;flex-wrap:wrap;overflow:visible}
#workspaceRoot .ws-adset-filters .ws-filter-actions{margin-left:0}
#workspaceRoot .ws-adset-filters>:is(.ws-material-provider,.mb-select:has(>select.ws-material-provider)){margin-left:0}
#workspaceRoot .ws-adset-filters>.ws-actions{margin-left:auto;flex:0 0 auto;flex-wrap:nowrap}
#workspaceRoot .ws-adset-card>.ws-card-head{padding:14px 16px}
#workspaceRoot .ws-adset-card>.ws-card-head>div{display:flex;align-items:baseline;gap:10px;min-width:0;width:100%}
#workspaceRoot .ws-adset-card>.ws-card-head h2{flex:0 0 auto;margin:0;white-space:nowrap}
#workspaceRoot .ws-adset-card>.ws-card-head p{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
#workspaceRoot .ws-adset-table{table-layout:fixed!important;width:max(100%,var(--adset-table-width))!important;min-width:var(--adset-table-width)!important}
#workspaceRoot .ws-adset-table :is(th,td){box-sizing:border-box;padding:11px 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#workspaceRoot .ws-adset-table :is(th,td).mb-bm-column,#workspaceRoot .ws-adset-table :is(th,td).mb-account-column{width:150px!important;min-width:150px!important;max-width:150px!important}
#workspaceRoot .ws-adset-table :is(th,td).mb-campaign-column{width:195px!important;min-width:195px!important;max-width:195px!important}
#workspaceRoot .ws-adset-table :is(th,td).mb-match-column{width:108px!important;min-width:108px!important;max-width:108px!important}
#workspaceRoot .ws-adset-table :is(th,td)[data-adset-column$="Rule"]{width:270px!important;min-width:270px!important;max-width:270px!important}
@media(max-width:900px){#workspaceRoot .ws-adset-filters>.ws-actions{margin-left:auto}#workspaceRoot .ws-adset-filters>:is(.ws-material-provider,.mb-select:has(>select.ws-material-provider)){margin-left:0}}
/* Report drill-downs are plain green numbers, not raised action buttons. */
#workspaceRoot .ws-campaign-count-link{display:inline-block;width:auto;min-width:0;min-height:0;margin:0;padding:4px 6px;border:0!important;border-radius:0;background:transparent!important;color:#078d7f!important;font:inherit;line-height:inherit;cursor:pointer;box-shadow:none!important;transform:none!important}
#workspaceRoot .ws-campaign-count-link:hover{background:transparent!important;box-shadow:none!important;transform:none!important;text-decoration:underline}
#workspaceRoot .ws-campaign-count-link:focus-visible{outline:2px solid #078d7f;outline-offset:2px}
.ws-account-state.is-payment,.campaign-delivery-state.is-payment{display:inline-flex;align-items:center;gap:5px;min-height:24px;padding:2px 9px 2px 5px;border:1px solid #e6a00a;border-radius:999px;background:#fff1c2;color:#854d0e!important;font-weight:700;box-shadow:0 1px 3px rgba(138,75,0,.16)}
.ws-account-state.is-payment:before,.campaign-delivery-state.is-payment:before{content:'!';display:inline-grid;flex:0 0 15px;width:15px;height:15px;place-items:center;border-radius:50%;background:#b66b00;color:#fff;font-size:10px;font-weight:800;line-height:1}
.ws-kpi .account-health-counts .payment{color:#b66b00!important}
.ws-account-state.is-unknown,.campaign-delivery-state.is-unknown{color:#768999!important}
.campaign-delivery-state.is-running{color:#009d88}
.campaign-delivery-state.is-normal{color:#079e94}
.campaign-delivery-state.is-closed,.campaign-delivery-state.is-dead{color:#e4544e}
.game-delivery-cell{white-space:nowrap;min-width:92px}
.game-delivery-hidden{display:none!important}
.game-custom-table .game-column-hidden,.game-custom-table>colgroup>.game-column-hidden{display:none!important}
html body [data-game-columns]{order:-1;flex:0 0 auto;white-space:nowrap}
.game-columns-dialog .game-columns-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;max-height:55vh;overflow:auto}
.game-columns-dialog .game-columns-options label{min-width:0}
@media(max-width:650px){.game-columns-dialog .game-columns-options{grid-template-columns:repeat(2,minmax(0,1fr))}.game-columns-dialog .ws-dialog-foot{flex-wrap:wrap}}
.ws-confirm-dialog.is-success .ws-confirm-icon{background:#e6f7f1;color:#0a927c}
.ws-confirm-dialog.is-success .ws-confirm-submit{border-color:#0b8f7c;background:#0e9a86}
.ws-confirm-dialog.is-success .ws-confirm-submit:hover{background:#087e70}

/* Keep the navigation rail painted through the full page height in long full-page tables. */
body.mb-unified-layout .app-shell{background:linear-gradient(90deg,#102c3d 0,#102c3d 244px,transparent 244px)!important}
body.mb-unified-layout #dashboard.active{background:linear-gradient(90deg,#102c3d 0,#102c3d 244px,transparent 244px)!important}
@media(max-width:900px){body.mb-unified-layout .app-shell,body.mb-unified-layout #dashboard.active{background:transparent!important}}

.ws-account-report .ws-account-threshold{min-width:145px;white-space:nowrap}
