/* P1-46: screen-only workbench theme. Business/print data contracts stay unchanged. */
@media screen {
  :root { --ink:#202d37; --muted:#5f6f7b; --canvas:#f3f5f7; --line:#dfe5e9; --panel:#fff; --green:#087f5b; --green-dark:#066347; --green-soft:#e7f5ef; --accent:#087f5b; }
  body { font-size:16px; line-height:1.55; }
  .expense-entry-button { width:100%; text-align:left; margin:14px 0 0; padding:16px; }
  .expense-boundary { background:#fff7df; color:#684f15; padding:12px; border-radius:8px; font-size:14px; }
  .expense-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; padding:16px; max-width:900px; }
  .expense-form .form-error,.expense-form details { grid-column:1/-1; }
  .expense-optional summary { cursor:pointer; padding:10px 0; }
  .expense-optional label { margin-bottom:12px; }
  .expense-book-list { display:grid; gap:12px; }
  .expense-book { display:grid; gap:6px; padding:16px; text-align:left; background:#edf6f2; color:var(--ink); }
  .expense-book span { font-size:14px; font-weight:400; }
  .expense-book-detail { margin-top:14px; }
  .expense-totals { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
  .expense-totals>span { padding:12px; background:#f3f6f5; }
  .expense-totals strong { display:block; overflow-wrap:anywhere; }
  .expense-list-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
  .expense-record { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; border-top:1px solid var(--line); padding:16px 0; overflow-wrap:anywhere; }
  .expense-record p { margin:6px 0; font-size:14px; }
  .expense-record .count-badge { margin-left:10px; }
  .expense-allocation-lots { display:grid; gap:10px; margin:14px 0; }
  .expense-allocation-lots > label { display:grid; grid-template-columns:auto 1fr minmax(150px,190px); align-items:center; gap:10px; padding:12px; border:1px solid var(--line); border-radius:12px; }
  .expense-allocation-lots > label > span { grid-column:2; color:var(--muted); font-weight:400; font-size:14px; }
  .expense-allocation-lots input[type=number] { grid-column:3; grid-row:1/3; }
  .expense-payment-history { grid-column:1/-1; }
  .expense-payment-history summary { min-height:44px; cursor:pointer; padding:10px 0; }
  @media(max-width:700px) {
    .expense-form,.expense-record { grid-template-columns:minmax(0,1fr); }
    .expense-allocation-lots > label { grid-template-columns:auto 1fr; }
    .expense-allocation-lots input[type=number] { grid-column:1/3; grid-row:auto; }
    .expense-totals { gap:4px; font-size:13px; }
    .expense-totals>span { padding:8px; }
  }
  [hidden] { display:none !important; }
  .readonly-hint { background:#edf4ff; color:#24496b; border:1px solid #c8daf0; padding:12px 16px; border-radius:8px; }
  .master-finder { margin:18px 0; border-left:4px solid var(--green); scroll-margin-top:16px; }
  .master-find-jump { flex-shrink:0; }
  .master-finder-controls { display:grid; grid-template-columns:minmax(0,1fr) 160px auto; gap:14px; align-items:end; }
  .master-finder-controls label { display:grid; gap:6px; }
  .master-finder-controls button { min-height:46px; white-space:nowrap; }
  .master-find-count { margin:10px 0 0; color:var(--muted); font-size:14px; }
  .master-find-empty { padding:14px; background:#fff7e5; color:#674812; border-radius:8px; margin:12px 0 0; }
  button { border-radius:8px; min-height:44px; }
  button:hover { transform:none; }
  button:focus-visible, a:focus-visible { outline:3px solid #da9b20; outline-offset:3px; }
  input,select,textarea { font:inherit; min-width:0; border-radius:7px; min-height:46px; }
  label { font-weight:600; }
  label small,.form-hint { font-size:13px; line-height:1.6; }
  .app-shell { grid-template-columns:204px minmax(0,1fr); }
  .sidebar { background:#202f39; padding:24px 12px; }
  .brand { padding:0 6px 30px; }
  .brand-mark { background:#0f9b70; color:white; border-radius:10px; }
  .brand small { color:#bccbd2; }
  .sidebar nav { gap:8px; }
  .sidebar nav button,.nav-quiet { min-height:50px; color:#d8e1e6; font-size:16px; }
  .sidebar nav button.active { background:#087f5b; box-shadow:none; }
  .workspace { padding:0 28px 40px; }
  .topbar { min-height:86px; padding:16px 0; }
  .topbar-kicker { color:var(--muted); font-weight:500; letter-spacing:0; font-size:12px; }
  .topbar h1 { font-size:25px; }
  .current-user span { font-size:15px; }
  #app { max-width:1600px; margin:auto; }
  .panel,.section-intro,.hero { border-radius:10px; box-shadow:none; padding:20px; border:1px solid var(--line); }
  .section-intro,.inbound-intro,.inventory-intro,.finance-intro,.profit-intro { background:#fff; }
  .section-intro h2,.hero h2 { font-size:22px; line-height:1.4; }
  .section-intro p { color:var(--muted); font-size:14px; opacity:1; max-width:850px; }
  .section-intro>strong { font-size:24px; }
  .eyebrow { color:var(--green); letter-spacing:0; font-size:12px; }
  .hero { color:var(--ink); background:#fff; border-left:4px solid var(--green); padding:18px 22px; }
  .hero .eyebrow { color:var(--green); }
  .hero p { color:var(--muted); font-size:14px; }
  .hero button { background:var(--green); color:white; }
  .hero .secondary { color:var(--green); background:var(--green-soft); border:1px solid #b8dccc; }
  .hero-actions { flex-shrink:0; }
  .hero-actions button { flex:auto; }
  .quick-actions { gap:14px; margin:18px 0; }
  .quick-actions button { min-height:126px; border-radius:10px; padding:20px; grid-template-columns:44px 1fr; column-gap:14px; align-content:center; }
  .quick-actions button>span { width:44px; height:44px; grid-row:span 2; font-size:24px; align-self:center; }
  .quick-actions strong { font-size:20px; }
  .quick-actions small { font-size:13px; }
  .metric-card { border-radius:10px; min-height:112px; background:white; padding:18px; }
  .metric-card.success,.metric-card.warning { background:white; border-color:var(--line); }
  .metric-card strong { font-size:27px; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
  .metric-card span,.metric-card small { color:var(--muted); }
  .metric-card.warning strong { color:#995600; }
  .split-panels { align-items:start; }
  .split-panels>.panel { margin-top:0; min-width:0; }
  .settings-card,.master-card { min-height:118px; border-radius:10px; padding:18px; }
  .settings-card strong,.master-card strong { font-size:18px; }
  .settings-card small,.master-card small { font-size:14px; }
  .record-main span,.record-main small { white-space:normal; overflow-wrap:anywhere; }
  .record-title { flex-wrap:wrap; }
  .record-actions { flex-wrap:wrap; flex-shrink:0; }
  .record-actions button { min-height:44px; white-space:nowrap; }
  .record { gap:12px; }
  .form-grid,.foundation-form { gap:16px; }
  .inbound-line,.outbound-line { padding:16px; border-radius:8px; background:#f7f9fa; }
  .inbound-line,.outbound-line { align-items:start; }
  .inbound-line label,.outbound-line label { font-size:14px; }
  .items-head { padding-top:20px; }
  .items-head strong { font-size:18px; }
  .optional-fields,.workspace-fold { border:1px solid var(--line); border-radius:8px; background:white; min-width:0; }
  .optional-fields summary,.workspace-fold>summary { padding:14px 16px; cursor:pointer; color:var(--green); font-weight:700; min-height:48px; }
  .optional-fields-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; padding:0 16px 16px; }
  .optional-fields-grid>label { grid-column:auto; }
  .workspace-fold { margin:16px 0; }
  .workspace-fold>.panel,.workspace-fold>.section-intro,.workspace-fold>.metric-grid,.workspace-fold>.split-panels { margin:0 12px 12px; }
  .finance-layout { grid-template-columns:minmax(0,1fr); }
  .finance-layout>#financeExpenseFold { margin-top:0; }
  #cashForm { width:100%; max-width:none; }
  .finance-lists.finance-debts { grid-template-columns:minmax(0,1fr); margin:14px 0; }
  .finance-readable-list .section-head { flex-wrap:wrap; align-items:center; gap:12px; margin-bottom:12px; }
  .finance-readable-list .section-head h2 { font-size:20px; }
  .finance-readable-list .record-search { margin-left:0; width:min(480px,100%); }
  .finance-readable-list .history-search-wrap { width:100%; }
  .finance-readable-list .finance-record { padding:14px 0; align-items:center; gap:14px; }
  .finance-readable-list .record-amount { flex-shrink:0; }
  .finance-readable-list .record-main { min-width:0; }
  .finance-cash-history { margin:14px 0; }
  #financeExpenseFold>.panel { margin:0 12px 12px; }
  #financeProfitFold .profit-intro { padding:14px; background:none; border:0; }
  #financeProfitFold .profit-intro h2 { font-size:20px; }
  #financeProfitFold .profit-metrics { gap:10px; }
  #financeProfitFold .metric-card { min-height:0; padding:12px; }
  #financeProfitFold .metric-card strong { font-size:22px; }
  #financeProfitFold .profit-list-panel { padding:16px; }
  #financeExportFold .finance-export { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
  #financeExportFold .finance-export>.panel { margin:0; padding:22px; }
  #financeExportFold .finance-export-form { max-width:none; }
  @media(max-width:1100px) {
    #financeExportFold .finance-export { grid-template-columns:minmax(0,1fr); }
  }
  @media(max-width:700px) {
    .finance-readable-list .compact-filter { width:100%; }
    .finance-readable-list .record-amount { width:100%; text-align:left; }
    #financeProfitFold .profit-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
    #financeExportFold .finance-export>.panel { padding:16px; }
  }
  .items-head small { font-size:13px; }
  /* Entry search belongs to the detail toolbar, not a right-aligned history
     filter. Scope grid resets to entry rows so legacy breakpoints cannot
     leave inputs floating in columns inherited from a different layout. */
  #inboundForm .entry-toolbar,#outboundForm .entry-toolbar {
    display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start;
    gap:12px 16px; padding:16px 0 0;
  }
  .entry-toolbar>button { width:auto; min-height:44px; white-space:nowrap; }
  .entry-toolbar .entry-product-search { grid-column:1/-1; width:min(560px,100%); margin:0; }
  .entry-product-search small { display:block; margin-top:4px; font-weight:400; }
  #inboundLines,#outboundLines { display:grid; gap:10px; }
  #inboundLines .inbound-line { grid-template-columns:minmax(0,2fr) minmax(84px,.6fr) minmax(100px,.8fr) minmax(160px,1.2fr) 44px; }
  #outboundLines .outbound-line { grid-template-columns:minmax(0,1.8fr) minmax(80px,.6fr) minmax(96px,.8fr) minmax(150px,1.1fr) minmax(90px,.7fr) 44px; }
  #inboundLines .inbound-line,#outboundLines .outbound-line { gap:12px; align-items:start; padding:14px; border:1px solid var(--line); }
  #inboundLines .inbound-line>label,#outboundLines .outbound-line>label { grid-column:auto; grid-row:auto; display:grid; grid-template-rows:44px 46px auto; gap:6px; min-width:0; align-content:start; }
  #inboundLines input,#inboundLines select,#outboundLines input,#outboundLines select { height:46px; min-width:0; }
  #inboundLines .icon-button,#outboundLines .icon-button { grid-column:auto; grid-row:auto; width:44px; height:46px; margin-top:50px; padding:0; }
  #inboundLines .inbound-line>label { grid-template-rows:22px 46px auto; }
  #inboundLines .icon-button { margin-top:28px; }
  #outboundLines .outbound-available { grid-column:auto; padding:0; margin-top:50px; }
  .inbound-price-hint,.outbound-price-hint { line-height:1.5; overflow-wrap:anywhere; }
  @media(max-width:1100px) {
    #inboundLines .inbound-line,#outboundLines .outbound-line { grid-template-columns:repeat(2,minmax(0,1fr)); }
    #inboundLines .inbound-line>label,#outboundLines .outbound-line>label { grid-template-rows:22px 46px auto; }
    #inboundLines .inbound-line>label:first-child,#outboundLines .outbound-line>label:first-child,
    #inboundLines .inbound-line>label:nth-child(4),#outboundLines .outbound-line>label:nth-child(4) { grid-column:1/-1; }
    #inboundLines .icon-button,#outboundLines .icon-button { grid-column:2; grid-row:auto; margin:0 0 0 auto; }
    #outboundLines .outbound-available { grid-column:1; grid-row:auto; margin:0; }
  }
  @media(max-width:700px) {
    #inboundForm .entry-toolbar,#outboundForm .entry-toolbar { grid-template-columns:minmax(0,1fr); }
    .entry-toolbar>button { justify-self:start; }
    .entry-toolbar .entry-product-search { width:100%; }
  }
  .inbound-actions,.outbound-actions { border-top:1px solid var(--line); padding-top:18px; }
  .inbound-actions button,.outbound-actions button { min-height:48px; }
  #outboundForm.sale-workflow { grid-template-columns:minmax(0,1fr); gap:14px; }
  #outboundForm.sale-workflow> :not(input) { grid-column:1/-1; }
  .sale-step-title { font-size:18px; margin:0; }
  #outboundForm .outbound-header-grid { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; max-width:900px; gap:14px; }
  #outboundForm .sale-customer { grid-column:1/-1; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }
  #outboundForm .sale-customer>input { grid-column:1; }
  #outboundForm .sale-customer>select { grid-column:2; grid-row:2; }
  #outboundForm .sale-customer>small { grid-column:1/-1; }
  .sale-payment { border-top:1px solid var(--line); padding-top:18px; }
  .sale-payment-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); max-width:700px; gap:14px; margin-top:12px; }
  #outboundToolsFold { margin:16px 0; }
  #outboundToolsFold .outbound-tools { margin:0; gap:12px; }
  #outboundToolsFold .outbound-tools>.panel { margin:0; }
  @media(max-width:700px) {
    #outboundForm .outbound-header-grid,.sale-payment-grid { grid-template-columns:1fr; }
    #outboundForm .sale-customer { display:grid; grid-template-columns:1fr; }
    #outboundForm .sale-customer>input,#outboundForm .sale-customer>select,#outboundForm .sale-customer>small { grid-column:1; grid-row:auto; }
  }
  .inventory-intro { padding:14px 0; background:none; border:0; box-shadow:none; margin-bottom:8px; }
  .inventory-intro h2 { font-size:22px; margin:0 0 6px; }
  .inventory-intro p { margin:0; font-size:14px; }
  .metric-grid.inventory-metrics { grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:0 0 12px; }
  .inventory-metrics .metric-card { min-height:0; padding:12px 16px; display:flex; flex-direction:row; align-items:center; justify-content:space-between; gap:12px; }
  .inventory-metrics .metric-card span { font-size:14px; }
  .inventory-metrics .metric-card strong { font-size:24px; margin:0; }
  .inventory-search-panel { padding:16px; margin-bottom:12px; }
  .inventory-search-controls { display:flex; gap:12px; align-items:flex-end; }
  .inventory-search-controls label { display:grid; gap:6px; width:min(600px,100%); margin:0; }
  .inventory-search-controls input { height:46px; }
  .inventory-search-controls .count-badge { margin-bottom:7px; white-space:nowrap; }
  .split-panels.inventory-layout { grid-template-columns:minmax(0,1fr); gap:12px; margin-top:0; }
  .inventory-layout>.panel { margin:0; padding:18px; min-width:0; }
  .inventory-layout .section-head { align-items:center; flex-wrap:wrap; gap:12px; margin-bottom:12px; }
  .inventory-layout h2 { font-size:20px; margin:0 0 4px; }
  .inventory-layout .empty { padding:20px 12px; min-height:0; }
  .inventory-layout .inventory-row,.inventory-layout .stock-lot-row { padding:12px 0; gap:16px; }
  .inventory-layout .inventory-row>div,.inventory-layout .record-main { min-width:0; overflow-wrap:anywhere; }
  .inventory-layout .record-amount { flex-shrink:0; }
  @media(max-width:700px) {
    .inventory-intro { padding:8px 0; }
    .metric-grid.inventory-metrics { gap:6px; }
    .inventory-metrics .metric-card { flex-direction:column; align-items:flex-start; padding:10px; gap:6px; }
    .inventory-metrics .metric-card span { font-size:12px; }
    .inventory-search-controls { flex-wrap:wrap; }
    .inventory-search-controls label { width:100%; }
    .inventory-layout>.panel { padding:14px; }
    .inventory-layout .stock-lot-actions { align-items:flex-start; }
  }
  .auth-layout { width:min(1040px,100%); margin:auto; min-height:100dvh; grid-template-columns:minmax(0,1fr) minmax(0,440px); align-items:center; gap:48px; padding:32px; }
  .auth-story { padding:0; min-width:0; max-width:none; }
  .auth-story h1 { font-size:36px; max-width:470px; line-height:1.4; letter-spacing:0; }
  .auth-story p { font-size:16px; line-height:1.8; }
  .auth-points { flex-wrap:wrap; }
  .auth-points span { font-size:13px; }
  .auth-card { width:100%; margin:0; padding:30px; border-radius:14px; }
  .auth-card h2 { font-size:26px; }
  .auth-note { font-size:13px; }
  @media (max-width:1100px) and (min-width:701px) {
    .app-shell { grid-template-columns:172px minmax(0,1fr); }
    .workspace { padding:0 18px 32px; }
    .hero { align-items:flex-start; flex-direction:column; gap:14px; }
    .quick-actions { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .auth-layout { gap:24px; }
  }
  @media(max-width:700px) {
    .master-finder-controls { grid-template-columns:minmax(0,1fr) auto; gap:10px; }
    .master-finder-controls label:first-child { grid-column:1/-1; }
    body { overflow-x:visible; }
    .app-shell { display:block; }
    .workspace { padding:0 12px calc(96px + env(safe-area-inset-bottom)); }
    .sidebar { background:#fff; padding:0 4px env(safe-area-inset-bottom); border-top:1px solid var(--line); }
    .sidebar nav { grid-template-columns:repeat(5,minmax(0,1fr)); gap:0; }
    .sidebar nav button { font-size:12px; color:#576773; min-height:64px; padding:6px 0; gap:3px; border-radius:0; }
    .sidebar nav button.active { background:#edf8f3; color:var(--green); box-shadow:inset 0 3px var(--green); }
    .topbar { min-height:72px; gap:8px; }
    .topbar h1 { font-size:23px; }
    .mobile-system { font-size:14px; }
    .hero { display:block; padding:16px; }
    .hero h2,.section-intro h2 { font-size:20px; }
    .hero-actions { display:flex; margin-top:14px; gap:8px; }
    .hero-actions button { flex:1; min-width:0; width:auto; padding:0 10px; }
    .quick-actions { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:12px 0; }
    .quick-actions button { grid-template-columns:1fr; padding:14px; gap:5px; min-height:126px; }
    .quick-actions button>span { grid-row:auto; width:36px; height:36px; font-size:21px; }
    .quick-actions strong { font-size:19px; }
    .quick-actions small { font-size:13px; }
    .metric-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
    .metric-card { padding:14px; min-height:112px; }
    .metric-card strong { font-size:23px; }
    .metric-card small { display:block; font-size:12px; }
    .panel,.section-intro { padding:16px; border-radius:10px; }
    .section-intro { align-items:flex-start; flex-wrap:wrap; }
    .section-intro>strong { font-size:17px; }
    .settings-card-grid,.master-card-grid { grid-template-columns:1fr; }
    .record { flex-wrap:wrap; }
    .record-actions { display:flex; width:100%; }
    .record-actions button { flex:1; width:auto; }
    .inbound-line,.outbound-line { padding:12px; }
    .form-grid label,.foundation-form label { min-width:0; }
    .optional-fields-grid { grid-template-columns:1fr; }
    .auth-layout { display:flex; flex-direction:column; justify-content:center; gap:22px; padding:24px 16px; }
    .auth-story { width:100%; }
    .auth-story h1 { font-size:26px; margin:10px 0; }
    .auth-story p { font-size:14px; margin:0; }
    .auth-points { display:none; }
    .auth-card { padding:24px 20px; }
  }

  /* Q08: 外采信息和明细工具区只有一套明确的响应式落位。 */
  #inboundForm .entry-toolbar {
    grid-template-areas:"title add-line" "search add-product" "units units";
    grid-template-columns:minmax(0,1fr) auto;
    align-items:start;
    gap:12px 16px;
  }
  #inboundForm .entry-toolbar>div:first-child { grid-area:title; min-width:0; }
  #inboundForm .entry-toolbar>#addInboundLine { grid-area:add-line; width:auto; min-height:46px; justify-self:end; }
  #inboundForm .entry-toolbar>.entry-product-search { grid-area:search; width:100%; max-width:none; min-width:0; margin:0; }
  #inboundForm .entry-toolbar>.quick-add-vegetable { grid-area:add-product; width:auto; min-height:46px; justify-self:end; }
  #inboundForm .entry-toolbar>.entry-unit-tools { grid-area:units; }
  .inbound-header-grid>.inbound-optional-fields { width:100%; min-width:0; }
  @media(max-width:700px) {
    #inboundForm .entry-toolbar {
      grid-template-areas:"title" "add-line" "search" "add-product" "units";
      grid-template-columns:minmax(0,1fr);
      gap:10px;
    }
    #inboundForm .entry-toolbar>#addInboundLine,
    #inboundForm .entry-toolbar>.quick-add-vegetable { width:100%; justify-self:stretch; min-height:48px; }
  }
}

/* Q19: the outbound row has five semantic input columns.  An older workbench
   rule still reserved a sixth inventory column even though inventory now lives
   inside the full-width status row; that invisible track caused the status
   text, available stock and remove button to crowd the right side. */
#outboundLines .outbound-line {
  grid-template-areas:"product unit quantity price remove" "status status status status status";
  grid-template-columns:minmax(280px,1.55fr) minmax(110px,.5fr) minmax(150px,.65fr) minmax(240px,1fr) 46px;
}
#outboundLines .outbound-line>.outbound-product-field { grid-area:product; }
#outboundLines .outbound-line>.outbound-uom-field { grid-area:unit; }
#outboundLines .outbound-line>.outbound-quantity-field { grid-area:quantity; }
#outboundLines .outbound-line>.outbound-price-field { grid-area:price; }
#outboundLines .outbound-line>.outbound-line-status { grid-area:status; }
#outboundLines .outbound-line>.remove-outbound-line { grid-area:remove; margin:50px 0 0; align-self:start; }

@media(min-width:701px) and (max-width:1100px) {
  #outboundLines .outbound-line {
    grid-template-areas:"product product remove" "unit quantity price" "status status status";
    grid-template-columns:minmax(120px,.7fr) minmax(150px,.85fr) minmax(220px,1.2fr);
  }
  #outboundLines .outbound-line>.remove-outbound-line { margin:28px 0 0; justify-self:end; }
}

@media(max-width:700px) {
  #outboundLines .outbound-line {
    grid-template-areas:"product product product" "unit unit unit" "quantity quantity quantity" "price price remove" "status status status";
    grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr) 44px;
  }
  #outboundLines .outbound-line>.remove-outbound-line { margin:28px 0 0; width:44px; min-height:48px; justify-self:end; }
}
