/* 按实际制单顺序工作：表头 → 宽屏选品 → 完整核对。 */
.quote-workbench { min-width:0; padding-bottom:96px; }
.quote-workbench [hidden] { display:none !important; }
.quote-workbench .page-head { margin-bottom:12px; gap:12px; flex-wrap:wrap; }
.quote-workspace { display:flex; flex-direction:column; gap:16px; min-width:0; }
.quote-workspace > .panel { margin:0; min-width:0; }
.quote-steps { display:flex; gap:24px; margin-bottom:20px; padding:0; border:0; border-bottom:1px solid #dce2ee; border-radius:0; background:transparent; box-shadow:none; overflow:auto; }
.quote-steps button { display:flex; align-items:center; gap:8px; padding:0 0 13px; margin:0; border:0; border-bottom:2px solid transparent; border-radius:0; background:none; color:var(--muted); font-size:13px; white-space:nowrap; transition:color var(--feedback) var(--ease-out),border-color var(--feedback) var(--ease-out),transform var(--feedback) var(--ease-out); }
.quote-steps button:active:not(:disabled) { transform:scale(.97); }
.quote-steps button:hover:not(:disabled) { background:#f5f8fc; color:var(--ink); }
.quote-steps button span { display:grid; place-items:center; width:22px; height:22px; border:1px solid #c2ccd9; border-radius:50%; font-size:11px; font-weight:700; }
.quote-steps button.active { color:var(--blue); background:transparent; border-bottom-color:var(--blue); font-weight:700; }
.quote-steps button.active span { color:white; background:var(--blue); border-color:var(--blue); }
.quote-steps button:disabled { color:#8492a3; cursor:default; opacity:1; }
.quote-context { display:flex; align-items:center; justify-content:space-between; gap:16px; font-size:13px; }
.quote-context-bar { padding:12px 16px; border:1px solid var(--line); border-radius:14px; background:white; }
#project-context { display:flex; gap:16px; align-items:center; flex-wrap:wrap; min-width:0; }
#project-context strong { font-size:16px; }
#project-context span { color:var(--muted); overflow-wrap:anywhere; }
.quote-basics .panel-head { padding:17px 22px; background:#f9fafc; }
.quote-workbench .quote-meta { grid-template-columns:repeat(4,minmax(0,1fr)); padding:16px 24px; gap:20px 16px; }
.quote-meta .field:nth-child(1),.quote-meta .field:nth-child(2) { grid-column:span 2; }
.quote-workbench .quote-meta .field > span { font-size:13px; }
.quote-workbench .quote-meta input { min-height:42px; }
.quote-workbench .meta-more { padding:12px 24px 20px; }
.quote-workbench .meta-options { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.billing-context { padding:0 24px 12px; font-size:12px; color:var(--muted); }
.header-next { display:flex; align-items:center; justify-content:flex-end; gap:16px; border-top:1px solid var(--line); padding:15px 22px; background:#fbfdff; }
#header-errors { color:var(--red); font-size:13px; margin-right:auto; }
.quote-catalog .panel-head { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; padding:17px 20px; gap:15px 20px; background:#ffffff; }
.quote-catalog .panel-head h2 { grid-column:1; grid-row:1; }
.quote-catalog .catalog-toolbar { grid-column:1 / -1; grid-row:2; justify-content:flex-start; width:100%; max-width:100%; min-width:0; padding:12px; gap:10px; flex-wrap:nowrap; background:#f4f6fb; border:1px solid #e2e7f1; border-radius:var(--radius-control); }
.quote-catalog .catalog-toolbar input { flex:1 1 360px; min-width:160px; width:100%; max-width:600px; height:42px; padding-left:38px; background:white url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'%3E%3Cpath fill='none' stroke='%237185a4' stroke-width='1.6' d='M8 2a6 6 0 1 0 0 12 6 6 0 0 0 0-12ZM12 12l4 4'/%3E%3C/svg%3E") no-repeat 12px center; }
.quote-catalog .catalog-toolbar select { max-width:160px; height:42px; }
.quote-catalog .catalog-count { white-space:nowrap; margin-left:0; font-size:12px; }
.quote-catalog .selection-extras { grid-column:2; grid-row:1; justify-content:flex-end; flex-wrap:wrap; gap:7px; }
.mobile-categories { display:none; }
#catalog-body { display:grid; grid-template-columns:192px minmax(0,1fr); min-height:520px; border-top:1px solid var(--line); }
.catalog-nav { padding:12px 0 20px; border-right:1px solid var(--line); background:#f8f9fc; overflow:auto; max-height:640px; }
.catalog-nav section { margin-top:12px; }
.catalog-nav h3 { margin:16px 16px 6px; font-size:12px; color:#68788c; font-weight:600; }
.catalog-nav button { display:flex; align-items:center; justify-content:space-between; width:calc(100% - 16px); margin:2px 8px; border:1px solid transparent; border-radius:10px; background:none; color:#34465e; padding:9px 10px; text-align:left; font-size:13px; gap:8px; min-height:36px; transition:background-color var(--feedback) var(--ease-out),color var(--feedback) var(--ease-out),transform var(--feedback) var(--ease-out); }
.catalog-nav button span { font-size:11px; color:#5f6c81; }
.catalog-nav button:active { transform:scale(.97); }
.catalog-nav button:hover { background:#eef3f9; }
.catalog-nav button.active { background:var(--blue-soft); color:var(--blue); border-color:#d4dfef; font-weight:700; }
.catalog-branch summary { padding:10px 16px; font-size:13px; color:#34465e; cursor:pointer; }
.catalog-branch summary span { float:right; color:#7a899c; font-size:11px; }
.catalog-branch[open] > summary { font-weight:600; }
.catalog-branch button { padding-inline-start:28px; font-size:12px; }
.catalog-branch button:focus-visible,.catalog-branch summary:focus-visible { outline:2px solid var(--blue); outline-offset:-2px; }
.catalog-pool { display:flex; flex-direction:column; min-width:0; }
.quote-catalog .product-grid { grid-template-columns:repeat(auto-fill,minmax(172px,1fr)); padding:20px; gap:14px; max-height:584px; min-height:220px; flex:1; align-content:start; background:#fbfcfe; }
.quote-catalog .product-card { padding:12px; gap:8px; border-radius:14px; box-shadow:none; transition:border-color var(--feedback) var(--ease-out),box-shadow var(--feedback) var(--ease-out),transform var(--feedback) var(--ease-out); }
.quote-catalog .product-card:hover { border-color:#b7c5da; box-shadow:0 6px 16px rgb(31 52 102 / 8%); transform:translateY(-2px); }
.quote-catalog .product-image { height:120px; }
.quote-catalog .product-name { font-size:13px; min-height:36px; }
.quote-catalog .product-price { font-size:15px; }
.quote-catalog .product-bottom { gap:6px; flex-wrap:wrap; margin-top:auto; }
.quote-catalog .product-bottom .tag { font-size:10px; }
.quote-catalog .product-bottom button { min-height:32px; }
.catalog-pager { display:flex; justify-content:center; align-items:center; gap:24px; padding:12px 20px; border-top:1px solid var(--line); font-size:12px; }
.replace-hint { display:flex; align-items:center; gap:12px; padding:12px 20px; background:var(--blue-soft); font-size:13px; color:var(--blue); }
.selection-next { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:16px 20px; border-top:1px solid var(--line); }
.selection-next > span { font-size:12px; color:var(--muted); }
.quote-basket { position:fixed; z-index:30; right:24px; bottom:20px; width:390px; max-width:calc(100vw - 32px); background:#fff; border:1px solid #b9c8dc; border-radius:var(--radius-panel); box-shadow:0 10px 32px rgb(26 39 67 / 18%); }
.quote-basket summary { display:flex; align-items:center; gap:12px; cursor:pointer; padding:16px; list-style:none; color:#34465e; font-size:13px; min-height:58px; }
.quote-basket summary::-webkit-details-marker { display:none; }
.quote-basket summary b { font-weight:500; margin-left:8px; }
.quote-basket summary > strong { margin-left:auto; color:var(--blue); font-size:18px; font-variant-numeric:tabular-nums; }
.basket-chevron { font-size:18px; }
.quote-basket[open] .basket-chevron { transform:rotate(180deg); }
.basket-body { border-top:1px solid var(--line); }
#basket-lines { max-height:45vh; overflow:auto; padding:0 16px; }
.basket-line { display:grid; grid-template-columns:minmax(0,1fr) 48px auto; align-items:center; gap:12px; padding:14px 0; border-bottom:1px solid var(--line); font-size:12px; }
.basket-line strong { display:block; font-size:13px; overflow-wrap:anywhere; }
.basket-line span { display:block; margin-top:4px; color:var(--muted); }
.basket-line input { width:48px; padding:6px; }
.basket-line b { font-variant-numeric:tabular-nums; font-weight:500; }
.basket-foot { padding:14px 16px; display:flex; align-items:center; gap:12px; justify-content:space-between; }
.basket-foot span { font-size:12px; color:var(--muted); }
.quote-workbench .line-toolbar { padding:15px 20px; align-items:center; flex-wrap:wrap; gap:12px; background:#f8f9fc; }
.quote-workbench .line-toolbar .toolbar-right { flex-wrap:wrap; justify-content:flex-end; }
.quote-workbench .quote-lines .table-scroll { min-height:220px; max-height:560px; overflow:auto; }
.quote-workbench .quote-lines table { min-width:940px; }
.quote-workbench .quote-lines input.numeric { width:64px; }
.quote-workbench .quote-lines .source-cell select { width:82px; }
.quote-workbench .quote-lines .check-label { white-space:nowrap; }
.quote-workbench .quote-lines .panel-body { padding:16px 20px; }
.quote-workbench .quote-bottom { margin:0; padding:18px 20px; position:static; box-shadow:none; }
.quote-action-bar { border-color:#bdc9de !important; border-radius:14px; box-shadow:none !important; }
.quote-action-bar .grand-total { color:var(--blue); }
.quote-workbench .quote-totals { gap:20px; }
.quote-workbench .grand-total strong { font-size:26px; }
.quote-workbench .quote-bottom-actions { flex-wrap:wrap; gap:12px; }
.quote-workbench .quote-issues { max-width:100%; flex:1 1 100%; font-size:12px; }
.quote-workbench .quote-actions { margin-left:auto; }
.quote-workbench .deposit-reference { flex:1 1 100%; }
.quote-workbench #demand-panel { border-top:1px solid var(--line); padding:4px 4px 0; }
.quote-workbench .demand-area { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.quote-workbench .result-row { grid-template-columns:minmax(0,1fr) minmax(0,1fr) 58px 55px; }
.quote-workbench .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media (min-width:1600px) { .quote-catalog .product-grid { grid-template-columns:repeat(auto-fill,minmax(195px,1fr)); } }
@media (max-width:1050px) {
  .quote-catalog .panel-head { padding:16px; }
  .quote-catalog .catalog-toolbar input { width:240px; }
  #catalog-body { grid-template-columns:168px minmax(0,1fr); }
  .quote-catalog .product-grid { grid-template-columns:repeat(auto-fill,minmax(148px,1fr)); padding:16px; }
  .quote-context { align-items:flex-start; }
  #project-context { gap:8px 16px; }
}
@media (max-width:900px) {
  .quote-basket { position:relative; right:auto; bottom:auto; width:100%; max-width:none; margin-top:16px; z-index:1; box-shadow:none; }
  .quote-workbench { padding-bottom:28px; }
  .quote-catalog .selection-extras { grid-column:1 / -1; grid-row:2; justify-content:flex-start; }
  .quote-catalog .catalog-toolbar { grid-row:3; }
}
@media (max-width:600px) {
  .quote-steps { margin-inline:0; gap:15px; }
  .quote-steps button { font-size:12px; padding:0 0 11px; gap:6px; }
  .quote-steps button span { flex-shrink:0; width:22px; height:22px; }
  .quote-workbench .quote-meta { grid-template-columns:repeat(2,minmax(0,1fr)); padding:16px; gap:16px 12px; }
  .quote-workbench .meta-more { padding:8px 16px 16px; }
  .quote-workbench .meta-options { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .billing-context { padding:0 16px 12px; }
  .quote-basics .panel-head { padding:16px; flex-wrap:wrap; gap:8px; }
  .header-next { padding:16px; flex-wrap:wrap; }
  .header-next button { width:100%; }
  .quote-context { flex-wrap:wrap; gap:12px; }
  .quote-context-bar { padding:10px 12px; }
  .quote-catalog .panel-head { grid-template-columns:minmax(0,1fr); }
  .quote-catalog .catalog-toolbar { grid-column:1; grid-row:3; flex-wrap:wrap; justify-content:flex-start; padding:10px; }
  .quote-catalog .catalog-toolbar input { flex:1 1 100%; width:100%; min-width:0; }
  .quote-catalog .catalog-toolbar select { flex:1; max-width:none; }
  .quote-catalog .selection-extras { grid-row:2; }
  .mobile-categories { display:flex; align-items:center; gap:12px; grid-column:1; grid-row:4; font-size:12px; color:var(--muted); }
  .mobile-categories select { flex:1; min-width:0; height:38px; }
  #catalog-body { grid-template-columns:minmax(0,1fr); min-height:480px; }
  .catalog-nav { display:none; }
  .catalog-nav button { font-size:12px; padding:10px 8px; gap:4px; }
  .catalog-nav h3 { margin:16px 10px 8px; font-size:11px; }
  .quote-catalog .product-grid { grid-template-columns:repeat(auto-fill,minmax(135px,1fr)); padding:12px; gap:10px; max-height:550px; }
  .quote-catalog .product-image { height:100px; }
  .quote-catalog .product-card { padding:10px; }
  .selection-next { padding:16px; flex-wrap:wrap; }
  .selection-next > span { flex:1 1 100%; }
  .selection-next button { width:100%; }
  .quote-basket { right:auto; bottom:auto; width:100%; }
  .quote-workbench .quote-actions { width:100%; justify-content:flex-end; }
  .quote-workbench .demand-area { grid-template-columns:minmax(0,1fr); }
  .quote-workbench .quote-lines table { display:table; width:100%; }
  .quote-workbench .quote-lines thead { display:table-header-group; }
  .quote-workbench .quote-lines tbody { display:table-row-group; }
  .quote-workbench .quote-lines tr { display:table-row; position:static; padding:0; }
  .quote-workbench .quote-lines td { display:table-cell; width:auto; position:static; border-bottom:1px solid var(--line); }
  .quote-workbench .quote-lines td[data-label]::before { content:none; }
  .quote-workbench .quote-lines td.name-cell { display:table-cell; min-width:180px; }
  .quote-workbench .quote-lines td.source-cell,.quote-workbench .quote-lines td.number { display:table-cell; }
  .quote-workbench .quote-lines .number { display:table-cell; text-align:right; }
  .quote-workbench .quote-lines td.line-delete { position:static; }
}
@media (max-width:480px) {
  .quote-workbench .page-head h1 { font-size:20px; }
  .quote-workbench .page-head .head-actions { flex-wrap:wrap; }
  .quote-workbench .quote-totals { gap:12px; }
  .quote-workbench .grand-total { width:100%; }
  .quote-workbench .result-row { grid-template-columns:minmax(0,1fr) 60px; }
  .catalog-pager { gap:12px; padding:12px; }
}
@media (prefers-reduced-motion:no-preference) { .quote-basket .basket-chevron { transition:transform var(--feedback) var(--ease-out); } }
@media (prefers-reduced-motion:reduce) {
  .quote-steps button, .catalog-nav button, .quote-catalog .product-card { transform:none !important; }
}
.kit-spec-editor {grid-column:1/-1;min-width:0}
.kit-spec-editor summary {font-size:12px;color:#526176;cursor:pointer;padding:4px 0}
.kit-spec-fields {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:10px 0;border-top:1px solid var(--line)}
.kit-spec-fields label {display:flex;flex-direction:column;gap:5px;font-size:12px;min-width:0}
.kit-spec-fields input {width:100%;min-width:0}
.kit-spec-warning {grid-column:1/-1;color:#87531d;line-height:1.6}
#catalog-body[hidden] {display:none!important}
#demand-panel {min-width:0;width:100%;border-top:1px solid var(--line)}
@media(max-width:640px){.kit-spec-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
