/* 第九轮：员工后台视觉统一（设计变量 + 组件细化）。
   只作用于员工后台：选择器统一以 S（= body:not(.guest-body):not(.invitation-body):not(.invoice-body)）开头，客人端、邀请函、开票页不受影响。
   只改外观，不改任何业务逻辑与字段；第七轮手机 / 平板适配（40px 触控、16px 输入框、抽屉菜单、底部结账条）在文件末尾重新声明，保持不变。 */
:root{
--c-bg:#f4f4f0;--c-surface:#fff;--c-surface-2:#f9f9f6;--c-surface-3:#f2f3ee;
--c-line:#e7e9e3;--c-line-strong:#d6dbd2;
--c-ink-900:#1d2a22;--c-ink-700:#37463c;--c-ink-500:#5f6b62;--c-ink-400:#7c867d;--c-ink-300:#a3aba3;
--c-green-950:#1c2822;--c-green-800:#2d4535;--c-green-700:#3f5a45;--c-green-600:#4c6a52;--c-green-100:#e7efe5;--c-green-50:#f1f5ef;
--c-gold-700:#8a6d32;--c-gold-500:#b8995a;--c-gold-300:#dcc48b;--c-gold-100:#f5ecd6;--c-gold-50:#fbf7ec;
--c-red-700:#a3463a;--c-red-100:#f8e5e1;--c-red-50:#fcf3f1;
--c-amber-700:#8d5f12;--c-amber-100:#fbeccc;--c-amber-50:#fdf7e8;
--c-slate-700:#3f5866;--c-slate-100:#e4ecf0;
--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;
--r-sm:6px;--r-md:8px;--r-lg:12px;--r-xl:14px;--r-pill:999px;
--sh-1:0 1px 2px rgba(23,38,28,.04),0 1px 1px rgba(23,38,28,.03);
--sh-2:0 4px 14px rgba(23,38,28,.06),0 1px 3px rgba(23,38,28,.05);
--sh-3:0 24px 60px rgba(16,30,20,.22);
--fs-xs:12px;--fs-sm:13px;--fs-md:14px;--fs-lg:16px;--fs-xl:18px;--fs-2xl:24px;--fs-kpi:28px;
--h-ctl:38px;--h-ctl-sm:30px;
--font-sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Noto Sans CJK SC","Source Han Sans SC","Microsoft YaHei",sans-serif;
--font-serif:LocalSong,"Songti SC","STSong","Noto Serif CJK SC",serif;
}
/* ---------- 基础排版 ---------- */
body:not(.guest-body):not(.invitation-body):not(.invoice-body){background:var(--c-bg);color:var(--c-ink-700);font:var(--fs-md)/1.6 var(--font-sans);-webkit-font-smoothing:antialiased}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) :is(h1,h2,h3){color:var(--c-ink-900)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) h1{font-size:var(--fs-2xl);font-weight:600;letter-spacing:.02em;line-height:1.3}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) h2{font-size:var(--fs-lg);font-weight:600;line-height:1.4}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) h3{font-size:15px;font-weight:600}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) :is(small,.muted){color:var(--c-ink-400)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .muted{font-size:var(--fs-xs)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .num,body:not(.guest-body):not(.invitation-body):not(.invoice-body) td.num,body:not(.guest-body):not(.invitation-body):not(.invoice-body) th.num{text-align:right;font-variant-numeric:tabular-nums}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]),select,textarea){border:1px solid var(--c-line-strong);border-radius:var(--r-md);padding:8px 12px;min-height:var(--h-ctl);color:var(--c-ink-900);background:#fff;transition:border-color .15s,box-shadow .15s}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]),select,textarea):hover:not(:disabled){border-color:#c3cabd}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]),select,textarea):focus{outline:none;border-color:var(--c-gold-500);box-shadow:0 0 0 3px rgba(184,153,90,.18)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]),select,textarea):disabled{background:var(--c-surface-3);color:var(--c-ink-400)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) ::placeholder{color:var(--c-ink-300)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) input[type=checkbox]{accent-color:var(--c-green-700);min-height:0}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) :is(button,a):focus-visible{outline:2px solid var(--c-gold-500);outline-offset:2px}
/* ---------- 侧栏（保留深绿 + 金色 + 宋体店名） ---------- */
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .sidebar{background:var(--c-green-950);padding:24px 14px 18px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .brand{padding:0 10px 22px;gap:12px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .brand strong{font-family:var(--font-serif)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .nav-label{font-size:11px;color:#6f8476;padding:16px 12px 6px;letter-spacing:.18em}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .nav-btn{padding:9px 12px;border-radius:var(--r-md);margin:1px 0;font-size:var(--fs-md);color:#b9c5bc;gap:12px;transition:background .15s,color .15s}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .nav-btn .icon{width:18px;height:18px;opacity:.85}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .nav-btn:hover{background:#25342b;color:#e6ece7}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .nav-btn.active{background:var(--c-gold-300);color:#1f2d24;font-weight:600}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .nav-btn.active .icon{opacity:1}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .nav-count{background:var(--c-gold-700);border-radius:var(--r-pill);padding:0 7px;font-size:11px;line-height:18px;font-weight:600}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .sidebar-foot{padding:16px 8px 0;border-top-color:#2f4136}
/* ---------- 顶栏与页头 ---------- */
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .topbar{height:60px;padding:0 32px;background:rgba(255,255,255,.92);backdrop-filter:saturate(1.2) blur(6px);border-bottom:1px solid var(--c-line);position:sticky;top:0;z-index:15}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .breadcrumb{font-size:var(--fs-sm);color:var(--c-ink-400)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .breadcrumb b{color:var(--c-ink-900);font-weight:600}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .demo-badge{font-size:var(--fs-xs);color:var(--c-ink-500);background:var(--c-surface-3);padding:3px 10px;border-radius:var(--r-pill)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .toplink{font-size:var(--fs-sm);color:var(--c-ink-500)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .toplink:hover{color:var(--c-green-700)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .main{padding:28px 32px 48px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .page-heading{margin-bottom:var(--s-5);align-items:flex-end}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .page-heading p{font-size:var(--fs-sm);color:var(--c-ink-400);margin-top:6px;max-width:72ch;line-height:1.6}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .subheading,body:not(.guest-body):not(.invitation-body):not(.invoice-body) .gb-section-title{font-size:15px;font-weight:600;color:var(--c-ink-900);margin:var(--s-5) 0 var(--s-3);letter-spacing:0}
/* ---------- 按钮：主 / 金 / 次 / 危险 / 幽灵，高度统一 ---------- */
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .btn{min-height:var(--h-ctl);padding:0 14px;border-radius:var(--r-md);border:1px solid var(--c-line-strong);background:#fff;color:var(--c-ink-700);font-size:var(--fs-sm);font-weight:500;gap:6px;line-height:1;transition:background .15s,border-color .15s,color .15s,box-shadow .15s}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .btn:hover{background:var(--c-surface-2);border-color:#c5ccbf;color:var(--c-ink-900)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .btn:active{transform:translateY(1px)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .btn.primary{background:var(--c-green-700);border-color:var(--c-green-700);color:#fff;box-shadow:0 1px 2px rgba(30,50,36,.18)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .btn.primary:hover{background:var(--c-green-800);border-color:var(--c-green-800);color:#fff}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .btn.gold{background:var(--c-gold-300);border-color:var(--c-gold-300);color:#2a2213}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .btn.gold:hover{background:#d3b877;border-color:#d3b877}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .btn.danger{color:var(--c-red-700);border-color:#ecc9c2;background:#fff}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .btn.danger:hover{background:var(--c-red-50);border-color:#e2b2a9}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .btn.subtle{background:transparent;border-color:transparent;color:var(--c-ink-500);min-height:var(--h-ctl-sm);padding:0 8px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .btn.subtle:hover{background:var(--c-surface-3);color:var(--c-ink-900)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .btn.small{min-height:var(--h-ctl-sm);padding:0 10px;font-size:var(--fs-xs);border-radius:var(--r-sm)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .btn.small.primary{font-weight:500}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .btn:disabled,body:not(.guest-body):not(.invitation-body):not(.invoice-body) .btn[disabled]{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .heading-actions,body:not(.guest-body):not(.invitation-body):not(.invoice-body) .actions{gap:var(--s-2)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .link-button{color:var(--c-green-700);font-size:var(--fs-sm);font-weight:500}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .link-button:hover{color:var(--c-green-800);text-decoration:underline;text-underline-offset:3px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) td .btn{margin:3px 6px 3px 0}body:not(.guest-body):not(.invitation-body):not(.invoice-body) td .btn:last-child{margin-right:0}body:not(.guest-body):not(.invitation-body):not(.invoice-body) td:has(>.btn){white-space:normal;min-width:150px}
/* ---------- 卡片 / 面板：少边框、不叠框 ---------- */
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .panel{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-lg);box-shadow:var(--sh-1)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .panel-head{padding:14px 20px;border-bottom:1px solid var(--c-line);min-height:56px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .panel-head h2{font-size:15px;font-weight:600}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .panel-head .muted{font-size:var(--fs-xs)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .panel-body{padding:20px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .main>section.panel,body:not(.guest-body):not(.invitation-body):not(.invoice-body) .main>.panel{margin-bottom:var(--s-5)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .panel .panel{box-shadow:none}
/* ---------- KPI 卡片：整齐网格 ---------- */
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .stats{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:var(--s-4);margin:0 0 var(--s-5)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .stat{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-lg);padding:16px 18px;box-shadow:var(--sh-1);display:flex;flex-direction:column;min-width:0}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .stat label{font-size:var(--fs-xs);color:var(--c-ink-500);font-weight:500;letter-spacing:.02em}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .stat-value{font-size:var(--fs-kpi);font-weight:600;color:var(--c-ink-900);margin:6px 0 4px;line-height:1.15;letter-spacing:-.01em}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .stat-value small{font-size:var(--fs-sm);color:var(--c-ink-400);font-weight:400;margin-left:4px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .stat-note{font-size:var(--fs-xs);color:var(--c-ink-400);line-height:1.5;margin-top:auto}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .stat.accent{background:var(--c-green-50);border-color:#dbe6d7}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .stat.accent .stat-value{color:var(--c-green-700)}
/* ---------- 表格：统一行高、悬停、数字右对齐等宽 ---------- */
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) table{font-size:var(--fs-sm);color:var(--c-ink-700)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) th{background:var(--c-surface-2);color:var(--c-ink-500);font-weight:500;font-size:var(--fs-xs);letter-spacing:.02em;padding:10px 12px;border-bottom:1px solid var(--c-line);height:40px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) td{padding:10px 12px;color:var(--c-ink-700);border-bottom:1px solid #eff1ec;height:48px;vertical-align:middle;font-variant-numeric:tabular-nums}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) td small,body:not(.guest-body):not(.invitation-body):not(.invoice-body) td .muted{font-size:var(--fs-xs);color:var(--c-ink-400)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) td>div.muted{margin-top:2px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) tbody tr:last-child td{border-bottom:0}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) tbody tr:hover>td{background:#fafbf8}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) tbody tr.active>td{background:var(--c-gold-50)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) tfoot th,body:not(.guest-body):not(.invitation-body):not(.invoice-body) tfoot td{background:var(--c-surface-2);color:var(--c-ink-900);font-weight:600;font-size:var(--fs-sm);border-top:1px solid var(--c-line);border-bottom:0}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .panel>.table-wrap:last-child table,body:not(.guest-body):not(.invitation-body):not(.invoice-body) .panel.table-wrap table{margin-bottom:0}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .panel.table-wrap{padding:0}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .table-wrap td:first-child,body:not(.guest-body):not(.invitation-body):not(.invoice-body) .table-wrap th:first-child{padding-left:20px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .table-wrap td:last-child,body:not(.guest-body):not(.invitation-body):not(.invoice-body) .table-wrap th:last-child{padding-right:20px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .pos-void-row td{color:var(--c-ink-300)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .pos-void-row td :is(.badge,.cv-tag,.gb-kind-tag){opacity:.7}
/* ---------- 状态徽章：统一配色 ---------- */
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .badge,body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cv-tag,body:not(.guest-body):not(.invitation-body):not(.invoice-body) .gb-kind-tag,body:not(.guest-body):not(.invitation-body):not(.invoice-body) .status-pill{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:var(--r-pill);font-size:var(--fs-xs);font-weight:500;line-height:20px;white-space:nowrap;background:var(--c-surface-3);color:var(--c-ink-500);border:0}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .badge.green,body:not(.guest-body):not(.invitation-body):not(.invoice-body) .status-pill.ok{background:var(--c-green-100);color:var(--c-green-700)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .badge.gold,body:not(.guest-body):not(.invitation-body):not(.invoice-body) .status-pill.warn{background:var(--c-amber-100);color:var(--c-amber-700)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .badge.red,body:not(.guest-body):not(.invitation-body):not(.invoice-body) .status-pill.danger{background:var(--c-red-100);color:var(--c-red-700)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .status-pill.muted{background:var(--c-surface-3);color:var(--c-ink-400)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .status-pill.info{background:var(--c-slate-100);color:var(--c-slate-700)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .gb-kind-tag{background:var(--c-slate-100);color:var(--c-slate-700)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cv-tag{background:var(--c-gold-100);color:var(--c-gold-700)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) td .gb-pending,body:not(.guest-body):not(.invitation-body):not(.invoice-body) .gb-line .gb-pending{display:inline-flex;align-items:center;padding:1px 8px;border-radius:var(--r-pill);background:var(--c-amber-100);color:var(--c-amber-700);font-size:var(--fs-xs);font-weight:500;line-height:20px;white-space:nowrap}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) td small.gb-pending{margin-left:4px}
/* ---------- 提示条 / 警示 / 说明 ---------- */
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .notice{padding:12px 16px;border-radius:var(--r-lg);background:var(--c-amber-50);border:1px solid #f0e0b8;color:#7a5a1c;font-size:var(--fs-sm);align-items:center;margin-bottom:var(--s-4)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .notice .btn{flex-shrink:0}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .notice.info{background:var(--c-green-50);border-color:#dbe6d7;color:var(--c-green-700)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .note-box{padding:12px 16px;border-radius:var(--r-md);background:var(--c-surface-2);border:1px solid var(--c-line);color:var(--c-ink-500);font-size:var(--fs-sm);margin-top:var(--s-4)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .form-help{font-size:var(--fs-xs);color:var(--c-ink-400);line-height:1.65;margin-top:6px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .form-help.gb-pending,body:not(.guest-body):not(.invitation-body):not(.invoice-body) p.gb-pending{color:var(--c-amber-700);background:var(--c-amber-50);border:1px solid #f1e2bf;border-radius:var(--r-md);padding:8px 12px;font-size:var(--fs-xs);line-height:1.6}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .form-error{color:var(--c-red-700);background:var(--c-red-50);border:1px solid #efd3cd;border-radius:var(--r-md);padding:8px 12px;font-size:var(--fs-sm)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .hint{margin-top:8px;font-size:var(--fs-xs);color:var(--c-ink-400)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .hint>summary{display:inline-flex;align-items:center;gap:6px;cursor:pointer;color:var(--c-ink-500);list-style:none;user-select:none;padding:2px 0;border-radius:var(--r-sm)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .hint>summary::-webkit-details-marker{display:none}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .hint>summary::before{content:"i";display:inline-grid;place-items:center;width:15px;height:15px;border-radius:50%;border:1px solid currentColor;font:600 10px/1 Georgia,serif;font-style:italic}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .hint>summary::after{content:"展开";font-size:11px;color:var(--c-ink-300)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .hint[open]>summary::after{content:"收起"}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .hint>summary:hover{color:var(--c-green-700)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .hint-body{margin-top:6px;padding:8px 12px;border-left:2px solid var(--c-line-strong);color:var(--c-ink-500);line-height:1.7;background:var(--c-surface-2);border-radius:0 var(--r-sm) var(--r-sm) 0}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .panel-body.hint,body:not(.guest-body):not(.invitation-body):not(.invoice-body) .panel>.hint{margin:0;padding:12px 20px 16px;border-top:1px solid #eff1ec}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .hint-key{display:block;font-size:var(--fs-xs);color:var(--c-amber-700);line-height:1.6;margin-top:6px}
/* ---------- 空状态 ---------- */
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .empty{padding:36px 20px;color:var(--c-ink-400);font-size:var(--fs-sm);text-align:center;background:var(--c-surface-2);border:1px dashed var(--c-line-strong);border-radius:var(--r-lg);margin:12px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) td .empty,body:not(.guest-body):not(.invitation-body):not(.invoice-body) td>.empty{margin:0}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .panel-body>.empty{margin:0}
/* ---------- 表单：网格对齐、标签一致 ---------- */
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .form-grid{gap:16px 20px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .field{gap:6px;font-size:var(--fs-sm);color:var(--c-ink-500);font-weight:500}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .field :is(input,select,textarea){font-weight:400}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .field small{font-size:var(--fs-xs);color:var(--c-ink-400);font-weight:400}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .toolbar{gap:12px;padding:0 0 var(--s-4);align-items:flex-end}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .toolbar .field{min-width:180px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .segmented{background:var(--c-surface-3);border-radius:var(--r-md);padding:3px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .segmented button{border-radius:var(--r-sm);padding:6px 18px;font-size:var(--fs-sm);color:var(--c-ink-500)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .segmented button.active{background:#fff;color:var(--c-ink-900);font-weight:600;box-shadow:0 1px 2px rgba(23,38,28,.1)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .divider{border:0;border-top:1px solid var(--c-line)}
/* ---------- 弹窗 ---------- */
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .modal-overlay{background:rgba(18,28,22,.45);backdrop-filter:blur(2px)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .modal{background:var(--c-surface);border-radius:var(--r-xl);box-shadow:var(--sh-3)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .modal-header{padding:16px 24px;background:var(--c-surface);border-bottom:1px solid var(--c-line)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .modal-header h2{font-size:var(--fs-xl);font-weight:600}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .modal-body{padding:20px 24px 24px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .modal-body>p,body:not(.guest-body):not(.invitation-body):not(.invoice-body) .modal-body form>p{margin-bottom:10px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .modal-footer{margin-top:var(--s-5);padding-top:var(--s-4);border-top:1px solid var(--c-line);gap:var(--s-2);align-items:center}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .modal .table-wrap{border:1px solid var(--c-line);border-radius:var(--r-md)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .modal .table-wrap td:first-child,body:not(.guest-body):not(.invitation-body):not(.invoice-body) .modal .table-wrap th:first-child{padding-left:14px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .detail-list dt{font-size:var(--fs-xs);color:var(--c-ink-400)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .detail-list dd{color:var(--c-ink-900)}
/* ---------- 登录页 ---------- */
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .login-page{background:var(--c-bg)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .login-brand{background:var(--c-green-950)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .login-brand h1{font-family:var(--font-serif);color:#f0eadb}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .login-main{background:var(--c-surface)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .login-form h2{font-size:22px;margin-bottom:4px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .login-form p{color:var(--c-ink-400);font-size:var(--fs-sm)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .login-form .btn.primary{min-height:44px;font-size:15px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .quick-accounts button{border-radius:var(--r-md);font-size:var(--fs-xs);color:var(--c-ink-500);background:var(--c-surface-2);border-color:var(--c-line-strong)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .quick-accounts button:hover{border-color:var(--c-gold-500);color:var(--c-ink-900)}
/* ---------- 包间看板 ---------- */
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .floor-heading h2{font-size:15px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .room-grid{gap:var(--s-3)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .room{border-radius:var(--r-lg);border-color:var(--c-line);box-shadow:var(--sh-1);padding:14px 16px;min-height:150px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .room:hover{border-color:var(--c-gold-500);box-shadow:var(--sh-2);transform:none}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .room.reserved{background:var(--c-gold-50);border-color:#eadfbe}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .room.seated{background:var(--c-green-50);border-color:#d3e0cd}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .room-name{font-family:var(--font-serif);color:var(--c-ink-900)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .room-state{border-radius:var(--r-pill);padding:1px 8px;font-size:11px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .timeline-detail strong{color:var(--c-ink-900)}
/* ---------- 月历 ---------- */
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .calendar{border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--c-line);box-shadow:var(--sh-1)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .calendar-day{transition:background .15s}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .calendar-day:hover{background:var(--c-gold-50)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .calendar-day.today b{background:var(--c-green-700);color:#fff}
/* ---------- 点餐与收银 ---------- */
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .open-dining{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-lg);box-shadow:var(--sh-1);padding:16px 20px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .open-dining-heading{margin-bottom:12px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .open-dining-heading strong{font-size:15px;color:var(--c-ink-900)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .open-dining-list{gap:10px;padding-bottom:2px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .open-dining-list button{background:var(--c-surface-2);border:1px solid var(--c-line);border-radius:var(--r-md);padding:12px 16px;min-width:176px;gap:4px;transition:border-color .15s,background .15s}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .open-dining-list button:hover{border-color:var(--c-gold-500);background:#fff}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .open-dining-list button.active{background:var(--c-green-50);border-color:var(--c-green-600);box-shadow:inset 3px 0 var(--c-green-600)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .open-dining-list strong{font-size:var(--fs-md);color:var(--c-ink-900)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .open-dining-list :is(span,small){font-size:var(--fs-xs);color:var(--c-ink-400)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cashier-layout{grid-template-columns:minmax(0,1fr) 344px;gap:var(--s-5)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cashier-left{gap:var(--s-5)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cashier-summary{top:76px;gap:var(--s-4)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cashier-mode{font-size:var(--fs-xs);color:var(--c-ink-400)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cashier-search input{background:var(--c-surface-2);border-radius:var(--r-md);padding:10px 14px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cashier-categories{gap:6px;margin-bottom:16px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cashier-categories button{border-radius:var(--r-pill);border-color:var(--c-line-strong);color:var(--c-ink-500);padding:0 16px;min-height:34px;font-size:var(--fs-sm)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cashier-categories button:hover{border-color:var(--c-gold-500);color:var(--c-ink-900)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cashier-categories button.active{background:var(--c-green-800);border-color:var(--c-green-800);color:#f3e7c8}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cashier-catalog{gap:var(--s-3)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cashier-dish{background:#fff;border:1px solid var(--c-line);border-radius:var(--r-lg);padding:14px 16px;min-height:112px;gap:4px;box-shadow:var(--sh-1)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cashier-dish:hover{border-color:var(--c-gold-500);background:var(--c-gold-50)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cashier-dish>span:first-child{color:var(--c-ink-900)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cashier-dish small,body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cashier-dish em{font-size:var(--fs-xs);color:var(--c-ink-400)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cashier-dish strong{font-size:18px;color:var(--c-ink-900);margin-top:auto}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cashier-add-mark{color:var(--c-gold-500);top:10px;right:12px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cashier-quantity{border-radius:var(--r-md);border-color:var(--c-line-strong)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .submitted-items .panel-head{background:var(--c-surface)}
/* 结算区：应收放大，明细行对齐 */
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cashier-summary .panel-body{padding:16px 20px 20px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cashier-settlement{gap:14px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cashier-total-row{font-size:var(--fs-sm);color:var(--c-ink-500);margin-bottom:12px;align-items:baseline}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cashier-total-row strong{color:var(--c-ink-900);font-weight:600;white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cashier-settlement .cashier-total-row{color:var(--c-ink-500)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cashier-settlement>small{font-size:var(--fs-xs);color:var(--c-ink-400);margin-top:-8px;line-height:1.6}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cashier-vouchers{border:0;border-top:1px solid var(--c-line);padding:14px 0 0;margin:0;background:none;border-radius:0}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cashier-hint-title{font-size:var(--fs-sm);font-weight:600;color:var(--c-ink-900);margin:0 0 10px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .voucher-row{padding:10px 0;border-bottom:1px dashed var(--c-line);display:grid;gap:8px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .voucher-row:last-of-type{border-bottom:0}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .voucher-label{font-size:var(--fs-sm);color:var(--c-ink-900);font-weight:500}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .voucher-label small{font-weight:400;font-size:var(--fs-xs)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .voucher-input{gap:6px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cashier-due{border-top:1px solid var(--c-line);border-bottom:1px solid var(--c-line);margin:4px 0;padding:14px 0;align-items:center}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cashier-due>span{font-size:15px;font-weight:600;color:var(--c-ink-900)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cashier-due strong{font-size:36px;font-weight:700;color:var(--c-gold-700);letter-spacing:-.01em}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cashier-submit{min-height:48px;font-size:15px;font-weight:600;border-radius:var(--r-md)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cashier-save-note{font-size:var(--fs-xs);color:var(--c-ink-400)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) #cashier-change{margin-top:-6px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .dish-habits>span{background:var(--c-surface-2);border-color:var(--c-line);border-radius:var(--r-md)}
/* 设置：档口 / 平台卡片 */
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .station-chips{gap:10px;margin-top:12px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .station-chips button{background:var(--c-surface-2);border:1px solid var(--c-line);border-radius:var(--r-md);min-height:60px;padding:12px 14px;transition:border-color .15s,background .15s}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .station-chips button:hover{border-color:var(--c-gold-500);background:#fff}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .station-chips small{font-size:var(--fs-xs);color:var(--c-ink-400)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .station-settings{margin-bottom:var(--s-5)}
/* ---------- 厨房 / 打印 ---------- */
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .kitchen-ticket{border-radius:var(--r-lg);box-shadow:var(--sh-1)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .kitchen-column-title>span{background:var(--c-surface-3);border-radius:var(--r-pill)}
/* ---------- 交班与日结 ---------- */
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .day-net{font-size:15px;color:var(--c-ink-900);font-weight:600;margin:14px 0 6px;font-variant-numeric:tabular-nums}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .gb-line{font-size:var(--fs-sm);color:var(--c-ink-700);margin:6px 0;line-height:1.9;display:flex;flex-wrap:wrap;align-items:center;column-gap:6px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .gb-line .btn{margin-left:auto}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .day-close .toolbar{align-items:flex-end}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .day-saved{display:inline-flex;align-items:center;gap:8px;margin-top:10px;font-size:var(--fs-sm);color:var(--c-green-700)}
/* ---------- 预订详情 / 客户 ---------- */
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .reservation-tabs .btn.active{background:var(--c-green-700);border-color:var(--c-green-700);color:#fff}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .dining-visit{border-color:var(--c-line);border-radius:var(--r-md)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) #toast{border-radius:var(--r-md);box-shadow:var(--sh-2)}
/* ---------- 第七轮手机 / 平板适配：在新样式之后重新声明，保持 40px 触控与 16px 输入 ---------- */
@media(max-width:800px),(pointer:coarse){
body:not(.guest-body):not(.invitation-body):not(.invoice-body) :is(.btn,.btn.small,.nav-btn,.segmented button,.quick-accounts button,.cashier-categories button){min-height:40px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .btn.small{padding:0 12px;font-size:13px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea){font-size:16px;min-height:42px}
}
@media(max-width:900px){
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cashier-layout{grid-template-columns:1fr}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cashier-summary{position:static}
}
@media(max-width:800px){
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .topbar{padding:0 12px;height:56px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .main{padding:18px 14px 40px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) h1{font-size:22px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .page-heading{align-items:flex-start;margin-bottom:var(--s-4)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .stat{padding:12px 14px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .stat-value{font-size:22px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .panel-head{padding:12px 16px;min-height:0;flex-wrap:wrap}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .panel-body{padding:16px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) th{padding:9px 12px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) td{padding:10px 12px;height:44px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .table-wrap td:first-child,body:not(.guest-body):not(.invitation-body):not(.invoice-body) .table-wrap th:first-child{padding-left:16px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .modal-header{padding:14px 16px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .modal-body{padding:16px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cashier-due strong{font-size:32px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .open-dining{padding:14px 16px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .empty{margin:8px}
}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .status-pill small{color:inherit;font-size:inherit}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .panel-body.hint-wrap{padding:12px 20px 16px;border-top:1px solid #eff1ec}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .panel-body.hint-wrap .hint{margin:0}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cashier-page fieldset:not(.panel-body){padding:0}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cv-add{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;margin:10px 0 12px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cv-add .btn{min-height:var(--h-ctl)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cashier-vouchers .cashier-total-row{margin:4px 0 8px;font-size:var(--fs-xs)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .cashier-vouchers .cashier-total-row strong{font-size:var(--fs-sm)}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .modal-body form>.field{margin-bottom:12px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .modal-body .note-box{margin-top:0;margin-bottom:12px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .modal-body .form-help.gb-pending{margin:0 0 12px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) td>small:not(:first-child){margin-left:6px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) #voucher-settings td>small{display:block;margin-left:0;line-height:1.7}

body:not(.guest-body):not(.invitation-body):not(.invoice-body) td.num>small{margin-left:6px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .table-wrap td:not(.num)>small.muted{display:block;margin:2px 0 0;line-height:1.5}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) td>small{margin-left:6px}
body:not(.guest-body):not(.invitation-body):not(.invoice-body) .table-wrap td:has(>.btn:nth-of-type(3)){min-width:210px}
