/* 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 .ws-account-id{min-width:148px;font-variant-numeric:tabular-nums}
.ws-account-report .ws-account-health,.ws-account-report .ws-account-delivery{min-width:92px}
.ws-account-report .ws-account-campaigns{min-width:74px;text-align:right!important}
.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-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 150px;width:150px;min-width:128px;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;
}

/* 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:18px 20px 22px;overflow:auto}
.ws-meta-history-table .ws-table{min-width:690px}
.ws-dialog-head>div small{display:block;margin-top:4px;color:#7e929e;font-size:11px}
@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-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{width:38px;height:28px;fill:none;stroke:currentColor;stroke-width:3.3;stroke-linecap:round;stroke-linejoin:round}

/* 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 #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:36px;min-width:0;border:1px solid #d7e1e6;border-radius:7px;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 190px;width:190px}
#workspaceRoot .ws-material-filters>.ws-material-account{flex-basis:145px;width:145px}
#workspaceRoot .ws-material-filters>.ws-role-multi{flex:0 0 128px!important;width:128px!important;min-width:128px!important}
#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 155px!important;width:155px!important;min-width:155px!important;max-width:155px!important}
#workspaceRoot .ws-material-filters>.mb-select:has(>select[name="materialStatus"]){flex-basis:128px;width:128px;min-width:128px;max-width:128px}
#workspaceRoot .ws-material-filters>.mb-select:has(>select[name="risk"]){flex-basis:116px;width:116px;min-width:116px;max-width:116px}
#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}}
/* 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}
