/* V3.70 · 跨端唯一视觉质量层（仅视觉，不承载业务或权限）
 * 与已有业务组件 CSS 共存，集中治理圆角、字阶、焦点、控件、表格、卡片与响应式。
 * 不改动 .mini-* 既有移动交互，亦不改变订单/资金流转。
 */
:root{
  --visual-primary:var(--brand,#2467d6);--visual-primary-strong:var(--brand-2,#174fb4);
  --visual-text:#192b49;--visual-secondary:#637793;
  --visual-border:#e0e8f3;--visual-border-active:#98b9ef;
  --visual-canvas:#f4f7fc;--visual-elevation:0 10px 28px rgba(24,55,108,.055);
  --visual-elevation-hover:0 16px 36px rgba(21,57,114,.105);
  --visual-radius:16px;--visual-focus:0 0 0 3px rgba(36,103,214,.18);
}
html{color-scheme:light;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-kerning:normal;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button,input,textarea,select{letter-spacing:normal}
button,[role="button"],a[href],summary{touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none}
:where(button,[role="button"],a[href],summary,input,select,textarea):focus-visible{
  outline:2px solid #4b89e9;outline-offset:2px;box-shadow:var(--visual-focus)
}
:where(button,input,textarea,select):disabled{cursor:not-allowed;opacity:.55}
:where(.btn,.icon-btn,.nav-item,.org-nav-item,.settings-module-card,.workspace-card,.agent-platform-card,.action-card){transition-property:background-color,border-color,color,box-shadow,transform;transition-duration:.18s;transition-timing-function:ease-out}
:where(.btn,.icon-btn,.nav-item,.org-nav-item,.settings-module-card,.action-card):active{transform:translateY(0)}
:where(.btn,.icon-btn,.nav-item,.org-nav-item,.settings-module-card,.action-card):focus-visible{position:relative;z-index:1}
/* 跨端主次按钮基线；保留各业务域按钮的语义色与大小规格 */
:where(.btn,.btn-default,.action-btn){font-weight:650}
:where(.btn-primary,.primary-btn,.btn.primary){background-color:var(--visual-primary);border-color:var(--visual-primary);color:#fff}
@media(hover:hover){:where(.btn-primary,.primary-btn,.btn.primary):not(:disabled):hover{background-color:var(--visual-primary-strong);border-color:var(--visual-primary-strong)}}
:where(.btn:not(.btn-primary),.filter-chip,.seg-btn,.icon-btn):focus-visible{border-color:var(--visual-border-active)}
:where(.input,.select,.textarea,input[type="search"],input[type="text"],input[type="password"],input[type="number"],input[type="date"],select,textarea){accent-color:var(--visual-primary)}
:where(.input,.select,.textarea):focus-visible{outline:0;border-color:var(--visual-border-active);box-shadow:var(--visual-focus)}
/* 仅对业务后台表格做行高/可读性统一；不重排字段与现有列宽 */
:where(.data-table,.portal-table,.agent-table){font-variant-numeric:tabular-nums}
:where(.data-table,.portal-table,.agent-table) th{font-weight:750;letter-spacing:.012em;color:#526684;line-height:1.45}
:where(.data-table,.portal-table,.agent-table) td{border-bottom-color:#eaf0f8}
:where(.data-table,.portal-table,.agent-table) tbody tr:last-child td{border-bottom:0}
@media(hover:hover){:where(.data-table,.portal-table,.agent-table) tbody tr:hover td{background-color:#f6f9ff}}
/* 通用桌面工作区统一卡片深度，保留原有模块配色与边框 */
:where(.pc-content,.org-content,.store-admin-content,.marketing-content,.restaurant-content) :where(.card,.stat-card,.settings-module-card){box-shadow:var(--visual-elevation)}
:where(.pc-content,.org-content,.store-admin-content,.marketing-content,.restaurant-content) :where(.card,.stat-card){border-radius:var(--visual-radius)}
:where(.page-head,.agent-page-head,.heading,.dhead,.phead){min-width:0}
:where(.page-head,.agent-page-head) h1{line-height:1.24;text-wrap:balance}
:where(.page-head,.agent-page-head) p{line-height:1.65;overflow-wrap:anywhere}
:where(.toolbar,.page-head-actions,.heading-actions-inline,.org-header-actions,.top-actions){min-width:0}
:where(.card,.panel,.agent-section,.stat-card,.page-head,.settings-module-card){overflow-wrap:anywhere}
/* 弹层及抽屉：统一安全边距、标题层次及操作区，保持现有开关/关闭动作 */
:where(.modal,.drawer,.dialog){border:1px solid rgba(215,227,243,.9)}
:where(.modal-head,.drawer-head,.dhead){background:linear-gradient(110deg,#fff 0%,#f7faff 100%);border-bottom-color:var(--visual-border)}
:where(.modal-head h3,.drawer-head h3,.dhead h2){font-weight:750;letter-spacing:-.012em}
:where(.modal-foot,.drawer-foot,.dactions){border-top-color:var(--visual-border)}
:where(.toast,.notice){overflow-wrap:anywhere;line-height:1.6}
/* 机构侧导航的唯一排列源是 org-shell.js；纯视觉统一右侧页面与菜单。 */
.org-layout:not(.store-admin-layout) .org-nav-item{gap:11px}
.org-layout:not(.store-admin-layout) .org-brand-wordmark{font-weight:780}
.org-layout:not(.store-admin-layout) .org-content .card{border-color:var(--visual-border)}
.org-layout:not(.store-admin-layout) .org-content .card-head{background:linear-gradient(100deg,#fff,#fbfdff)}
body:not([data-org-route="promotion"]) .org-layout:not(.store-admin-layout) .org-content .page-head{border-color:#dfe9f7}
.org-layout:not(.store-admin-layout) .org-content .data-table th{background:#f4f7fc}
/* 移动端与触控：尺寸而非布局覆盖；保证桌面已确定的组件拓扑不发生变化。 */
@media(max-width:900px){:where(.page-head,.agent-page-head){gap:12px}:where(.page-head-actions,.heading-actions-inline){row-gap:8px}}
@media(max-width:640px){:where(.modal,.dialog){max-height:94dvh}:where(.modal-body,.drawer-body,.dbody){overscroll-behavior:contain}:where(.page-head,.agent-page-head){border-radius:14px}:where(.page-head-actions){justify-content:flex-start}}
@media(pointer:coarse){:where(.btn,.icon-btn,.org-nav-item,.nav-item,summary){min-height:44px}}
@media(prefers-reduced-motion:reduce){:where(.btn,.icon-btn,.nav-item,.org-nav-item,.settings-module-card,.workspace-card,.action-card){transition:none!important}}

/* V3.74 · 各后台唯一侧栏宽度：继承核心业务平台原尺寸与折叠断点。
 * 宽屏 232px、中屏 210px、紧凑侧栏 72px；手机保持原端特有的底部/水平导航模式。
 * 页面级 CSS 只读取 --sidebar，不能为任何端重新设置独立宽度。 */
:root{--sidebar:232px}
@media(max-width:1280px){:root{--sidebar:210px}}
@media(max-width:900px){:root{--sidebar:72px}}
/* 五端各以已有 --sidebar 为唯一网格/侧栏宽度；避免名称、编号和菜单撑大列。 */
.shell>aside{width:var(--sidebar);min-width:0}
.shell>main{margin-left:var(--sidebar);width:calc(100% - var(--sidebar));min-width:0}
.org-layout,.store-admin-layout{grid-template-columns:var(--sidebar) minmax(0,1fr)}
:where(.pc-sidebar,.org-sidebar,.shell>aside){min-width:0}
:where(.org-brand-lockup,.store-brand,.brand-block,.shell>aside .brand){min-width:0}
/* 小屏按原先各端的移动导航模式，不能套入桌面固定侧栏。 */
@media(max-width:640px){
  .org-layout,.store-admin-layout{display:block;grid-template-columns:none}
  .shell>aside{width:var(--sidebar)}
  .shell>main{margin-left:var(--sidebar);width:calc(100% - var(--sidebar))}
}



/* V3.75 · 四端真实经营驾驶舱 / 统一租户通用组件 视觉语义 */



.v375-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:16px 0 18px}.v375-kpi{display:grid;grid-template-columns:34px 1fr;gap:6px 10px;align-items:center;border:1px solid #dde9ef;border-radius:16px;background:#fff;box-shadow:0 9px 22px rgba(38,72,102,.06);padding:17px 18px;min-width:0;text-align:left;cursor:pointer;color:#263e54}.v375-kpi:hover{border-color:#78b4c9;box-shadow:0 13px 28px rgba(38,72,102,.1)}.v375-kpi-symbol{grid-row:1/4;background:#e5f3f7;border-radius:11px;width:33px;height:33px;display:grid;place-items:center;font-size:19px;color:#236e88}.v375-kpi-label{font-size:12px;color:#678095}.v375-kpi strong{font-size:clamp(19px,2vw,25px);font-weight:800;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.v375-kpi small{color:#7990a1;font-size:11px}.v375-kpi i{grid-column:1/-1;justify-self:end;font-style:normal;color:#267b8f;font-size:11px}
.v375-dashboard-cols{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:16px;margin:16px 0}.v375-dashboard-cols>.card,.v375-dashboard-cols>.panel{min-width:0;margin:0}.v375-admin-chart{min-height:210px}.v375-task-list{padding:5px 16px 14px;display:grid;gap:3px}.v375-task-list>button{border:0;border-bottom:1px solid #edf2f6;background:none;text-align:left;display:flex;align-items:center;gap:12px;padding:12px 3px;cursor:pointer}.v375-task-list>button>span:nth-child(2){display:grid;gap:3px;flex:1;min-width:0}.v375-task-list strong{font-size:13px}.v375-task-list small{font-size:11px;color:#7a8999}.v375-task-list b{font-size:16px;color:#153b56}.v375-task-list em{font-style:normal;color:#6691a4}.v375-task-dot{width:8px;height:8px;border-radius:50%;background:#89b1c2;flex:0 0 auto}.v375-task-dot.danger{background:#d16464}.v375-task-dot.warning{background:#eaa34f}
.v375-workflow{margin:15px 0;display:grid;gap:14px;background:#fff;border:1px solid #dce9ef;border-radius:16px;padding:20px}.v375-workflow>div{display:grid;gap:4px}.v375-workflow>div small{color:#678094}.v375-workflow nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:9px}.v375-workflow nav button{border:1px solid #e0ecf2;border-radius:10px;padding:12px;background:#f6fafc;display:flex;justify-content:space-between;text-align:left;cursor:pointer;font-weight:700}.v375-workflow nav button:hover{border-color:#72afc6}.v375-workflow nav span{color:#4897ad}
.v375-shortcuts{margin-top:18px!important}.v375-shortcut-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:15px}.v375-shortcut-grid>a,.v375-shortcut-grid>button{display:grid;grid-template-columns:1fr auto;gap:5px;padding:14px 16px;border:1px solid #dfebef;background:linear-gradient(150deg,#fff,#f7fbfd);border-radius:12px;text-align:left;text-decoration:none;cursor:pointer;color:#284860;min-width:0}.v375-shortcut-grid strong{font-size:13px}.v375-shortcut-grid small{grid-column:1/-1;color:#78909e;font-size:11px}.v375-shortcut-grid i{grid-column:2;grid-row:1/2;font-style:normal;color:#267f95}.v375-shortcut-grid>a:hover,.v375-shortcut-grid>button:hover{border-color:#8bbccf;background:#f0f9fc}
.v375-money-lines{display:grid;gap:0}.v375-money-lines>div{display:flex;justify-content:space-between;gap:15px;padding:10px;border-bottom:1px solid #ecf1f5}.v375-money-lines>div strong{white-space:nowrap;font-variant-numeric:tabular-nums}.v375-money-lines .is-total{background:#edf8f6;border-radius:10px;color:#126e68;font-weight:800;margin-top:6px;border:0}.v375-growth-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.v375-growth-grid>div{padding:13px;background:#f3f9fb;border-radius:11px;display:grid;gap:6px}.v375-growth-grid strong{font-size:24px;color:#205e76}.v375-growth-grid span{color:#668091;font-size:12px}.v375-mini-alert{background:#fff6ea;color:#9a6929;padding:12px;margin-top:15px;border-radius:9px;font-size:12px}
.v375-channel-list{display:grid;gap:8px}.v375-channel-list label{display:flex;align-items:center;gap:11px;padding:12px;border-radius:10px;background:#f5f9fc;border:1px solid #e0eaf2}.v375-channel-list label>span{display:grid;gap:3px;flex:1}.v375-channel-list small{color:#70889c}.v375-capabilities{display:flex;flex-wrap:wrap;gap:9px}.v375-capabilities span{background:#e9f5f8;border-radius:20px;color:#267a8b;padding:6px 11px;font-size:12px}.v375-tenant-components{margin:15px 0 20px}
.store-admin-layout .store-brand-text{display:flex;flex-direction:column;align-items:flex-start;gap:4px;white-space:normal;overflow:visible}.store-admin-layout .store-brand-name{font-size:12px;line-height:1.3;white-space:normal;overflow-wrap:anywhere}.store-admin-layout .store-brand-code{font-size:10px}.store-admin-layout .store-brand{align-items:flex-start}.store-admin-layout .store-brand-mark{margin-top:2px}
.metric-chart{min-width:0}.metric-chart .chart-col{min-width:0}.metric-chart .chart-bar{max-width:100%}
@media(max-width:1120px){.v375-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.v375-dashboard-cols{grid-template-columns:1fr}}@media(max-width:780px){.v375-shortcut-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.v375-admin-chart{overflow-x:auto}.metric-chart{gap:6px;padding-inline:0}.metric-chart .chart-bar{width:min(29px,75%)}}
@media(max-width:480px){.v375-kpis,.v375-shortcut-grid{grid-template-columns:1fr}.v375-kpi{padding:13px}.v375-growth-grid{gap:8px}.v375-channel-list label{flex-wrap:wrap}}

@media(min-width:641px) and (max-width:900px){
  .shell>aside{padding:14px 8px}
  .shell>aside .brand{padding:8px 0 18px;justify-content:center}
  .shell>aside .brand>div,.shell>aside nav span,.shell>aside nav em,.shell>aside .health{display:none}
  .shell>aside nav button{justify-content:center;padding:0;min-width:0}
  .shell>aside nav i{width:auto}
  .org-layout .org-sidebar{padding:14px 8px}
  .org-layout .org-brand-lockup{overflow:hidden;padding:8px 0 12px}
  .org-layout .org-brand-lockup .org-identity,.org-layout .org-brand-lockup>small,.store-admin-layout .store-brand-text,.store-admin-layout .store-nav-caption,.store-admin-layout .store-side-footer{display:none}
  .org-layout .org-brand-lockup:before{content:'机';display:grid;place-items:center;width:36px;height:36px;border-radius:11px;margin:auto;background:#275ca5;color:white;font-weight:800}
  .store-admin-layout .store-brand{justify-content:center;padding:8px 0 12px}
  .org-layout .org-sidebar nav{padding-inline:0}
  .org-layout .org-nav-item{justify-content:center;padding-inline:0;gap:0}
  .org-layout .org-nav-item>span,.org-layout .org-nav-item .nav-text{display:none}
  .store-admin-layout .org-nav-item{justify-content:center}
}

/* V3.86 · 平台工作区标题与数据指标视觉尺寸基线（非小程序/公开站、非 POS）。
 * 保持各端品牌配色/栅格/功能拓扑，仅约束字阶与卡片内边距。
 * modal footer 点击修复在 modal-standard.js 唯一实现。 */
:root{--ui-font-xl:23px;--ui-font-lg:18px;--workspace-title-size:23px;--workspace-metric-size:23px;--workspace-metric-padding:15px}
:where(body[data-area="admin"] .shell .content>.heading h1,body[data-mode="pc"] .pc-content>.page-head h1,.org-layout .org-content>.page-head h1,.store-admin-layout .org-content>.page-head h1,.mw-shell .page-head h1,.ra-work .ra-page-head h1,.agent-page-head h1){font-size:var(--workspace-title-size)!important;line-height:1.3!important;letter-spacing:-.025em!important}
body[data-area="admin"] .shell .content>.heading h1{font-size:var(--workspace-title-size)!important}
:where(.pc-content,.org-content,.mw-shell .mw-content,.ra-work) .stats-grid .stat-card{padding:var(--workspace-metric-padding);min-height:0}
:where(.pc-content,.org-content) .stats-grid .stat-value{font-size:var(--workspace-metric-size)!important;line-height:1.3;letter-spacing:-.02em}
:where(.org-content,.store-admin-layout .org-content) .stat-card .stat-value{font-size:var(--workspace-metric-size)!important}
:where(.org-content) .org-finance-kpi strong{font-size:var(--workspace-metric-size);line-height:1.3}
:where(.org-content) .org-finance-kpi{padding:var(--workspace-metric-padding)}
:where(.mw-shell) .stats-grid .stat-card{padding:var(--workspace-metric-padding)}
:where(.ra-work) .ra-stat{padding:var(--workspace-metric-padding)}
:where(.ra-work) .ra-stat strong{font-size:var(--workspace-metric-size);line-height:1.3}
body[data-area="admin"] .shell .content .cards .card{min-height:0}
@media(max-width:700px){:root{--workspace-title-size:20px;--workspace-metric-size:20px;--workspace-metric-padding:13px}}
@media(max-width:380px){:root{--workspace-title-size:19px;--workspace-metric-size:19px;--workspace-metric-padding:12px}}
/* 统一管理中心与协同工作台已存在的指标组件，不改变组件模板和统计口径。 */
:where(.shell .content) .v375-kpi{padding:var(--workspace-metric-padding)}
:where(.shell .content) .v375-kpi strong{font-size:var(--workspace-metric-size);line-height:1.3}
:where(.portal .agent-main) .agent-v245-platform-kpis>div{padding:var(--workspace-metric-padding)}
:where(.portal .agent-main) .agent-v245-platform-kpis strong{font-size:var(--workspace-metric-size);line-height:1.3}
.store-admin-layout .org-content .stat-card .stat-value{font-size:var(--workspace-metric-size)!important}
