/* 销售面板。图表两色经 dataviz 校验：浅色 #2e8a5f/#c9822a，深色 #41a674/#c9822a；
   红绿色弱下两色差 ΔE≈7，按要求同时提供图例、段间 2px 间隙和表格视图。 */
.sales-root{--sales-reservation:#2e8a5f;--sales-inventory:#c9822a;--sales-grid:#e3e7de;--sales-axis:#6c766d}
.sales-filter{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin:0 0 20px}
.sales-presets{display:inline-flex;border:1px solid var(--line,#e3e7de);border-radius:8px;overflow:hidden}
.sales-preset{border:0;background:transparent;padding:8px 14px;font:inherit;font-size:13px;color:var(--ink,#27372f);cursor:pointer;min-height:36px}
.sales-preset+.sales-preset{border-left:1px solid var(--line,#e3e7de)}
.sales-preset[aria-pressed="true"]{background:var(--green,#214f3d);color:#fff}
.sales-date{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted,#6c766d)}
.sales-date input{min-height:36px}
.sales-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}
.sales-kpi{display:flex;flex-direction:column;gap:6px;padding:16px 18px;border:1px solid var(--line,#e3e7de);border-radius:10px;background:var(--white,#fff);min-height:112px}
.sales-kpi>span{font-size:13px;color:var(--muted,#6c766d);display:flex;align-items:center;gap:6px}
.sales-kpi strong{font-size:28px;line-height:1.15;font-variant-numeric:tabular-nums;color:var(--ink,#27372f)}
.sales-kpi small{font-size:12px;color:var(--muted,#6c766d)}
.sales-kpi.is-total{background:var(--soft-green,#eaf0e9)}
.sales-swatch{display:inline-block;width:10px;height:10px;border-radius:2px;flex:none}
.sales-swatch.is-reservation{background:var(--sales-reservation)}.sales-swatch.is-inventory{background:var(--sales-inventory)}
.sales-card{border:1px solid var(--line,#e3e7de);border-radius:10px;background:var(--white,#fff);padding:16px 18px;margin-bottom:16px}
.sales-card h2{font-size:16px;margin:0}.sales-card h3{font-size:14px;margin:0 0 8px}
.sales-card-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}
.sales-legend{display:flex;gap:16px;font-size:12px;color:var(--muted,#6c766d)}.sales-legend span{display:flex;align-items:center;gap:6px}
.sales-help{font-size:12px;color:var(--muted,#6c766d)}
.sales-chart{position:relative}
.sales-chart svg{display:block;width:100%;height:auto}
.sales-grid line{stroke:var(--sales-grid);stroke-width:1}.sales-grid text,.sales-axis{font-size:11px;fill:var(--sales-axis);font-variant-numeric:tabular-nums}
.sales-bar.is-reservation{fill:var(--sales-reservation)}.sales-bar.is-inventory{fill:var(--sales-inventory)}
.sales-hit{fill:transparent}.sales-day.is-active .sales-hit{fill:var(--sales-grid);fill-opacity:.45}
.sales-tip{position:absolute;z-index:2;pointer-events:none;display:flex;flex-direction:column;gap:3px;padding:8px 10px;border-radius:8px;background:var(--ink,#27372f);color:#fff;font-size:12px;white-space:nowrap;box-shadow:0 6px 18px rgba(0,0,0,.18)}
.sales-tip span{display:flex;align-items:center;gap:6px;font-variant-numeric:tabular-nums}
.sales-table-toggle{margin-top:12px;font-size:13px}.sales-table-toggle summary{cursor:pointer;color:var(--green,#214f3d)}
.sales-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:16px}
.sales-warnings{margin:0 0 12px;padding:8px 12px 8px 28px;border-radius:8px;background:#fbf3e6;color:#7a4b12;font-size:12px}
.sales-empty{color:var(--muted,#6c766d);text-align:center;padding:16px}
.sales-code{display:block;color:var(--muted,#6c766d);font-size:11px}
td small{display:block;color:var(--muted,#6c766d);font-size:11px}
@media (max-width:900px){.sales-kpis,.sales-split{grid-template-columns:1fr}}
