/* 禾光田野工作台：228px 导航 + 流动工作区 + 8px 外边距；工作区内左右各24px。 */
@media screen {
  .admin-body {
    --ui-font: "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
    --ui-text: #23332b; --ui-muted: #58655e; --ui-accent: #214f3d;
    --ui-ground: #edf1ed; --ui-surface: #fff; --ui-raised: #f5f7f5;
    --ui-line: #e4e9e5; --ui-control: #aab6ae; --ui-active: #dfe6e0;
    --ui-gap: 16px; --ui-radius: 8px; --ui-danger: #993d32;
    --bd-paper: var(--ui-ground); --bd-rail: var(--ui-ground);
    --bd-surface: var(--ui-surface); --bd-sunken: var(--ui-raised);
    --bd-ink: var(--ui-text); --bd-muted: var(--ui-muted); --bd-line: var(--ui-line);
    --bd-border-strong: var(--ui-control); --bd-brand: var(--ui-accent);
    --bd-brand-soft: #eaf0eb; --bd-neutral-bg: #eef1ee; --bd-neutral-ink: var(--ui-muted);
    --bd-gold: #b77b38; --bd-disabled-bg: #e8ece8; --bd-disabled-ink: #5c685f;
    --paper: var(--ui-ground); --ink: var(--ui-text); --muted: var(--ui-muted);
    --line: var(--ui-line); --green: var(--ui-accent); --soft-green: #eaf0eb;
    margin: 0; min-width: 0; background: var(--ui-ground); color: var(--ui-text);
    font-family: var(--ui-font); font-size: 14px; line-height: 1.5;
    font-variant-numeric: tabular-nums;
  }
  .admin-body *, .admin-body *::before, .admin-body *::after { box-sizing: border-box; font-variant-numeric: tabular-nums; }
  .admin-body :is(button,input,select,textarea) { font-family: var(--ui-font); font-variant-numeric: tabular-nums; }
  .admin-body :is(input,textarea)::placeholder { color: var(--ui-muted); opacity: 1; }
  .admin-body :focus-visible { outline: 2px solid var(--ui-accent); outline-offset: 3px; }
  .admin-body :is(button,a) { touch-action: manipulation; }
  .admin-body :is(button,a):active { transform: translateY(1px); }
  .admin-body [hidden] { display: none !important; }
  .admin-body .admin-mobile-notice { display: none; }
  .admin-body .admin-topbar {
    min-height: 56px; padding: 4px 20px; gap: 16px; flex-wrap: nowrap;
    background: var(--ui-ground); border: 0; box-shadow: none; z-index: 40;
  }
  .admin-body .admin-brand { gap: 10px; flex-shrink: 0; }
  .admin-body .admin-brand img { width: 40px; height: 40px; object-fit: contain; }
  .admin-body .admin-brand strong { font-size: 17px; font-weight: 600; }
  .admin-body .admin-brand>span { font-size: 12px; color: var(--ui-muted); border: 0; padding-left: 0; }
  .admin-body .wb-search { flex: 1 1 260px; min-width: 140px; max-width: 420px; margin-left: 12px; }
  .admin-body .wb-search input { min-height: 36px; height: 36px; background: var(--ui-surface); font-size: 13px; border-color: var(--ui-control); border-radius: 6px; }
  .admin-body .wb-search svg { top: 10px; }
  .admin-body .wb-search kbd { top: 8px; }
  .admin-body .top-actions { gap: 12px; margin-left: auto; white-space: nowrap; font-size: 12px; }
  .admin-body .top-actions :is(a,button,.wb-sync,.muted) { font-size: 12px; }
  .admin-body .admin-layout { grid-template-columns: 228px minmax(0,1fr); min-height: calc(100dvh - var(--wb-topbar-h,56px)); gap: 0; padding: 0 8px 8px 0; }
  .admin-body .admin-sidebar { padding: 16px 12px 24px; border: 0; background: var(--ui-ground); min-height: calc(100dvh - var(--wb-topbar-h,56px) - 8px); }
  .admin-body .admin-nav { gap: 4px; }
  .admin-body .admin-nav button, .admin-body .wb-desk-link { min-height: 40px; padding: 9px 12px; color: var(--ui-muted); font-size: 14px; border: 0; border-radius: 6px; background: transparent; text-align: left; font-weight: 400; }
  .admin-body .admin-nav button:hover, .admin-body .wb-desk-link:hover { background: #e6ebe6; color: var(--ui-text); }
  .admin-body .admin-nav button.active, .admin-body .wb-desk-link.active { background: var(--ui-active); color: var(--ui-text); font-weight: 600; box-shadow: none; }
  .admin-body .wb-desk-link { width: 100%; margin: 0 0 16px; }
  .admin-body .sidebar-label { margin: 0 12px 8px; padding: 0; color: var(--ui-muted); font-size: 12px; letter-spacing: 0; }
  .admin-body .wb-badge { color: var(--ui-text); background: var(--ui-surface); font-size: 12px; min-width: 22px; }
  .admin-body .admin-main { width: 100%; max-width: none; min-width: 0; min-height: calc(100dvh - var(--wb-topbar-h,56px) - 8px); padding: 24px 24px 48px; border: 1px solid var(--ui-line); border-radius: 16px; background: var(--ui-surface); box-shadow: none; }
  .admin-body .admin-main :is(.admin-heading,.finance-heading,.wb-heading) { margin: 0 0 20px; gap: 12px 20px; align-items: flex-start; flex-wrap: wrap; }
  .admin-body .admin-main :is(.admin-heading,.finance-heading,.wb-heading) h1 { font-family: var(--ui-font); font-size: 24px; font-weight: 600; line-height: 1.4; letter-spacing: 0; margin: 0; }
  .admin-body .admin-main :is(.admin-heading,.finance-heading,.wb-heading) p { font-size: 13px; color: var(--ui-muted); line-height: 1.7; margin: 6px 0 0; }
  .admin-body .admin-main h2 { font-family: var(--ui-font); font-size: 17px; line-height: 1.5; letter-spacing: 0; }
  .admin-body :is(.primary,.secondary,.wb-btn,.quiet-button) { min-height: 36px; border-radius: 6px; font-size: 13px; line-height: 1.5; padding: 7px 12px; box-shadow: none; }
  .admin-body :is(.primary,.wb-btn.is-primary) { background: var(--ui-text); border-color: var(--ui-text); color: #fff; }
  .admin-body :is(.secondary,.wb-btn):not(.is-primary) { background: var(--ui-surface); border-color: var(--ui-control); color: var(--ui-text); }
  .admin-body :is(.secondary,.wb-btn):hover:not(:disabled):not(.is-primary) { background: var(--ui-raised); }
  .admin-body .wb-btn.is-small { min-height: 32px; padding: 5px 10px; font-size: 12px; }
  .admin-body :is(.wb-link,.text-button) { font-size: 13px; text-underline-offset: 3px; }
  .admin-body :is(.wb-chip,.state-pill,.finance-status,.inv-chip,.ct-chip) { font-size: 12px; line-height: 1.5; border-radius: 4px; white-space: nowrap; flex-shrink: 0; }
  .admin-body :is(.field-help,.wb-cell-note,.form-error,.empty-state,.admin-note) { font-size: 12px; line-height: 1.7; }
  .admin-body :is(.admin-table,.wb-table,.finance-table,.inv-table,.contacts-table) { font-size: 14px; font-variant-numeric: tabular-nums; }
  .admin-body :is(.admin-table,.wb-table,.finance-table,.inv-table,.contacts-table) th { background: var(--ui-surface); color: var(--ui-muted); font-size: 12px; font-weight: 500; padding: 12px; }
  .admin-body :is(.admin-table,.wb-table,.finance-table,.inv-table,.contacts-table) td { padding: 14px 12px; border-color: var(--ui-line); }
  .admin-body :is(.admin-table,.wb-table,.finance-table,.inv-table,.contacts-table) :is(small,.muted) { font-size: 12px; }
  .admin-body :is(.money-cell,.inv-num,.contact-balance,.num) { text-align: right; font-variant-numeric: tabular-nums; }
  .admin-body :is(.admin-table-wrap,.wb-table-wrap,.finance-table-wrap,.inv-table-wrap) { max-width: 100%; overflow: auto; border-color: var(--ui-line); border-radius: var(--ui-radius); }
  .admin-body .wb-steps { grid-template-columns: repeat(5,minmax(0,1fr)); margin: 0 0 16px; border-radius: var(--ui-radius); border-color: var(--ui-line); }
  .admin-body .wb-steps.wb-steps-3 { grid-template-columns: repeat(3,minmax(0,1fr)); }
  @media (max-width: 900px) { .admin-body .wb-steps.wb-steps-3 { grid-template-columns: minmax(0,1fr); } }
  .admin-body .wb-step { padding: 12px; background: var(--ui-surface); }
  .admin-body .wb-step.is-active { background: var(--ui-raised); }
  .admin-body .wb-step-head { font-size: 12px; gap: 6px; }
  .admin-body .wb-step strong { font-size: 16px; margin-top: 4px; }
  .admin-body .wb-step small { font-size: 12px; min-height: 0; overflow-wrap: anywhere; }
  .admin-body .wb-step .wb-link { font-size: 12px; margin-top: 6px; }
  .admin-body .wb-dot { width: 18px; height: 18px; font-size: 11px; }
  .admin-body .wb-step.is-done .wb-dot { color: var(--ui-accent); background: #eaf0eb; }
  .admin-body .wb-issues { border-color: var(--ui-line); border-radius: var(--ui-radius); margin-bottom: 16px; }
  .admin-body .wb-issues-head { background: var(--ui-raised); color: var(--ui-text); padding: 10px 12px; font-size: 13px; }
  .admin-body .wb-issue { padding: 10px 12px; }
  .admin-body .wb-issue :is(small,p) { font-size: 12px; }
  .admin-body .wb-toolbar { position: relative; padding: 12px; gap: 10px; border-radius: 8px 8px 0 0; }
  .admin-body .wb-filters { gap: 4px; flex-wrap: wrap; }
  .admin-body .wb-filter { border-radius: 6px; min-height: 32px; font-size: 13px; padding: 5px 10px; color: var(--ui-muted); }
  .admin-body .wb-filter.is-on { color: var(--ui-text); background: var(--ui-active); border-color: var(--ui-active); }
  .admin-body .wb-toolbar :is(input[type=search],select) { min-height: 36px; font-size: 13px; }
  .admin-body .wb-table-wrap { border-top-left-radius: 0; border-top-right-radius: 0; }
  .admin-body .wb-table { min-width: 820px; }
  .admin-body .wb-date-group-switch { display: inline-flex; align-items: center; gap: 10px; margin-left: auto; min-height: 44px; padding: 6px 10px; color: var(--ui-text); background: var(--ui-surface); border: 1px solid var(--ui-control); border-radius: 6px; font-size: 13px; white-space: nowrap; transition: background-color 160ms; }
  .admin-body .wb-date-group-switch:hover { background: var(--bd-brand-soft); }
  .admin-body .wb-switch-track { display: inline-flex; align-items: center; width: 32px; height: 20px; padding: 3px; border-radius: 12px; background: var(--ui-muted); }
  .admin-body .wb-switch-track::after { content: ''; width: 14px; height: 14px; border-radius: 50%; background: var(--ui-surface); }
  .admin-body .wb-date-group-switch[aria-checked=true] .wb-switch-track { justify-content: flex-end; background: var(--ui-accent); }
  .admin-body .wb-order-section td { padding: 14px 12px; background: var(--ui-raised); border-top: 1px solid var(--ui-line); border-bottom: 1px solid var(--ui-line); }
  .admin-body .wb-order-section:first-child td { border-top: 0; }
  .admin-body .wb-section-heading { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
  .admin-body .wb-section-heading h2 { margin: 0; font: 600 14px/1.5 var(--ui-font); }
  .admin-body .wb-section-heading span { font-size: 13px; font-variant-numeric: tabular-nums; }
  .admin-body .wb-section-heading small, .admin-body .wb-order-section p { color: var(--ui-muted); font-size: 12px; }
  .admin-body :is(.wb-section-heading,.wb-order-section p) { max-width: min(680px,calc(100vw - 80px)); }
  .admin-body .wb-order-section p { margin: 4px 0 0; line-height: 1.6; white-space: normal; }
  .admin-body .wb-batch-list { max-height: min(360px,45vh); overflow-y: auto; }
  .admin-body .wb-batch-list .wb-check-all { position: sticky; top: 0; z-index: 1; background: var(--ui-raised); font-weight: 600; }
  .admin-body .wb-batch-failures { margin: 12px 0; padding: 0; list-style: none; border: 1px solid var(--ui-line); border-radius: 6px; max-height: min(320px,40vh); overflow-y: auto; }
  .admin-body .wb-batch-failures li { display: grid; gap: 2px; padding: 10px 14px; border-top: 1px solid var(--ui-line); font-size: 13px; }
  .admin-body .wb-batch-failures li:first-child { border-top: 0; }
  .admin-body .wb-batch-failures span { color: var(--ui-muted); font-size: 12px; }
  .admin-body .wb-section-empty td { padding: 14px 12px; color: var(--ui-muted); font-size: 13px; }
  .admin-body .wb-code { font-size: 24px; font-family: var(--ui-font); letter-spacing: 1px; }
  .admin-body :is(.manual-source,.wb-mono-small,.wb-time,.wb-item-meta,.wb-item small,.wb-total,.wb-inline-label,.wb-foot) { font-size: 12px; }
  .admin-body .wb-items { min-width: 290px; }
  .admin-body .wb-user { min-width: 136px; }
  .admin-body .wb-items :is(strong,b) { font-size: 14px; }
  .admin-body .wb-menu { border: 1px solid var(--ui-line); border-radius: 8px; background: var(--ui-surface); box-shadow: 0 10px 32px #23332b20; }
  .admin-body .wb-menu button { font-size: 14px; min-height: 40px; }
  .admin-body .wb-menu small { font-size: 12px; }
  .admin-body .modal-backdrop { background: #17251d66; backdrop-filter: none; padding: 20px; }
  .admin-body .modal { border-radius: 12px; background: var(--ui-surface); color: var(--ui-text); box-shadow: 0 16px 48px #17251d26; }
  .admin-body .modal-heading h2 { font-family: var(--ui-font); font-size: 20px; letter-spacing: 0; line-height: 1.5; }
  .admin-body .modal :is(label,.admin-field,.field-help) { font-size: 13px; }
  .admin-body .modal :is(input,select,textarea):not([type=checkbox]):not([type=radio]) { font-size: 14px; }
  .admin-body .admin-login { margin: 8vh auto; width: calc(100% - 32px); max-width: 420px; padding: 32px; border: 1px solid var(--ui-line); border-radius: 12px; box-shadow: none; background: var(--ui-surface); }
  .admin-body .admin-login h1 { font-family: var(--ui-font); font-size: 24px; font-weight: 600; letter-spacing: 0; }
  .admin-body .admin-login p { font-size: 14px; color: var(--ui-muted); }
  .admin-body .admin-login button { min-height: 44px; }
  .admin-body .ui-nav-toggle { display: none; }
  .admin-body .ui-skip { position: fixed; top: -80px; left: 16px; z-index: 100; padding: 12px 16px; background: var(--ui-surface); color: var(--ui-text); border: 2px solid var(--ui-accent); }
  .admin-body .ui-skip:focus { top: 8px; }
  @media (max-width: 1200px) {
    .admin-body .admin-layout { grid-template-columns: 204px minmax(0,1fr); }
    .admin-body .admin-main { padding: 20px; }
    .admin-body .admin-brand>span { display: none; }
    .admin-body .top-actions { gap: 8px; }
    .admin-body .wb-search { margin-left: 0; }
  }
  @media (max-width: 1100px) {
    .admin-body .admin-topbar { padding: 6px 16px; flex-wrap: wrap; gap: 8px 12px; min-height: 56px; }
    .admin-body .admin-layout { display: block; padding: 0 8px 8px; }
    .admin-body .admin-main { min-height: calc(100dvh - var(--wb-topbar-h,56px) - 8px); }
    .admin-body .ui-nav-toggle { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 8px 10px; border: 1px solid var(--ui-control); border-radius: 6px; background: var(--ui-surface); color: var(--ui-text); font-size: 14px; }
    .admin-body .admin-sidebar { display: none; }
    .admin-body .admin-sidebar.is-open { display: block; position: fixed; top: var(--wb-topbar-h,56px); left: 0; bottom: 0; width: min(320px,100%); max-height: calc(100dvh - var(--wb-topbar-h,56px)); z-index: 45; box-shadow: 12px 8px 32px #17251d20; border-right: 1px solid var(--ui-line); }
    .admin-body .admin-nav button { min-height: 44px; }
    .admin-body .wb-search { max-width: none; }
    .admin-body .top-actions { flex: 1 1 auto; justify-content: flex-end; }
    .admin-body .wb-steps { grid-template-columns: repeat(5,minmax(120px,1fr)); }
  }
  @media (max-width: 640px) {
    .admin-body .admin-topbar { gap: 8px; padding: 6px 16px; }
    .admin-body .admin-brand { gap: 6px; }
    .admin-body .admin-brand img { width: 32px; height: 32px; }
    .admin-body .admin-brand strong { font-size: 16px; }
    .admin-body .wb-search { order: 3; flex-basis: 100%; }
    .admin-body .top-actions { flex-basis: 100%; flex-wrap: wrap; justify-content: flex-start; gap: 6px 12px; }
    .admin-body .top-actions .wb-sync { margin-right: auto; }
    .admin-body .top-actions button, .admin-body .top-actions a { min-height: 32px; }
    .admin-body .admin-layout { padding: 0; }
    .admin-body .admin-main { border: 0; border-radius: 0; padding: 20px 16px 32px; }
    .admin-body .admin-main :is(.admin-heading,.finance-heading,.wb-heading) h1 { font-size: 22px; }
    .admin-body .wb-heading>.wb-row { width: 100%; flex-wrap: wrap; gap: 8px; }
    .admin-body .wb-steps { grid-template-columns: repeat(2,minmax(0,1fr)); overflow: visible; }
    .admin-body .wb-step:last-child { grid-column: 1 / -1; }
    .admin-body .wb-steps.wb-steps-3 .wb-step:last-child { grid-column: auto; }
    .admin-body .wb-issue { gap: 8px; grid-template-columns: auto minmax(0,1fr); }
    .admin-body .wb-issue>button { grid-column: 2; justify-self: start; }
    .admin-body .wb-toolbar { padding: 10px; }
    .admin-body .wb-filters { flex: 1 1 100%; flex-wrap: wrap; padding-bottom: 4px; }
    .admin-body .wb-filter { flex: 0 0 auto; min-height: 44px; }
    .admin-body .wb-toolbar input[type=search] { flex: 1 1 100%; width: 100%; min-width: 0; margin-left: 0; }
    .admin-body :is(.primary,.secondary,.wb-btn,.quiet-button) { min-height: 44px; }
    .admin-body .modal-backdrop { padding: 8px; }
    .admin-body .modal { width: 100%; max-width: 100%; max-height: calc(100dvh - 16px); padding: 20px 16px; }
    .admin-body .modal .form-grid { grid-template-columns: 1fr; }
  }
  @media (prefers-reduced-motion: reduce) {
    .admin-body *, .admin-body *::before, .admin-body *::after { scroll-behavior: auto; animation: none; transition: none; }
  }
}
@media print {
  .ui-skip, .ui-nav-toggle { display: none !important; }
}
