:root{--cm-font-ui:"Microsoft YaHei","PingFang SC","Noto Sans CJK SC","Noto Sans SC",system-ui,sans-serif;--cm-font-note-size:12px}
html[data-cm-page] body,html[data-cm-page] button,html[data-cm-page] input,html[data-cm-page] select,html[data-cm-page] textarea{font-family:var(--cm-font-ui)}
/* Notes share a reading level; display headings and key figures keep their intentional emphasis. */
html[data-cm-page] [data-cm-text-role="note"]{font-family:var(--cm-font-ui);font-size:var(--cm-font-note-size);font-weight:400;line-height:1.6;letter-spacing:normal;color:var(--cm-text-3,var(--muted));overflow-wrap:anywhere}
html[data-cm-page] [data-cm-text-role="note"].error{color:var(--cm-danger-text,var(--red));font-weight:700}
.cm-theme-toggle{flex:0 0 auto;min-height:38px;padding:7px 11px;border:1px solid var(--line,#6D6357);border-radius:999px;background:var(--card,#FFFDF6);color:var(--ink,var(--txt,var(--text,#221D18)));font:700 11px/1.2 "Microsoft YaHei","PingFang SC",sans-serif;cursor:pointer;touch-action:manipulation;white-space:nowrap}
.cm-theme-toggle:focus-visible{outline:3px solid var(--red,#C9402F);outline:3px solid color-mix(in srgb,var(--red,#C9402F) 28%,transparent);outline-offset:2px}
html[data-cm-theme="dark"]{--paper:#191613;--bg:#191613;--panel:#29231E;--card:#29231E;--ink:#F7F0E3;--ink2:#D7CEC2;--ink3:#B6AA9A;--txt:#F7F0E3;--text:#F7F0E3;--soft:#C8BFB4;--muted:#B6AA9A;--line:#5A4E43;--sand:#342C25;--yl:#E6C36A;--gold:#E6C36A;--green:#75A66F;--grn:#75A66F;--ok:#75A66F;--warn:#E6C36A;--red:#C9402F;--cm-surface-0:#191613;--cm-surface-1:#29231E;--cm-surface-2:#342C25;--cm-surface-3:#211C18;--cm-text:#F7F0E3;--cm-text-2:#D7CEC2;--cm-text-3:#B6AA9A;--cm-control-bg:#29231E;--cm-on-accent:#FFF;--cm-focus:#F0CF72;--cm-danger-bg:#472722;--cm-danger-text:#FFD7D2;--cm-warning-bg:#3B3020;--cm-warning-text:#F6D988;--cm-success-bg:#243B29;--cm-success-text:#BFE6C4;--cm-info-bg:#22363D;--cm-info-text:#C5E6F0;--cm-toast-bg:#342C25;--cm-toast-text:#F7F0E3;--cm-inverse-bg:#F7F0E3;--cm-inverse-text:#221D18;color-scheme:dark}
html[data-cm-theme="light"]{--paper:#F6F0E1;--bg:#F6F0E1;--panel:#FFFDF6;--card:#FFFDF6;--ink:#221D18;--ink2:#5F574C;--ink3:#6F6253;--txt:#221D18;--text:#221D18;--soft:#5F574C;--muted:#6F6253;--line:#D9CCB6;--sand:#F0E1C6;--yl:#855A0E;--gold:#855A0E;--green:#3F7148;--grn:#3F7148;--ok:#3F7148;--warn:#855A0E;--red:#B5372A;--cm-surface-0:#F6F0E1;--cm-surface-1:#FFFDF6;--cm-surface-2:#F1E6D2;--cm-surface-3:#E8D9BC;--cm-text:#221D18;--cm-text-2:#5F574C;--cm-text-3:#6F6253;--cm-control-bg:#FFFDF6;--cm-on-accent:#FFF;--cm-focus:#A72C22;--cm-danger-bg:#FBE9E5;--cm-danger-text:#6D2A21;--cm-warning-bg:#FFF3D7;--cm-warning-text:#6A4910;--cm-success-bg:#EAF3E8;--cm-success-text:#2D5C36;--cm-info-bg:#E7F1F4;--cm-info-text:#315D6C;--cm-toast-bg:#F1E6D2;--cm-toast-text:#221D18;--cm-inverse-bg:#221D18;--cm-inverse-text:#FFFDF6;color-scheme:light}
html[data-cm-theme] body{background:var(--paper,var(--bg));color:var(--ink,var(--txt,var(--text)))}
html[data-cm-theme] input,html[data-cm-theme] select,html[data-cm-theme] textarea{border-color:var(--line)!important;background:var(--card)!important;color:var(--ink,var(--txt,var(--text)))!important}
html[data-cm-theme="dark"] .panel,html[data-cm-theme="dark"] .card,html[data-cm-theme="dark"] .kpi,html[data-cm-theme="dark"] .account-row,html[data-cm-theme="dark"] .site-language-grid label,html[data-cm-theme="dark"] .yield-kpis>div,html[data-cm-theme="dark"] .yield-forms>section,html[data-cm-theme="dark"] .inventory-forms>div,html[data-cm-theme="dark"] .language-settings{border-color:var(--line)!important;background:var(--card)!important;color:var(--ink)!important}
html[data-cm-theme="dark"] .inventory-policy,html[data-cm-theme="dark"] .yield-rule,html[data-cm-theme="dark"] .audit-detail p{background:#342C25!important}
html[data-cm-theme="dark"] .top{background:#211C18!important;color:#F7F0E3!important}
html[data-cm-theme="dark"] .cm-theme-toggle{background:#29231E;color:#F7F0E3}
html[data-cm-theme="light"][data-cm-page="ops"] .top,html[data-cm-theme="light"][data-cm-page="kds"] .top,html[data-cm-theme="light"][data-cm-page="checkout"] .top{background:#FFFDF6!important;color:#221D18!important}
html[data-cm-theme="light"][data-cm-page="ops"] .panel,html[data-cm-theme="light"][data-cm-page="ops"] .kpi,html[data-cm-theme="light"][data-cm-page="ops"] .summary-lead,html[data-cm-theme="light"][data-cm-page="ops"] .summary-stat,html[data-cm-theme="light"][data-cm-page="ops"] .trend-card,html[data-cm-theme="light"][data-cm-page="ops"] .report-grid>div,html[data-cm-theme="light"][data-cm-page="ops"] .store-section,html[data-cm-theme="light"][data-cm-page="ops"] .store-booking-card,html[data-cm-theme="light"][data-cm-page="ops"] .store-status{background:#FFFDF6!important;color:#221D18!important}
html[data-cm-theme="light"][data-cm-page="ops"] .alert{background:#FBE9E5!important;color:#5D231C!important}
html[data-cm-theme="light"][data-cm-page="ops"] .row span,html[data-cm-theme="light"][data-cm-page="ops"] .store-status strong{color:var(--gold)!important}
html[data-cm-theme="light"][data-cm-page="kds"] .card,html[data-cm-theme="light"][data-cm-page="checkout"] .card,html[data-cm-theme="light"][data-cm-page="checkout"] .panel{background:#FFFDF6!important;color:#221D18!important}
html[data-cm-theme="light"] .login{background:rgba(246,240,225,.97)!important;color:#221D18!important}
html[data-cm-theme="light"] .login-box{background:#FFFDF6!important;color:#221D18!important}
html[data-cm-theme] .cm-theme-toggle{border-color:var(--line);background:var(--cm-control-bg);color:var(--cm-text)}
html[data-cm-theme] :is(button,a,summary,input,select,textarea):focus-visible{outline:3px solid var(--cm-focus)!important;outline-offset:2px!important}

html[data-cm-theme][data-cm-page="ops"] :is(.staff-card,.cashier-card){background:var(--cm-surface-1)!important;color:var(--cm-text)!important}
html[data-cm-theme][data-cm-page="ops"] :is(.staff-current,.staff-metrics>div,.counter-session,.counter-amount,.cashier-deposit-mode){background:var(--cm-surface-2)!important;color:var(--cm-text)!important}
html[data-cm-theme][data-cm-page="ops"] :is(.cashier-notice,.cashier-refund-lock,.counter-email-note,.ops-layout-hint){background:var(--cm-warning-bg)!important;color:var(--cm-warning-text)!important}
html[data-cm-theme][data-cm-page="ops"] .cash-status{background:var(--cm-success-bg)!important;color:var(--cm-success-text)!important}
html[data-cm-theme][data-cm-page="ops"] :is(.recipient-chip:not(.on),.cashier-method:not(.on),.dashboard-card-toolbar button){background:var(--cm-control-bg)!important;color:var(--cm-text-2)!important}
html[data-cm-theme][data-cm-page="ops"] :is(.staff-role,.staff-metrics small,.cashier-deposit-mode small,.cashier-field-help,.counter-session small,.counter-bill-intro p){color:var(--cm-text-2)!important}
html[data-cm-theme][data-cm-page="ops"] :is(.btn.red,.btn.on,.recipient-chip.on,.cashier-method.on){color:var(--cm-on-accent)!important}
html[data-cm-theme][data-cm-page="ops"] .trend-axis{fill:var(--cm-text-2)!important}

html[data-cm-theme][data-cm-page="kds"] .stock{background:var(--cm-surface-1)!important;color:var(--cm-text)!important}
html[data-cm-theme][data-cm-page="kds"] :is(.stock-group h3,.stock-row){background:var(--cm-surface-2)!important;color:var(--cm-text)!important}
html[data-cm-theme][data-cm-page="kds"] :is(.stock-hint,.stock-tools label,.stock-group h3 span,.stock-names span,.stock-empty,.taskitem small,.tk-h .tbl small,.tk-h .st,.b-cancel){color:var(--cm-text-2)!important}
html[data-cm-theme][data-cm-page="kds"] .stock-toggle.available{color:var(--cm-warning-text)!important}
html[data-cm-theme][data-cm-page="kds"] .wait-note{border-color:var(--cm-info-text)!important;background:var(--cm-info-bg)!important;color:var(--cm-info-text)!important}
html[data-cm-theme][data-cm-page="kds"] .service-alert{background:var(--cm-warning-bg)!important;color:var(--cm-warning-text)!important}
html[data-cm-theme][data-cm-page="kds"] :is(.service-alert.urgent,.nudgebar button){background:var(--cm-danger-bg)!important;color:var(--cm-danger-text)!important}

html[data-cm-theme][data-cm-page="checkout"] :is(.leftover-box,.notice){background:var(--cm-warning-bg)!important;color:var(--cm-warning-text)!important}
html[data-cm-theme][data-cm-page="checkout"] .deposit-mode{background:var(--cm-surface-2)!important;color:var(--cm-text)!important}
html[data-cm-theme][data-cm-page="checkout"] :is(.card h3,.deposit-mode small,.field-help,.cash-status,.empty){color:var(--cm-text-2)!important}
html[data-cm-theme][data-cm-page="checkout"] .cash-status b{color:var(--cm-text)!important}

html[data-cm-theme][data-cm-page="admin"] .ops-card{background:var(--cm-surface-1)!important;color:var(--cm-text)!important}
html[data-cm-theme][data-cm-page="admin"] :is(.ops-card.hot,.alert,.admin-layout-hint){background:var(--cm-danger-bg)!important;color:var(--cm-danger-text)!important}
html[data-cm-theme][data-cm-page="admin"] .ops-card.ok{background:var(--cm-success-bg)!important;color:var(--cm-success-text)!important}
html[data-cm-theme][data-cm-page="admin"] .admin-dashboard>.panel.admin-pinned>.admin-card-toolbar .admin-pin{background:var(--cm-warning-bg)!important;color:var(--cm-warning-text)!important}
html[data-cm-theme][data-cm-page="admin"] .p-bad{background:var(--cm-danger-bg)!important;color:var(--cm-danger-text)!important}
html[data-cm-theme][data-cm-page="admin"] .p-warn{background:var(--cm-warning-bg)!important;color:var(--cm-warning-text)!important}
html[data-cm-theme][data-cm-page="admin"] .p-ok{background:var(--cm-success-bg)!important;color:var(--cm-success-text)!important}

html[data-cm-theme][data-cm-page="floor"] .focus-card{background:var(--cm-surface-1)!important;color:var(--cm-text)!important}
html[data-cm-theme][data-cm-page="floor"] .task-identity{background:var(--cm-surface-2)!important;color:var(--cm-text)!important}
html[data-cm-theme][data-cm-page="floor"] :is(.focus-card.warn,.urgency,.st-new){background:var(--cm-warning-bg)!important;color:var(--cm-warning-text)!important}
html[data-cm-theme][data-cm-page="floor"] :is(.focus-card.urgent,.urgent .urgency,.nudgebar button,.st-cook){background:var(--cm-danger-bg)!important;color:var(--cm-danger-text)!important}
html[data-cm-theme][data-cm-page="floor"] .st-done{background:var(--cm-success-bg)!important;color:var(--cm-success-text)!important}

html[data-cm-theme][data-cm-page="menu-admin"] :is(.category-row,.language-settings label){background:var(--cm-surface-2)!important;color:var(--cm-text)!important}
html[data-cm-theme][data-cm-page="menu-admin"] :is(.category-row small,.language-copy small){color:var(--cm-text-2)!important}
html[data-cm-theme]:is([data-cm-page="admin"],[data-cm-page="floor"],[data-cm-page="menu-admin"]) .toast{border:1px solid var(--line)!important;background:var(--cm-surface-2)!important;color:var(--cm-text)!important;box-shadow:0 10px 28px rgba(0,0,0,.28)!important}

/* Final contrast pass: every console keeps the same semantic hierarchy in both themes. */
html[data-cm-theme="light"]:is([data-cm-page="admin"],[data-cm-page="floor"],[data-cm-page="menu-admin"],[data-cm-page="system"]) .top{background:var(--cm-surface-1)!important;color:var(--cm-text)!important;border-color:var(--line)!important}
html[data-cm-theme="light"]:is([data-cm-page="admin"],[data-cm-page="floor"],[data-cm-page="menu-admin"],[data-cm-page="system"]) .top a{color:var(--cm-text-2)!important}
html[data-cm-theme="light"]:is([data-cm-page="admin"],[data-cm-page="floor"],[data-cm-page="menu-admin"],[data-cm-page="system"]) .top :is(.who,button:not(.act):not(.cm-theme-toggle)){color:var(--cm-text-2)!important}
html[data-cm-theme="light"] .cm-language-rail{border-color:var(--line)!important;background:rgba(255,253,246,.97)!important}
html[data-cm-theme="dark"] .cm-language-rail{border-color:var(--line)!important;background:rgba(25,22,19,.97)!important}
html[data-cm-theme="dark"] .cm-language-dock{border-color:var(--line)!important;background:var(--cm-surface-1)!important;box-shadow:0 6px 18px rgba(0,0,0,.28)!important}
html[data-cm-theme="dark"] .cm-language-dock button{color:var(--cm-text)!important}
html[data-cm-theme] .cm-language-dock button:is(:hover,.cm-active){background:#B5372A!important;color:#FFF!important}

html[data-cm-theme="light"] :is(.lang button.act,.lang-switch button.on,.login-lang button.act){background:var(--gold)!important;color:#FFF!important}
html[data-cm-theme="dark"] :is(.lang button.act,.lang-switch button.on,.login-lang button.act){background:var(--gold)!important;color:#221D18!important}
html[data-cm-theme] :is(.lang button:not(.act),.lang-switch button:not(.on)){color:var(--cm-text-2)!important}

html[data-cm-theme][data-cm-page="ops"] .store-action.danger{border-color:var(--cm-danger-text)!important;background:var(--cm-danger-bg)!important;color:var(--cm-danger-text)!important}
html[data-cm-theme][data-cm-page="ops"] .trend-line{stroke:var(--gold)!important}
html[data-cm-theme][data-cm-page="ops"] .store-action.success{border-color:var(--cm-success-text)!important;background:var(--cm-success-bg)!important;color:var(--cm-success-text)!important}
html[data-cm-theme][data-cm-page="ops"] .store-booking-card.refund-pending{border-color:var(--cm-warning-text)!important;background:var(--cm-warning-bg)!important;color:var(--cm-text)!important}

html[data-cm-theme][data-cm-page="kds"] :is(.stats .k,.awake,.empty){color:var(--cm-text-2)!important}
html[data-cm-theme][data-cm-page="kds"] :is(.batchbar,.handoff-shelf){background:var(--cm-surface-1)!important;color:var(--cm-text)!important;border-color:var(--line)!important}
html[data-cm-theme][data-cm-page="kds"] .agg .a{background:var(--cm-surface-2)!important;color:var(--cm-text)!important;border-color:var(--line)!important}
html[data-cm-theme][data-cm-page="kds"] .agg .a b{color:var(--cm-warning-text)!important}
html[data-cm-theme][data-cm-page="kds"] :is(.batchbar small,.handoff-rule,.handoff-card footer,.agg .t){color:var(--cm-text-2)!important}
html[data-cm-theme][data-cm-page="kds"] :is(.pick-item,.table-picks button){background:var(--cm-control-bg)!important;color:var(--cm-text)!important;border-color:var(--line)!important}
html[data-cm-theme="light"][data-cm-page="kds"] :is(.pick-item.selected,.batchbar .batch-done){background:var(--gold)!important;color:#FFF!important}
html[data-cm-theme="dark"][data-cm-page="kds"] :is(.pick-item.selected,.batchbar .batch-done){background:var(--gold)!important;color:#221D18!important}
html[data-cm-theme][data-cm-page="kds"] .spice-change{background:var(--cm-warning-bg)!important;color:var(--cm-warning-text)!important;border-color:var(--cm-warning-text)!important}
html[data-cm-theme][data-cm-page="kds"] .stock-live{color:var(--cm-success-text)!important}
html[data-cm-theme][data-cm-page="kds"] .stats .v.hot{color:var(--cm-danger-text)!important}
html[data-cm-theme][data-cm-page="kds"] .el.hot{color:var(--cm-danger-text)!important}
html[data-cm-theme][data-cm-page="kds"] .item-actions .done{color:var(--cm-success-text)!important}
html[data-cm-theme="light"][data-cm-page="kds"] .item-actions .finish{background:var(--gold)!important;color:#FFF!important}
html[data-cm-theme="dark"][data-cm-page="kds"] .item-actions .finish{background:var(--gold)!important;color:#221D18!important}

html[data-cm-theme="light"][data-cm-page="floor"] .wash button{background:var(--green)!important;color:#FFF!important}
html[data-cm-theme="dark"][data-cm-page="floor"] .wash button{background:var(--green)!important;color:#191613!important}

html[data-cm-theme="dark"][data-cm-page="admin"] :is(.account-row em,.audit-open-label){color:var(--cm-danger-text)!important}
html[data-cm-theme][data-cm-page="admin"] :is(.yield-forms,.inventory-forms){grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))!important}
html[data-cm-theme="light"][data-cm-page="admin"] .mobile-tabs{background:var(--cm-surface-1)!important;border-color:var(--line)!important}
html[data-cm-theme="light"][data-cm-page="admin"] .mobile-tabs a{background:var(--cm-control-bg)!important;color:var(--cm-text-2)!important;border-color:var(--line)!important}
html[data-cm-theme][data-cm-page="menu-admin"] .category-row td{border-color:var(--line)!important;background:var(--cm-surface-2)!important;color:var(--cm-text)!important}
html[data-cm-theme][data-cm-page="menu-admin"] .category-row td small{color:var(--cm-text-2)!important}
html[data-cm-theme="dark"][data-cm-page="menu-admin"] .pill.off{color:var(--cm-danger-text)!important}

/* Keep console headers readable and stationary while labels, language, or refresh state change. */
html[data-cm-theme] .top{min-width:0;gap:10px}
html[data-cm-theme] .top>:is(b,strong){min-width:0;line-height:1.25;text-wrap:balance}
html[data-cm-theme] .top :is(button,a,.cm-theme-toggle){display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;min-height:44px;line-height:1.2;white-space:nowrap}
html[data-cm-theme] .top .cm-theme-toggle{inline-size:auto;min-width:86px;padding-inline:10px}
html[data-cm-theme] :is(.lang,.lang-switch){display:flex;flex:0 0 auto;max-width:100%;direction:ltr}
html[data-cm-theme] :is(.lang,.lang-switch) button{inline-size:auto;min-width:44px;min-height:44px;padding-inline:6px;white-space:nowrap}
html[data-cm-theme] :is(.dashboard-card-toolbar,.admin-card-toolbar){flex-wrap:wrap;overflow:visible}
html[data-cm-theme] :is(.dashboard-card-toolbar,.admin-card-toolbar) button{min-width:44px;min-height:44px;line-height:1.2;white-space:nowrap}
html[data-cm-theme] :is(.dash-collapse,.admin-collapse){min-width:64px}

html[data-cm-theme][data-cm-page="admin"] .top>.top-actions{display:flex;flex:1 1 auto;align-items:center;justify-content:flex-end;gap:8px;min-width:0;flex-wrap:wrap}
html[data-cm-theme][data-cm-page="admin"] :is(.top-links,.top-controls){display:flex;align-items:center;gap:6px;min-width:0;flex-wrap:wrap}
html[data-cm-theme][data-cm-page="admin"] .top-links{justify-content:flex-end}
html[data-cm-theme][data-cm-page="admin"] .top-controls{justify-content:flex-end}
html[data-cm-theme][data-cm-page="admin"] .top-links>a{min-height:44px;margin:0!important;padding-inline:8px;color:var(--cm-text-2)!important;font-size:12.5px;white-space:nowrap}
html[data-cm-theme][data-cm-page="admin"] .top .who{display:inline-flex;flex:0 0 auto;align-items:center;min-height:44px;padding-inline:8px;white-space:nowrap}
html[data-cm-theme][data-cm-page="admin"] #adminRefresh{inline-size:auto;min-width:78px;min-height:44px!important}
html[data-cm-theme][data-cm-page="admin"] #adminLayoutButton{inline-size:auto;min-width:112px;min-height:44px!important}

html[data-cm-theme][data-cm-page="ops"] .top>strong{flex:1 1 auto}
html[data-cm-theme][data-cm-page="ops"] .top nav{display:flex;align-items:center;justify-content:flex-end;gap:6px;min-width:0;flex-wrap:wrap}
html[data-cm-theme][data-cm-page="ops"] .top nav a{min-height:44px;margin:0;padding-inline:10px;white-space:nowrap}
html[data-cm-theme][data-cm-page="ops"] #opsManualRefresh{inline-size:auto;min-width:124px;min-height:44px!important}
html[data-cm-theme][data-cm-page="ops"] #opsLayoutButton{inline-size:auto;min-width:164px;min-height:44px!important}
/* 第二十次 2：平板上顶栏放不下会换行，第二排（老板中台/菜单管理/结账·现金/系统入口 + 退出）此前贴在最左边。
   用 auto 外边距而不是 flex:1——auto 外边距只吃「本行剩下的空隙」：
   换行那一行没有可伸展的项，空隙全给它，整排就被推到右边、和上一排右端对齐；
   一行能排下时空隙已经被标题(flex:1 1 auto)吃光，auto 外边距拿到 0，宽屏观感一点不变。
   手机(≤760)走手机外壳、.top 本就 display:none，这里只管 761 以上。 */
@media(min-width:761px){
  html[data-cm-theme][data-cm-page="ops"] .top nav{margin-inline-start:auto}
}

html[data-cm-theme][data-cm-page="kds"] .top>.stats{display:flex;min-width:0;align-items:center;gap:10px;flex-wrap:wrap}
html[data-cm-theme][data-cm-page="kds"] .top>.stats>div:not(.awake):not(.lang){min-width:48px}
html[data-cm-theme][data-cm-page="kds"] .top .awake{inline-size:auto;min-width:112px;white-space:nowrap}
html[data-cm-theme][data-cm-page="kds"] #refreshButton,
html[data-cm-theme][data-cm-page="checkout"] #checkoutRefresh,
html[data-cm-theme][data-cm-page="floor"] #t-refresh{inline-size:auto;min-width:124px;min-height:44px!important}
html[data-cm-theme][data-cm-page="kds"] :is(.cmw-tool,.tk-f button,.b-cancel){min-height:44px!important}

html[data-cm-theme][data-cm-page="floor"] .top>.r,
html[data-cm-theme][data-cm-page="checkout"] .top>.top-actions{display:flex;min-width:0;align-items:center;gap:8px;flex-wrap:wrap}
html[data-cm-theme][data-cm-page="floor"] #t-logout{inline-size:auto;min-width:96px;min-height:44px!important}

html[data-cm-theme][data-cm-page="menu-admin"] .top nav{display:flex;align-items:center;justify-content:flex-end;gap:6px;min-width:0;flex-wrap:wrap}
html[data-cm-theme][data-cm-page="menu-admin"] .top nav a{min-height:44px;margin:0;padding-inline:10px;white-space:nowrap}

@media(max-width:760px){
  html[data-cm-theme] .cmw-tool,
  html[data-cm-theme] .login-lang button{min-width:44px!important;min-height:44px!important}
  html[data-cm-theme][data-cm-page="ops"] :is(button,.btn,a.btn),
  html[data-cm-theme][data-cm-page="admin"] :is(button,.act-btn){min-height:44px!important}
  html[data-cm-theme][data-cm-page="admin"] :is(.act-btn,.cmw-tool){min-width:44px!important}
  html[data-cm-theme][data-cm-page="admin"] .top>:is(b,strong),
  html[data-cm-theme][data-cm-page="ops"] .top>strong,
  html[data-cm-theme][data-cm-page="menu-admin"] .top>strong{flex:1 1 calc(100% - 98px)}
  html[data-cm-theme][data-cm-page="admin"] .top>.top-actions{order:2;flex:1 1 100%;justify-content:space-between}
  html[data-cm-theme][data-cm-page="admin"] :is(.top-links,.top-controls){justify-content:flex-start}
  html[data-cm-theme][data-cm-page="admin"] .top>.cm-theme-toggle{order:1}
  html[data-cm-theme][data-cm-page="ops"] .top>strong{flex-basis:100%}
  html[data-cm-theme][data-cm-page="ops"] .top nav{justify-content:flex-start}
  html[data-cm-theme][data-cm-page="menu-admin"] .top nav{order:2;flex:1 1 100%;justify-content:flex-start}
  html[data-cm-theme][data-cm-page="kds"] .top>b,
  html[data-cm-theme][data-cm-page="floor"] .top>b,
  html[data-cm-theme][data-cm-page="checkout"] .top>b{order:0;flex:1 1 auto}
  html[data-cm-theme][data-cm-page="kds"] .top>.cm-theme-toggle,
  html[data-cm-theme][data-cm-page="floor"] .top>.cm-theme-toggle,
  html[data-cm-theme][data-cm-page="checkout"] .top>.cm-theme-toggle{order:1}
  html[data-cm-theme][data-cm-page="kds"] .top>.stats,
  html[data-cm-theme][data-cm-page="floor"] .top>.r,
  html[data-cm-theme][data-cm-page="checkout"] .top>.top-actions{order:2;flex:1 1 100%;justify-content:flex-start}
  /* V17 tablet: prevent iOS focus-zoom by keeping text inputs ≥16px on all consoles up to 1024px */
  html[data-cm-page] :is(input:not([type=checkbox]):not([type=radio]),select,textarea){font-size:16px!important}
}
/* V17 tablet A1: on admin the injected language rail (sticky top:0) and the section tabs both pin to top:0 and overlap above 760px. Stack the tabs just below the 54px rail. */
html[data-cm-theme][data-cm-page="admin"] body>.mobile-tabs{top:54px}
/* V19六轮需求58：平板(761-1024)改用电脑端 cmw 自定义面板——多列布局 + 加减号(+/-)缩放 + 拖拽排序,
   全部支持触摸(cmw 用 pointer 事件)。不再像以前中性化成单列,所以毛利/桌台等页不再出现右半空白。 */
@media(min-width:761px) and (max-width:1024px){
  /* 平板触摸友好:拖拽手柄和工具按钮做大一点,手指好点 */
  html[data-cm-page] .cmw-drag,
  html[data-cm-page] .cmw-tool,
  html[data-cm-page] .cmw-resize{min-width:34px;min-height:34px}
  html[data-cm-page] .cmw-workspace{padding-inline:14px}
}

@media(max-width:640px){
  .cm-theme-toggle{min-width:44px;min-height:44px;padding-inline:12px}
  html[data-cm-theme] :is(.lang button,.lang-switch button,.refresh-button,.top button.out,.login-lang button){min-width:44px!important;min-height:44px!important}
  html[data-cm-theme]:is([data-cm-page="ops"],[data-cm-page="kds"],[data-cm-page="floor"],[data-cm-page="checkout"],[data-cm-page="admin"],[data-cm-page="menu-admin"],[data-cm-page="system"]) :is(button,a){min-height:44px!important}
  html[data-cm-theme] :is(.top a,.top button,.dash-collapse,.admin-card-toolbar button,.cmw-tool,.login button,#login button){min-height:44px!important}
  html[data-cm-theme] :is(.dash-collapse,.admin-card-toolbar button,.cmw-tool){min-width:44px!important}
  html[data-cm-theme] :is(.cm-language-dock button){min-width:44px!important;min-height:44px!important}
  html[data-cm-theme] .top a{display:inline-flex!important;align-items:center}
  html[data-cm-page="menu-admin"] .top{align-items:flex-start;flex-wrap:wrap!important}
  html[data-cm-theme] .top{padding:10px 12px!important}
  html[data-cm-page="menu-admin"] .top nav{display:flex;flex:1 1 100%;gap:6px;overflow:visible;padding-bottom:2px;flex-wrap:wrap}
  html[data-cm-page="menu-admin"] .top nav a{display:inline-flex;align-items:center;min-height:44px;margin:0;padding-inline:10px;white-space:nowrap}
  html[data-cm-theme][data-cm-page="admin"] .top>.top-actions{display:block}
  html[data-cm-theme][data-cm-page="admin"] .top-links{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;width:100%}
  html[data-cm-theme][data-cm-page="admin"] .top-links>a{min-width:0;padding:4px!important;border:1px solid var(--line);border-radius:5px;text-align:center;font-size:11px;line-height:1.15;white-space:normal!important;text-decoration:none}
  html[data-cm-theme][data-cm-page="admin"] .top-controls{display:flex!important;flex-wrap:nowrap!important;gap:4px;width:100%;margin-top:6px}
  html[data-cm-theme][data-cm-page="admin"] .top-controls button{font-size:11px}
  html[data-cm-page="system"] .top .wrap{flex-wrap:wrap!important;padding-block:8px}
  html[data-cm-page="system"] .top .title{order:-1;flex:1 1 100%;text-align:center}
}

/* V15 mobile console shell. The original controls remain in the DOM as the
   single source of truth; this layer only presents them for narrow screens. */
.cm-mobile-console-header,
.cm-mobile-section-nav,
.cm-mobile-console-menu{display:none}
.cm-mobile-console-menu[hidden]{display:none!important}
html[data-cm-page="menu-admin"] dialog:not([open]){display:none!important}
.cm-dialog-fallback-backdrop{
  position:fixed;
  inset:0;
  z-index:109;
  background:rgba(20,16,13,.68);
}
.cm-dialog-fallback-backdrop[hidden]{display:none!important}
.cm-dialog-fallback[open]{
  position:fixed;
  inset:50% auto auto 50%;
  z-index:110;
  max-height:calc(var(--cm-viewport-height,100vh) - 24px);
  margin:0;
  overflow:auto;
  transform:translate(-50%,-50%);
}
body.cm-dialog-open{overflow:hidden}
.cm-host-notice{
  position:fixed;
  left:50%;
  bottom:18px;
  z-index:140;
  width:max-content;
  max-width:calc(100% - 24px);
  padding:11px 14px;
  border-radius:7px;
  border:1px solid var(--line,#6D6357);
  background:var(--cm-surface-2,#342C25);
  color:var(--cm-text,#F7F0E3);
  box-shadow:0 10px 28px rgba(0,0,0,.28);
  font-size:12px;
  line-height:1.55;
  transform:translate(-50%,14px);
  opacity:0;
  pointer-events:none;
  transition:.16s ease;
}
.cm-host-notice.cm-show{transform:translate(-50%,0);opacity:1}

/* V19四次修改需求38/39：手机引擎(tab 视图+自定义面板)断点扩展到平板(≤1024),平板也能用同一套 tab+自定义;
   平板专属的「内容限宽居中、不拉长」在 @media(min-width:761px) and (max-width:1024px) 里覆盖(见下方平板块)。 */
@media(max-width:760px){
  html[data-cm-page]{scroll-padding-top:160px;overflow-x:hidden}   /* V19 需求3：两排导航加高锚点偏移，点标签跳转不被遮挡 */
  html[data-cm-page] body{
    min-height:100vh;
    min-height:var(--cm-viewport-height,100dvh);
    overflow-x:hidden;
    padding-bottom:20px;
    padding-bottom:calc(20px + env(safe-area-inset-bottom,0px));
  }
  html[data-cm-page] body.cm-console-menu-open{overflow:hidden}
  html.cm-mobile-console-mounted[data-cm-page] body>.top{display:none!important}
  html.cm-mobile-console-mounted[data-cm-page="kds"] body>.top{
    display:block!important;
    /* 第十八次 q7：原来 padding:0 让指标条贴死顶栏上沿（上 0px / 下 14px，截图坐实）。
       恢复对称的天地边距，四个指标框回到与平板/桌面一致的卡片观感。 */
    padding:8px 10px!important;
    border-bottom:1px solid var(--line,#453A2C);
  }
  html.cm-mobile-console-mounted[data-cm-page="kds"] body>.top>b,
  html.cm-mobile-console-mounted[data-cm-page="kds"] body>.top>.cm-theme-toggle,
  html.cm-mobile-console-mounted[data-cm-page="kds"] body>.top>.stats>:not(.kds-metrics){
    display:none!important;
  }
  html.cm-mobile-console-mounted[data-cm-page="kds"] body>.top>.stats{
    display:block!important;
    width:100%;
  }
  html.cm-mobile-console-mounted[data-cm-page="kds"] .kds-metrics{
    grid-template-columns:repeat(4,minmax(0,1fr));
    /* q7：贴条式 gap:0+竖分隔线与其他端不统一，改回间隙卡片（基础层自带 1px 边框圆角） */
    gap:6px;
    width:100%;
  }
  html.cm-mobile-console-mounted[data-cm-page="kds"] .kds-metric{
    inline-size:auto!important;
    min-width:0!important;
    min-height:56px!important;
    padding:6px 4px;
    white-space:normal!important;
  }
  html.cm-mobile-console-mounted[data-cm-page="kds"] .kds-metric:last-child{
    border-inline-end:1px solid var(--line,#453A2C);
  }
  html.cm-mobile-console-mounted[data-cm-page] body>.cm-language-rail,
  html.cm-mobile-console-mounted[data-cm-page] body>.mobile-tabs,
  html.cm-mobile-console-mounted[data-cm-page="finance"] .section-nav{display:none!important}
  html:not(.cm-mobile-console-mounted) :is(
    .cm-mobile-console-header,
    .cm-mobile-section-nav,
    .cm-mobile-console-menu
  ){display:none!important}

  .cm-mobile-console-header{
    position:sticky;
    top:0;
    z-index:80;
    display:grid;
    /* 第十七次修3：轨道按最大按钮(员工屏48px)留位并拉开间距，↻ 与 ☰ 不再贴死 */
    grid-template-columns:minmax(0,1fr) 48px 48px;
    align-items:center;
    gap:10px;
    min-height:56px;
    padding:0 8px;
    padding:env(safe-area-inset-top,0px) max(8px,env(safe-area-inset-right,0px)) 0 max(8px,env(safe-area-inset-left,0px));
    border-bottom:1px solid var(--line,#D9CCB6);
    background:var(--cm-surface-1,var(--card,#FFFDF6));
    color:var(--cm-text,var(--ink,#221D18));
    direction:ltr;
  }
  .cm-mobile-console-refresh,
  .cm-mobile-console-more{
    display:grid!important;
    place-items:center;
    width:44px;
    min-width:44px!important;
    height:44px;
    min-height:44px!important;
    padding:0!important;
    border:0!important;
    border-radius:6px!important;
    background:transparent!important;
    color:inherit!important;
    text-decoration:none;
    font:900 20px/1 Georgia,"STSong","Songti SC",serif;
    -webkit-tap-highlight-color:transparent;
    touch-action:manipulation;
  }
  .cm-mobile-console-refresh,
  .cm-mobile-console-more{font:900 22px/1 system-ui,-apple-system,"Segoe UI",sans-serif}
  .cm-mobile-console-more{justify-self:end}
  html[dir="rtl"] .cm-mobile-console-title{direction:rtl;text-align:right}
  .cm-mobile-console-refresh:active,
  .cm-mobile-console-more:active{background:var(--cm-surface-2,var(--sand,#F0E1C6))!important}
  /* 第十七次修3：↻ 按下必有可见反馈（转一圈），配合 JS 的「源按钮失效→整页刷新」兜底 */
  @keyframes cm-refresh-spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
  .cm-mobile-console-refresh.cm-refresh-spin{animation:cm-refresh-spin .5s ease}
  .cm-mobile-console-title{
    display:flex;
    align-items:center;
    min-height:44px!important;
    padding:1px 8px 0;
    color:inherit;
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    text-align:start;
    text-decoration:none;
    font:900 16px/1.2 Georgia,"STSong","Songti SC",serif;
  }

  .cm-mobile-section-nav{
    position:sticky;
    top:calc(56px + env(safe-area-inset-top,0px));
    z-index:72;
    display:flex;
    flex-wrap:wrap;                 /* V19 需求3：标签换行成两排/多排，一屏显示全部，不再横向滑动 */
    gap:6px;
    overflow:visible;
    padding:5px 10px;
    padding:5px max(10px,env(safe-area-inset-right,0px)) 5px max(10px,env(safe-area-inset-left,0px));
    border-bottom:1px solid var(--line,#D9CCB6);
    background:var(--cm-surface-0,var(--paper,var(--bg,#F6F0E1)));
    scrollbar-width:none;
    overscroll-behavior-inline:contain;
  }
  .cm-mobile-section-nav::-webkit-scrollbar{display:none}
  .cm-mobile-section-nav a{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:44px!important;
    padding:0 12px;
    border:0;
    border-bottom:2px solid transparent;
    background:transparent;
    color:var(--cm-text-2,var(--ink2,#5F574C));
    text-decoration:none;
    font-size:13px;
    font-weight:800;
    white-space:nowrap;
    scroll-margin-inline:10px;
  }
  .cm-mobile-section-nav a.cm-active{
    border-bottom-color:var(--red,#B5372A);
    color:var(--cm-text,var(--ink,#221D18));
  }
  .cm-mobile-section-nav a[data-overview="true"]{font-weight:900}
  .cm-mobile-section-target{scroll-margin-top:160px!important}

  .cm-mobile-console-menu{
    position:fixed;
    inset:0;
    top:var(--cm-viewport-offset-top,0px);
    z-index:120;
    display:block; /* 压过 212 行的未挂载全局基线 display:none */
    width:100%;
    height:100vh;
    height:var(--cm-viewport-height,100dvh);
    background:rgba(20,16,13,.62);
  }
  /* 第十七次修1：设置面板不再是「底部/侧边抽屉」，手机/平板/折叠屏/电脑统一为
     贴着 ☰ 正下方、默认靠屏幕右侧的锚定弹层；锚点坐标由 JS 打开时写入
     --cm-menu-top / --cm-menu-right / --cm-menu-left（物理坐标，☰ 在左侧(如阿语 RTL)时自动换边）。 */
  .cm-mobile-console-sheet{
    box-sizing:border-box;
    position:fixed;
    top:var(--cm-menu-top,calc(64px + env(safe-area-inset-top,0px)));
    right:var(--cm-menu-right,10px);
    left:auto;
    width:var(--cm-menu-width,min(400px,calc(100vw - 20px)));
    max-height:var(--cm-menu-max-height,calc(var(--cm-viewport-height,100dvh) - var(--cm-menu-top,64px) - 14px));
    overflow:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    scrollbar-gutter:stable;
    padding:10px;
    padding-bottom:max(12px,env(safe-area-inset-bottom,0px));
    border:1px solid var(--line,#D9CCB6);
    border-radius:14px;
    background:var(--cm-surface-1,var(--card,#FFFDF6));
    color:var(--cm-text,var(--ink,#221D18));
    box-shadow:0 18px 44px rgba(20,16,13,.30);
  }
  .cm-mobile-console-menu.cm-menu-anchor-left .cm-mobile-console-sheet{right:auto;left:var(--cm-menu-left,10px)}
  .cm-mobile-console-sheet-head{
    position:sticky;
    top:-10px;
    z-index:2;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin:-10px -10px 8px;
    padding:8px 10px;
    border-bottom:1px solid var(--line,#D9CCB6);
    background:var(--cm-surface-1,var(--card,#FFFDF6));
  }
  .cm-mobile-console-sheet h2{margin:0;font:900 18px/1.2 Georgia,"STSong","Songti SC",serif}
  .cm-mobile-console-sheet h3{
    margin:10px 0 5px;
    color:var(--cm-text-3,var(--muted,#6F6253));
    font-size:11px;
    letter-spacing:.08em;
    text-transform:uppercase;
  }
  .cm-mobile-console-close{
    width:44px;
    min-width:44px!important;
    height:44px;
    min-height:44px!important;
    padding:0!important;
    border:1px solid var(--line,#D9CCB6)!important;
    border-radius:7px!important;
    background:var(--cm-control-bg,var(--card,#FFFDF6))!important;
    color:inherit!important;
    font-size:26px;
  }
  .cm-mobile-console-identity{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin:0;
    padding:8px 10px;
    border:1px solid var(--line,#D9CCB6);
    background:var(--cm-surface-2,var(--sand,#F0E1C6));
  }
  .cm-mobile-console-identity small{color:var(--cm-text-3,var(--muted,#6F6253))}
  .cm-mobile-console-routes,
  .cm-mobile-console-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:6px;
  }
  .cm-mobile-console-routes a,
  .cm-mobile-console-actions button,
  .cm-mobile-console-languages button{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:44px!important;
    padding:6px 8px!important;
    border:1px solid var(--line,#D9CCB6)!important;
    border-radius:7px!important;
    background:var(--cm-control-bg,var(--card,#FFFDF6))!important;
    color:var(--cm-text,var(--ink,#221D18))!important;
    text-align:center;
    text-decoration:none;
    font-size:13px;
    font-weight:800;
  }
  .cm-mobile-console-languages{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:6px;
    direction:ltr;
  }
  .cm-mobile-console-languages button.cm-active{
    border-color:var(--red,#B5372A)!important;
    background:var(--red,#B5372A)!important;
    color:#FFF!important;
  }

  html[data-cm-keyboard="open"] .cm-mobile-section-nav{position:static}
  html[data-cm-page="system"] body.system-locked .cm-mobile-console-header,
  html[data-cm-page="system"] body.system-locked .cm-mobile-section-nav{display:none!important}

  html[data-cm-page] :is(input,select,textarea){font-size:16px!important}
  html[data-cm-page] :is(button,.btn,a.btn,summary,[role="button"]){min-height:44px}
  html[data-cm-page] :is(#login,.login,.system-gate){
    position:fixed!important;
    top:var(--cm-viewport-offset-top,0px)!important;
    right:0!important;
    bottom:auto!important;
    left:0!important;
    z-index:130!important;
    width:100%!important;
    height:100vh!important;
    height:var(--cm-viewport-height,100dvh)!important;
    min-height:0!important;
    overflow:auto;
    align-items:center;
    padding:16px!important;
    padding:calc(16px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) calc(16px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))!important;
  }
  html[data-cm-page] :is(.login-box,#login .box,.gate-card){
    width:min(100%,420px)!important;
    max-height:calc(var(--cm-viewport-height,100dvh) - 32px);
    overflow:auto;
    padding:20px!important;
    border-radius:10px!important;
  }
  html[data-cm-page] :is(dialog,.dlg){
    max-height:calc(var(--cm-viewport-height,100dvh) - 24px);
    overflow:auto;
  }

  html[data-cm-page] .cmw-layout-button{display:none!important}
  html[data-cm-page] .cmw-workspace{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:10px!important;
    width:100%!important;
    margin:8px 0 0!important;
    padding:0 max(10px,env(safe-area-inset-right,0px)) 24px max(10px,env(safe-area-inset-left,0px))!important;
    padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))!important;
  }
  html[data-cm-page] .cmw-card,
  html[data-cm-page] .cmw-card[style]{
    grid-column:1/-1!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    overflow:visible!important;
    border-radius:9px!important;
    box-shadow:none!important;
    transition:none!important;
  }
  html[data-cm-page] .cmw-toolbar,
  html[data-cm-page] .cmw-resize{display:none!important}
  html[data-cm-page] .cmw-collapsed .cmw-body{display:block!important}
  html[data-cm-page] .cmw-body{overflow:visible!important}
  html[data-cm-page] [data-cmw-id="grid"]{order:1}
  html[data-cm-page] [data-cmw-id="stockPanel"]{order:2}
  html[data-cm-page="menu-admin"] [data-cmw-id="menu-admin-1"]{order:0}
  html[data-cm-page="menu-admin"] [data-cmw-id="menu-admin-3"]{order:1}
  html[data-cm-page="menu-admin"] [data-cmw-id="menu-admin-4"]{order:2}
  html[data-cm-page="menu-admin"] [data-cmw-id="menu-admin-2"]{order:3}

  html[data-cm-page] :is(main.wrap,.wrap){
    width:100%!important;
    max-width:1180px!important;
    margin-inline:auto!important;
    padding-right:max(10px,env(safe-area-inset-right,0px))!important;
    padding-left:max(10px,env(safe-area-inset-left,0px))!important;
  }
  html[data-cm-page] :is(.hero,.panel,.card,.kpi,.metric,.page,.sec,.stock,.handoff-shelf){
    box-shadow:none!important;
  }
  html[data-cm-page] :is(.panel,.card,.page){
    min-height:0!important;
    border-radius:9px!important;
  }
  html[data-cm-page] :is(.grid,.priority-ops,.admin-dashboard,.metrics,.overview-grid,.work-grid,.planning-grid,.statement-grid){
    grid-template-columns:1fr!important;
    gap:10px!important;
  }
  /* V28 例外：新烤台屏手机竖屏必须是【一行两卡】（需求 6.2），
     上面那条把所有 .grid 压成单列的移动端兜底规则对它不适用。
     只放行 data-cm-page="kds"，旧版 kds-classic 与后厨 kitchen 仍走单列。 */
  html[data-cm-page="kds"] .grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
  }
  html[data-cm-page="kds"] .grid.recent{grid-template-columns:minmax(0,1fr)!important}
  html[data-cm-page] :is(.kpis,.stats,.agg,.metrics,.report-grid){
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
  }
  html[data-cm-page] .report-grid div{padding:10px!important}
  html[data-cm-page] .report-grid b{font-size:18px!important}
  html[data-cm-page] :is(.kpi,.stat,.agg .a,.metric){
    min-height:0!important;
    padding:11px!important;
  }
  html[data-cm-page] :is(.kpi b,.stat .v,.agg .a b,.metric strong){font-size:22px!important}
  html[data-cm-page] :is(.kpi small,.stat .k,.agg .t,.metric small,.metric span){font-size:11px!important}
  html[data-cm-page] :is(.panel,.card){padding:12px!important}
  html[data-cm-page] :is(.panel h2,.panel h3,.panel h4,.card h2,.card h3){margin-bottom:9px!important}
  html[data-cm-page] .toast{
    top:10px!important;
    top:calc(10px + env(safe-area-inset-top,0px))!important;
    max-width:calc(100% - 20px)!important;
  }

  html[data-cm-page="system"] main{padding-block:18px 40px!important}
  html[data-cm-page="system"] .hero{
    grid-template-columns:1fr!important;
    gap:12px!important;
    margin-bottom:20px!important;
  }
  html[data-cm-page="system"] .hero h1{
    margin:0 0 8px!important;
    font-size:clamp(28px,9vw,40px)!important;
    line-height:1.08!important;
  }
  html[data-cm-page="system"] .note{
    padding:12px!important;
    border:1px solid var(--line)!important;
    border-inline-start:4px solid var(--red)!important;
  }
  html[data-cm-page="system"] .section-title{
    margin:24px 0 10px!important;
    gap:4px!important;
  }
  html[data-cm-page="system"] .section-title h2{font-size:22px!important}
  html[data-cm-page="system"] .pages{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  html[data-cm-page="system"] .page{padding:12px!important}
  html[data-cm-page="system"] .page b{font-size:17px!important}
  html[data-cm-page="system"] .page small{margin:4px 0 12px!important;font-size:11px!important}
  html[data-cm-page="ops"] .wrap{padding-top:10px!important}
  html[data-cm-page="ops"] .hero{
    display:flex!important;
    align-items:flex-start!important;
    flex-direction:column!important;
    gap:7px!important;
    margin:0 0 10px!important;
    padding:10px 2px!important;
  }
  html[data-cm-page="ops"] .hero h1{font-size:24px!important}
  html[data-cm-page="ops"] .hero p{font-size:12px!important}
  html[data-cm-page="ops"] .kpis{padding:0!important}
  html[data-cm-page="ops"] .grid{padding:0!important}
  html[data-cm-page="ops"] .panel{
    grid-column:1/-1!important;
    height:auto!important;
    min-height:0!important;
    overflow:visible!important;
  }
  html[data-cm-page="ops"] .panel[data-dash-card].dash-collapsed>:not(.dashboard-card-toolbar){
    display:block!important;
  }
  html[data-cm-page="ops"] .dashboard-card-toolbar,
  html[data-cm-page="ops"] .dash-resize-handle,
  html[data-cm-page="ops"] .ops-layout-hint{display:none!important}
  html[data-cm-page="ops"] [data-cm-mobile-section="alerts"]{order:1}
  html[data-cm-page="ops"] [data-cm-mobile-section="bookings"]{order:2}
  html[data-cm-page="ops"] [data-cm-mobile-section="grill"]{order:3}
  html[data-cm-page="ops"] [data-cm-mobile-section="service"]{order:4}
  html[data-cm-page="ops"] [data-cm-mobile-section="payments"]{order:5}
  html[data-cm-page="ops"] [data-cm-mobile-section="report"]{order:6}

  html[data-cm-page="floor"] body{max-width:none!important;padding-bottom:calc(20px + env(safe-area-inset-bottom,0px))!important}
  html[data-cm-page="floor"] :is(.focus-wrap,.stats,.sec){padding-inline:10px!important}
  html[data-cm-page="floor"] .stats{padding-block:10px!important}
  html[data-cm-page="floor"] .sec{padding-block:4px 10px!important}
  html[data-cm-page="floor"] .task{padding:12px!important}

  html[data-cm-page="kds"] .nudgebar{padding:8px 10px 0!important}
  html[data-cm-page="kds"] .agg{padding:10px!important}
  html[data-cm-page="kds"] .batchbar{
    position:static!important;
    grid-template-columns:1fr 1fr!important;
    padding:10px!important;
  }
  html[data-cm-page="kds"] .batchbar>div{grid-column:1/-1!important}
  html[data-cm-page="kds"] .handoff-shelf,
  html[data-cm-page="kds"] .stock{margin:0 10px 10px!important}
  html[data-cm-page="kds"] .grid{padding:0 10px 14px!important}
  html[data-cm-page="kds"] .tk{
    border-inline-start:4px solid var(--yl)!important;
  }
  html[data-cm-page="kds"] .tk-b{max-height:none!important;overflow:visible!important}
  html[data-cm-page="kds"] .taskitem{min-height:70px!important}
  html[data-cm-page="kds"] .item-actions button{min-width:92px!important;min-height:48px!important}

  html[data-cm-page="checkout"] .wrap{margin-top:0!important;padding-top:10px!important}
  html[data-cm-page="checkout"] .card{margin-bottom:10px!important}
  html[data-cm-page="checkout"] .deposit-modes{grid-template-columns:1fr!important}

  html[data-cm-page="admin"] .wrap{padding-top:10px!important}
  html[data-cm-page="admin"] .kpis{margin-bottom:10px!important}
  html[data-cm-page="admin"] .priority-ops{display:grid!important}
  html[data-cm-page="admin"] .admin-dashboard>.panel{
    grid-column:1/-1!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    overflow-x:hidden!important;
    transition:none!important;
  }
  html[data-cm-page="admin"] .admin-dashboard>.panel.admin-collapsed>:not(.admin-card-toolbar):not(h4){display:block!important}
  html[data-cm-page="admin"] .admin-dashboard>.panel.admin-collapsed>:not(.admin-card-toolbar){display:block!important}
  html[data-cm-page="admin"] .admin-card-toolbar,
  html[data-cm-page="admin"] .admin-resize-handle,
  html[data-cm-page="admin"] .admin-layout-hint{display:none!important}
  html[data-cm-page="admin"] :is(.yield-kpis,.yield-forms,.inventory-forms,.form-grid){
    grid-template-columns:1fr!important;
  }
  html[data-cm-page="admin"] table{max-width:100%}

  html[data-cm-page="finance"] .wrap{padding:12px 10px 36px!important}
  html[data-cm-page="finance"] .hero{
    grid-template-columns:1fr!important;
    gap:12px!important;
    margin-bottom:12px!important;
  }
  html[data-cm-page="finance"] .hero h1{font-size:clamp(26px,8vw,36px)!important}
  html[data-cm-page="finance"] .hero p{font-size:12px!important}
  html[data-cm-page="finance"] .notice{
    grid-template-columns:1fr!important;
    gap:7px!important;
    margin:10px 0!important;
    padding:10px!important;
    border-left-width:1px!important;
    border-inline-start-width:4px!important;
  }
  html[data-cm-page="finance"] .finance-workspace{
    grid-template-columns:1fr!important;
    gap:10px!important;
  }
  html[data-cm-page="finance"] #financeWorkspace>#overview{order:var(--cm-mobile-order,-2)}
  html[data-cm-page="finance"] #financeWorkspace>#smartIntake{
    order:var(--cm-mobile-order,-1);
    grid-column:1/-1!important;
  }
  html[data-cm-page="finance"] .layout-card,
  html[data-cm-page="finance"] .layout-card[style]{
    grid-column:1/-1!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    overflow:visible!important;
  }
  html[data-cm-page="finance"] .layout-card.is-collapsed .layout-card-body{display:none!important}
  html[data-cm-page="finance"] .layout-card-toolbar{display:grid!important}
  html[data-cm-page="finance"] .layout-editor{display:none!important}
  html[data-cm-page="finance"] .metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  html[data-cm-page="finance"] .metric{min-height:0!important;padding:11px!important}
  html[data-cm-page="finance"] :is(.overview-grid,.work-grid,.planning-grid,.statement-grid,.form-grid){
    grid-template-columns:1fr!important;
  }
  html[data-cm-page="finance"] :is(.panel,.smart-intake){padding:12px!important}
  html[data-cm-page="finance"] .smart-intake{margin-bottom:10px!important}
  html[data-cm-page="finance"] :is(.intake-grid,.intake-actions){grid-template-columns:1fr!important}
  html[data-cm-page="finance"] :is(.intake-head,.section-head,.form-actions,.ledger-tools,.export){
    align-items:stretch!important;
    flex-direction:column!important;
  }
  html[data-cm-page="finance"] :is(.intake-kicker,.notice span,.metric span,.panel p,.message,td,th){
    font-size:max(11px,1em)!important;
  }
  html[data-cm-page="finance"] .export{
    position:static!important;
    padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))!important;
  }

  html[data-cm-page="menu-admin"] .wrap{padding-top:10px!important}
  html[data-cm-page="menu-admin"] .hero{
    align-items:stretch!important;
    flex-direction:column!important;
    gap:8px!important;
    padding:12px!important;
  }
  html[data-cm-page="menu-admin"] .hero h1{font-size:24px!important}
  html[data-cm-page="menu-admin"] .tools{grid-template-columns:1fr!important;padding:10px!important}
  html[data-cm-page="menu-admin"] .tools input{grid-column:auto!important}
  html[data-cm-page="menu-admin"] .language-settings{grid-template-columns:1fr!important;padding:12px!important}
  html[data-cm-page="menu-admin"] .panel{padding:0!important;overflow:visible!important}
  html[data-cm-page="menu-admin"] table,
  html[data-cm-page="menu-admin"] tbody{display:block!important;width:100%!important;min-width:0!important}
  html[data-cm-page="menu-admin"] thead{display:none!important}
  html[data-cm-page="menu-admin"] #rows tr{
    display:grid!important;
    grid-template-columns:72px minmax(0,1fr)!important;
    gap:8px 10px!important;
    margin:0 0 9px!important;
    padding:10px!important;
    border:1px solid var(--line)!important;
    background:var(--cm-surface-1,var(--card))!important;
  }
  html[data-cm-page="menu-admin"] #rows tr.category-row{
    display:block!important;
    padding:0!important;
    border:0!important;
  }
  html[data-cm-page="menu-admin"] #rows td{
    display:block!important;
    min-width:0!important;
    padding:0!important;
    border:0!important;
    font-size:13px!important;
  }
  html[data-cm-page="menu-admin"] #rows td[data-label]::before{
    content:attr(data-label);
    display:block;
    margin-bottom:2px;
    color:var(--cm-text-3,var(--muted));
    font-size:10px;
    font-weight:800;
  }
  html[data-cm-page="menu-admin"] #rows td:nth-child(1){grid-row:1/span 4}
  html[data-cm-page="menu-admin"] #rows td:nth-child(2){grid-column:2}
  html[data-cm-page="menu-admin"] #rows td:nth-child(3),
  html[data-cm-page="menu-admin"] #rows td:nth-child(6){display:none!important}
  html[data-cm-page="menu-admin"] #rows td:nth-child(4),
  html[data-cm-page="menu-admin"] #rows td:nth-child(5),
  html[data-cm-page="menu-admin"] #rows td:nth-child(7),
  html[data-cm-page="menu-admin"] #rows td:nth-child(8){grid-column:2}
  html[data-cm-page="menu-admin"] .thumb{width:64px!important}
  html[data-cm-page="menu-admin"] dialog:not([open]){display:none!important}
  html[data-cm-page="menu-admin"] dialog[open]{
    position:fixed;
    inset:var(--cm-viewport-offset-top,0px) 0 auto 0;
    width:calc(100% - 16px)!important;
    height:var(--cm-viewport-height,100dvh);
    max-height:var(--cm-viewport-height,100dvh);
    margin:auto!important;
    overflow:auto!important;
    box-shadow:none!important;
  }
  html[data-cm-page="menu-admin"] .dlg{padding:16px!important}
  html[data-cm-page="menu-admin"] .form{grid-template-columns:1fr!important}
  html[data-cm-page="menu-admin"] .span2{grid-column:auto!important}

  html[data-cm-page] :is(main.wrap,.wrap){
    padding-right:max(10px,env(safe-area-inset-right,0px))!important;
    padding-left:max(10px,env(safe-area-inset-left,0px))!important;
  }
  html[data-cm-page="floor"] :is(.focus-wrap,.stats,.sec),
  html[data-cm-page="kds"] :is(.nudgebar,.agg,.batchbar,.grid){
    padding-right:max(10px,env(safe-area-inset-right,0px))!important;
    padding-left:max(10px,env(safe-area-inset-left,0px))!important;
  }
  html[data-cm-page="kds"] :is(.handoff-shelf,.stock){
    margin-right:max(10px,env(safe-area-inset-right,0px))!important;
    margin-left:max(10px,env(safe-area-inset-left,0px))!important;
  }

  html[dir="rtl"][data-cm-page] .cm-mobile-console-title{text-align:end}
  html[dir="rtl"][data-cm-page] .cm-mobile-section-nav{direction:rtl}

  /* V18: tab view — only the active section group stays visible */
  html.cm-tabs-mode[data-cm-page] .cm-tab-off{display:none!important}
  /* V18: per-device custom arrangement (order + hidden) */
  html[data-cm-page] [data-cm-mobile-section],
  html[data-cm-page] [data-cm-mobile-group]{order:var(--cm-mobile-order,0)}
  html[data-cm-page] .cm-user-hidden{display:none!important}
  /* V19二次修改需求26：卡片级折叠——收起卡片只留标题条，点击底部提示可展开 */
  html[data-cm-page] .cm-user-fold{max-height:78px!important;overflow:hidden!important;position:relative}
  html[data-cm-page] .cm-user-fold::after{content:'▾ 已折叠 · 点此展开';position:absolute;left:0;right:0;bottom:0;height:36px;display:flex;align-items:center;justify-content:center;font:800 11px/1 system-ui,-apple-system,sans-serif;color:var(--cm-text-2,#5F574C);background:linear-gradient(rgba(255,253,247,0),var(--cm-surface-1,var(--card,#fffdf7)) 55%);cursor:pointer;z-index:5;pointer-events:none}
  /* Long-card folding keeps vertical touch gestures on the page. A collapsed card
     is clipped behind an anchored reveal button instead of becoming a nested scroller. */
  html[data-cm-page] .cm-clamped{position:relative}
  html[data-cm-page] .cm-clamped:not(.cm-clamp-open){max-height:78vh!important;overflow:hidden!important;touch-action:pan-y}
  html[data-cm-page] .cm-clamp-toggle{
    display:block;margin:10px auto 4px;min-height:48px;padding:0 18px;
    border:1px solid var(--line,rgba(130,110,90,.4));border-radius:999px;
    background:var(--cm-control-bg,var(--card,#fffdf8));color:var(--cm-text,var(--ink,#2e2823));
    font:800 13px/1 system-ui,-apple-system,"Segoe UI",sans-serif;cursor:pointer;
    /* V19 需求1：折叠按钮若落在网格容器(如 system .pages)内，展开态曾被 align-self:stretch 纵向拉伸成巨型块。
       固定为独占一行、内容宽、水平垂直都居中的小药丸，与其它页收起按钮一致。 */
    grid-column:1/-1;justify-self:center;align-self:center;width:max-content;max-width:100%;
  }
  html[data-cm-page] .cm-clamped:not(.cm-clamp-open) .cm-clamp-toggle{
    position:absolute;left:50%;bottom:10px;z-index:6;transform:translateX(-50%);
    box-shadow:0 4px 14px rgba(20,15,10,.18);
  }
  html[data-cm-page] .cm-clamp-toggle[hidden]{display:none!important}
  /* V18: mobile arrangement editor */
  .cm-layout-rows{display:grid;gap:8px;margin:10px 0}
  .cm-layout-row{
    display:flex;align-items:center;justify-content:space-between;gap:10px;
    padding:9px 12px;border:1px solid var(--line,rgba(130,110,90,.3));border-radius:12px;
    background:var(--cm-surface-2,var(--card,#fffdf7));
    font:700 14px/1.3 system-ui,-apple-system,"Segoe UI",sans-serif;
  }
  .cm-layout-row-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
  .cm-layout-row button{
    min-width:44px;min-height:40px;padding:0 10px;border:1px solid var(--line,rgba(80,65,52,.3));
    border-radius:9px;background:var(--cm-control-bg,var(--card,#fffdf8));
    color:var(--cm-text,var(--ink,#2e2823));font:800 13px/1 system-ui,sans-serif;cursor:pointer;
  }
  .cm-layout-row button:disabled{opacity:.35}
  /* V20第六次修改需求：标签行按钮变多(改名/删除),允许换行不撑破;删除按钮红色提示;改名行内输入。 */
  .cm-layout-row{flex-wrap:wrap}
  .cm-layout-row>span{min-width:0;flex:1 1 auto}
  .cm-tab-delete{border-color:var(--red,#c9402f)!important;color:var(--red,#c9402f)!important}
  .cm-tab-rename-input{flex:1 1 60%;min-width:0;min-height:40px;padding:6px 10px;border:1px solid var(--red,#c9402f);border-radius:9px;background:var(--cm-control-bg,var(--card,#fffdf8));color:var(--cm-text,var(--ink,#2e2823));font:800 14px/1 system-ui,sans-serif}
  .cm-tab-rename-input:focus-visible{outline:2px solid var(--red,#c9402f);outline-offset:1px}
  .cm-layout-hidden .cm-layout-row{opacity:.72}
  /* V19三次修改需求31/32：置顶按钮已复用 .cm-layout-row button 样式；下面是卡片分配段的下拉与提示。 */
  .cm-layout-card-hint{margin:2px 0 8px;color:var(--cm-text-soft,var(--muted,#7c6f63));font:600 12px/1.5 system-ui,sans-serif}
  .cm-layout-cards .cm-layout-row{gap:8px}
  .cm-layout-cards .cm-layout-row>span{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .cm-card-tab-select{flex:0 0 auto;max-width:48%;min-height:40px;padding:6px 10px;border:1px solid var(--line,rgba(80,65,52,.3));border-radius:9px;background:var(--cm-control-bg,var(--card,#fffdf8));color:var(--cm-text,var(--ink,#2e2823));font:800 12.5px/1 system-ui,sans-serif;cursor:pointer}
  /* V26第十三次：卡片调序按标签分组——每个标签一个小标题（带卡片数），其下的卡片行可直接上移/下移（就像标签本身可调序）。 */
  .cm-card-group-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:14px 2px 2px;padding:0 2px;color:var(--cm-text-soft,var(--muted,#7c6f63));font:900 12px/1.2 system-ui,sans-serif}
  .cm-card-group-head:first-child{margin-top:2px}
  .cm-card-group-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .cm-card-group-count{flex:0 0 auto;min-width:20px;padding:1px 8px;border-radius:999px;background:var(--cm-surface-2,rgba(130,110,90,.18));color:var(--cm-text,var(--ink,#2e2823));font-size:11px;text-align:center}
  .cm-layout-cards .cm-card-row{margin-inline-start:8px}
  .cm-layout-foot{margin-top:12px}
}
/* V19六轮需求57：电脑端把公开语言横条收进右上角一个 ☰ 设置浮标(效仿手机/平板的 ☰),默认不常驻、不挡导航;
   点 ☰ 才在其正下方弹出语言列表;顶部导航右侧留出 ☰ 的位置。手机/平板仍隐藏它(自身已有 ☰ 菜单)。 */
.cm-desktop-gear{display:none!important}
@media(min-width:761px){
  .cm-desktop-gear:not([hidden]){position:fixed;top:9px;right:10px;z-index:132;width:40px;height:40px;border-radius:10px;border:1px solid var(--line,rgba(80,65,52,.3));background:var(--cm-surface,var(--card,#fffdf8));color:var(--cm-text,var(--ink,#2e2823));font:700 17px/1 system-ui,sans-serif;cursor:pointer;box-shadow:0 4px 14px rgba(46,40,35,.16);display:grid!important;place-items:center}
  .cm-desktop-gear:hover,.cm-desktop-gear[aria-expanded="true"]{border-color:var(--red,#d9482f)}
  /* 第十七次修3：顶栏给 ☰ 浮标多留位，页面自己的「手动刷新」等按钮不再贴着 ☰ */
  html[data-cm-page] .top{padding-right:76px}
  /* V19六轮需求58：平板/电脑都走电脑端布局,隐藏手机引擎残留的 tab 导航条与头部(避免平板顶部多一条空导航) */
  html[data-cm-page] .cm-mobile-section-nav,
  html[data-cm-page] .cm-mobile-console-header{display:none!important}
  html[data-cm-page] .cm-language-rail{display:none!important}
  body.cm-desktop-gear-open .cm-language-rail{display:flex!important;position:fixed!important;top:54px!important;right:10px!important;left:auto!important;bottom:auto!important;flex-direction:column!important;align-items:stretch!important;gap:4px!important;width:auto!important;min-width:136px!important;height:auto!important;margin:0!important;padding:8px!important;border:1px solid var(--line,rgba(80,65,52,.3))!important;border-radius:12px!important;background:var(--cm-surface,var(--card,#fffdf8))!important;box-shadow:0 12px 30px rgba(46,40,35,.22)!important;backdrop-filter:none!important;z-index:131!important;pointer-events:auto!important}
  body.cm-desktop-gear-open .cm-language-rail .cm-language-dock{display:flex!important;flex-direction:column!important;gap:4px!important;width:100%!important;pointer-events:auto!important}
  /* V20第六次修改需求(文件1)：今日运营(ops)自带的 .lang-switch 语言条,桌面端也收进 ☰ 浮标里,与其他中后台页(admin 等)一致;
     默认不显示在顶栏,点 ☰ 才在其正下方弹出竖排语言列表。 */
  html[data-cm-page] .top .lang-switch{display:none!important}
  body.cm-desktop-gear-open .top .lang-switch{display:flex!important;position:fixed!important;top:54px!important;right:10px!important;left:auto!important;bottom:auto!important;flex-direction:column!important;align-items:stretch!important;gap:4px!important;width:auto!important;min-width:136px!important;height:auto!important;margin:0!important;padding:8px!important;border:1px solid var(--line,rgba(80,65,52,.3))!important;border-radius:12px!important;background:var(--cm-surface,var(--panel,#211C18))!important;box-shadow:0 12px 30px rgba(0,0,0,.3)!important;overflow:visible!important;z-index:131!important;pointer-events:auto!important}
  body.cm-desktop-gear-open .top .lang-switch button{width:100%!important;min-height:40px!important;border:0!important;border-radius:8px!important;text-align:center!important}
}
@media(max-width:760px){
  html[data-cm-page] .cm-language-rail{display:none!important}
}
/* 第二十一次：外语标题比中文长——手机顶栏标题「Chuanmen · Today’s Operations」实测 279px、
   容器只有 258px，被省略号切掉。窄屏上只给非中文界面收一档字号（中文原样 16px 不动）。 */
@media(max-width:430px){
  html[data-cm-page]:not([lang^="zh"]) .cm-mobile-console-title{
    font-size:14px;letter-spacing:0;
    /* 再长就换第二行而不是被省略号切掉；标题栏 min-height 44px，两行 14px 装得下 */
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
    white-space:normal;line-height:1.1;overflow:hidden;
  }
}
/* V19四次修改需求45/47：手机与平板横屏(矮屏)适配——头部和标签栏收紧,把竖直空间让给内容,自定义面板可滚动;
   竖向空间敏感,不硬撑高度。iOS 刘海/底部安全区已在上方各处用 env(safe-area-inset-*) 适配。 */
@media(max-width:950px) and (orientation:landscape) and (max-height:540px){
  html[data-cm-page] .cm-mobile-console-header{min-height:42px}
  html[data-cm-page] .cm-mobile-console-title{font-size:15px;line-height:1.15}
  html[data-cm-page] .cm-mobile-console-sub{display:none}
  html[data-cm-page] .cm-mobile-section-nav{padding-block:3px;gap:4px}
  html[data-cm-page] .cm-mobile-section-nav a{padding-block:6px}
  html[data-cm-page] .cm-mobile-console-sheet{max-height:calc(var(--cm-viewport-height,100dvh) - var(--cm-menu-top,48px) - 8px);overflow:auto}
}

@media(max-width:359px){
  .cm-mobile-console-header{grid-template-columns:minmax(0,1fr) 44px 44px;gap:8px}
  .cm-mobile-console-refresh,
  .cm-mobile-console-more{width:40px;min-width:40px!important}
  .cm-mobile-console-routes,
  .cm-mobile-console-actions{grid-template-columns:1fr}
  html[data-cm-page="system"] .pages{grid-template-columns:1fr!important}
  html[data-cm-page] :is(.kpis,.stats,.agg,.metrics){grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

@media(max-width:950px) and (orientation:landscape) and (max-height:430px){
  .cm-mobile-console-header{
    position:static;
    min-height:48px;
    padding-top:env(safe-area-inset-top,0px);
  }
  .cm-mobile-section-nav{position:static;min-height:44px}
  .cm-mobile-console-sheet{max-height:calc(var(--cm-viewport-height,100dvh) - var(--cm-menu-top,48px) - 8px)}
}

/* ================= Phase 0.7b：员工屏桌面/平板设置面板 =================
   店主第十六次反馈：平板第一行塞满语言/退出/夜间，而右上角 ☰ 点进去没功能。
   根因：设置面板（cm-mobile-console-menu/sheet）此前只有 ≤760px 的样式，
   桌面 ☰ 走的是另一条「语言横条」逻辑，而员工屏上根本没有那个横条。
   0.7b 起员工屏（kds/floor/prep/kitchen）的桌面 ☰ 直接打开同一个设置面板，
   这里补 ≥761px 的样式：右侧抽屉，宽 min(400px,92vw)，跟随主题变量。
   非员工屏没有任何入口会在 ≥761px 打开这个面板，这段样式对它们是死代码。 */
@media (min-width:761px){
  .cm-mobile-console-menu{position:fixed;inset:0;z-index:120;display:block;background:rgba(20,15,10,.45)}
  .cm-mobile-console-menu[hidden]{display:none}
  /* 第十七次修1：桌面/平板不再是满高右抽屉，同样是「☰ 正下方锚定弹层」。
     基础层的定位写在 ≤760 媒体块里，≥761 必须自带一份（top/right/left 由 JS 变量控制）。 */
  .cm-mobile-console-sheet{
    position:fixed;
    top:var(--cm-menu-top,64px);
    right:var(--cm-menu-right,10px);
    left:auto;
    width:var(--cm-menu-width,min(400px,92vw));height:auto;
    max-height:var(--cm-menu-max-height,calc(100dvh - var(--cm-menu-top,64px) - 14px));
    overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;
    background:var(--cm-surface-1,#FFFDF6);color:var(--cm-text,#221D18);
    padding:18px 18px 26px;border:1px solid var(--line,#D9CCB6);border-radius:14px;
    box-shadow:0 18px 44px rgba(0,0,0,.35);
    display:flex;flex-direction:column;gap:14px;
  }
  .cm-mobile-console-menu.cm-menu-anchor-left .cm-mobile-console-sheet{right:auto;left:var(--cm-menu-left,10px)}
  .cm-mobile-console-sheet-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
  .cm-mobile-console-sheet h2{font-size:16px;font-weight:900;margin:0}
  .cm-mobile-console-sheet h3{font-size:12px;font-weight:800;color:var(--cm-text-2,#5F574C);margin:6px 0 0}
  .cm-mobile-console-close{
    min-width:44px;min-height:44px;border:1px solid var(--line,#D9CCB6);border-radius:10px;
    background:var(--cm-control-bg,#FFFDF6);color:inherit;font-size:16px;cursor:pointer;
  }
  .cm-mobile-console-identity{font-size:12px;color:var(--cm-text-2,#5F574C);margin:0}
  .cm-mobile-console-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .cm-mobile-console-actions button{
    min-height:48px;border:1px solid var(--line,#D9CCB6);border-radius:10px;
    background:var(--cm-control-bg,#FFFDF6);color:inherit;font-size:13px;font-weight:700;
    padding:8px 10px;cursor:pointer;text-align:center;
  }
  .cm-mobile-console-languages{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
  .cm-mobile-console-languages button{
    min-height:46px;border:1px solid var(--line,#D9CCB6);border-radius:10px;
    background:var(--cm-control-bg,#FFFDF6);color:inherit;font-size:13px;font-weight:700;cursor:pointer;
  }
  .cm-mobile-console-languages button.cm-active{
    background:var(--gold,#E8C36B);border-color:var(--gold,#E8C36B);color:#1D1712;
  }
  .cm-mobile-console-routes{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none}
  .cm-mobile-console-routes a{
    display:block;min-height:44px;line-height:44px;padding:0 12px;border-radius:10px;
    border:1px solid var(--line,#D9CCB6);color:inherit;text-decoration:none;font-size:13px;font-weight:700;
    background:var(--cm-control-bg,#FFFDF6);
  }
  body.cm-console-menu-open{overflow:hidden}
}

/* These login surfaces are also used on touch tablets. Keep the compact
   cards, while overriding page-local legacy rules that shrink controls. */
html[data-cm-theme][data-cm-page="admin"] #login :is(input,select,button),
html[data-cm-theme][data-cm-page="ops"] #login :is(input,select,button),
html[data-cm-theme][data-cm-page="finance"] #login :is(input,select,button),
html[data-cm-theme][data-cm-page="system"] #systemGate :is(input,select,button),
html[data-cm-theme][data-cm-page="menu-admin"] #login :is(input,select,button),
html[data-cm-theme][data-cm-page="checkout"] #login :is(input,select,button){
  min-height:48px!important;
}

.menu-admin-to-top{display:none}
@media(max-width:760px){
  html[data-cm-page="menu-admin"] .cm-mobile-section-nav{overflow-x:auto}
  html[data-cm-page="menu-admin"] .cm-mobile-section-target{scroll-margin-top:0!important}
  html[data-cm-page="menu-admin"] .menu-admin-to-top{
    position:fixed;
    right:max(14px,env(safe-area-inset-right,0px));
    bottom:max(14px,env(safe-area-inset-bottom,0px));
    z-index:88;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:64px!important;
    min-height:48px!important;
    padding:8px 12px;
    border:1px solid var(--line,#D9CCB6);
    border-radius:12px;
    background:var(--cm-surface-1,var(--card,#FFFDF6));
    color:var(--cm-text,var(--ink,#221D18));
    box-shadow:0 6px 18px rgba(0,0,0,.2);
    font:900 13px/1.2 "Microsoft YaHei","PingFang SC",sans-serif;
  }
  html[data-cm-page="menu-admin"] .menu-admin-to-top[hidden]{display:none!important}
}
