/* ===== 瓦楞箱报价器 — 牛皮纸棕褐配色体系（贴切瓦楞纸箱本色，与彩盒 Teal 反差）===== */
/* 主色 #8B4513 / 浅主 #B45309 / 深主 #5C3309 / 背景 #F5E9D6 / 浅底 #F3E2C0 / 边框 #E2B97A */
/* 强调色 #EA580C（橙）保留为两页统一锚点（总价/删除/告警） */
/* 仅呈现层，不改任何算价逻辑 */

/* ===== 全局 ===== */
*{margin:0;padding:0;box-sizing:border-box}
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');
:root{
  --brand:#8B4513; --brand-2:#B45309; --brand-deep:#5C3309; --brand-ink:#3A2A18;
  --accent:#EA580C; --accent-2:#F97316;
  --bg-1:#F5E9D6; --bg-2:#F2E6D2; --bg-3:#FAF1E0;
  --border:#F3E2C0; --border-2:#E2B97A; --border-soft:#F5EAD3;
  --ink:#3A2A18; --muted:#8B4513; --muted-2:#64748B; --muted-3:#94A3B8;
  --card-bg:rgba(255,255,255,.78); --card-bg-solid:#fff;
  --shadow-sm:0 1px 2px rgba(139,69,19,.04),0 1px 3px rgba(0,0,0,.03);
  --shadow-md:0 4px 16px rgba(139,69,19,.08),0 2px 6px rgba(0,0,0,.04);
  --shadow-lg:0 12px 32px rgba(139,69,19,.12),0 4px 12px rgba(0,0,0,.05);
  --shadow-glow:0 8px 24px rgba(139,69,19,.18);
  --shadow-accent:0 6px 20px rgba(234,88,12,.28);
  --radius-sm:8px; --radius:12px; --radius-lg:16px; --radius-xl:20px;
}
body{font-family:'Plus Jakarta Sans','PingFang SC','Microsoft YaHei',sans-serif;
  background:
    radial-gradient(1200px 600px at 10% -10%,rgba(180,83,9,.18),transparent 60%),
    radial-gradient(900px 500px at 100% 0%,rgba(234,88,12,.10),transparent 55%),
    radial-gradient(700px 700px at 50% 110%,rgba(139,69,19,.10),transparent 60%),
    linear-gradient(180deg,#F5E9D6 0%,#F2E6D2 100%);
  background-attachment:fixed;
  min-height:100vh;padding:24px 20px 40px;color:var(--ink);position:relative;
}
body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.35;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.25 0 0 0 0 0.15 0 0 0 0 0.05 0 0 0 .04 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
.container{max-width:880px;margin:0 auto;position:relative;z-index:1}

/* 暗色模式全局色彩平滑过渡（仅过渡颜色，不动布局/动画） */
body,body *{transition:background-color .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease}

/* ===== 悬浮按钮组（置顶/置底/清空） ===== */
.fab-group{position:fixed;right:20px;bottom:22px;display:flex;flex-direction:column;gap:10px;z-index:9999}
.fab-btn{width:42px;height:42px;border-radius:50%;border:none;background:linear-gradient(135deg,#EA580C,#F97316);color:#fff;font-size:1.15rem;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 6px 18px rgba(234,88,12,.38),0 2px 6px rgba(0,0,0,.08);transition:transform .18s cubic-bezier(.34,1.56,.64,1),box-shadow .18s,background .15s;font-family:inherit;user-select:none;animation:fabFloat 3.6s ease-in-out infinite}
.fab-btn:nth-child(2){animation-delay:.4s}
.fab-btn:nth-child(3){animation-delay:.8s}
.fab-btn:hover{background:linear-gradient(135deg,#D4520A,#EA580C);transform:scale(1.1) translateY(-2px);box-shadow:0 10px 26px rgba(234,88,12,.48),0 4px 10px rgba(0,0,0,.12)}
.fab-btn:active{transform:scale(.94)}
.fab-btn.fab-reset{background:linear-gradient(135deg,#8B4513,#B45309);box-shadow:0 6px 18px rgba(139,69,19,.38),0 2px 6px rgba(0,0,0,.08)}
.fab-btn.fab-reset:hover{background:linear-gradient(135deg,#5C3309,#8B4513);box-shadow:0 10px 26px rgba(139,69,19,.48),0 4px 10px rgba(0,0,0,.12)}
@keyframes fabFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}

/* ===== 卡片 ===== */
.card{background:var(--card-bg);backdrop-filter:blur(12px) saturate(140%);-webkit-backdrop-filter:blur(12px) saturate(140%);border-radius:var(--radius);padding:22px;margin-bottom:14px;
  box-shadow:var(--shadow-md);border:1px solid rgba(243,226,192,.85);
  transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s,background-color .3s ease,color .3s ease,border-color .3s ease;
  position:relative;animation:cardFadeIn .5s cubic-bezier(.22,.61,.36,1) both}
.card:nth-child(1){animation-delay:.02s}
.card:nth-child(2){animation-delay:.06s}
.card:nth-child(3){animation-delay:.10s}
.card:nth-child(4){animation-delay:.14s}
.card:nth-child(5){animation-delay:.18s}
.card:nth-child(6){animation-delay:.22s}
.card:nth-child(7){animation-delay:.26s}
.card:nth-child(8){animation-delay:.30s}
.card:nth-child(9){animation-delay:.34s}
.card:nth-child(10){animation-delay:.38s}
.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:rgba(139,69,19,.25)}
.card h2{font-size:1rem;color:var(--brand-deep);margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--border);font-weight:700;letter-spacing:.2px;cursor:default;display:flex;align-items:center;gap:6px}
.card h2::before{content:'';display:inline-block;width:3px;height:14px;background:linear-gradient(180deg,var(--brand),var(--brand-2));border-radius:2px;flex:0 0 auto}
.card h2[onclick],.card h2[style*="cursor:pointer"]{cursor:pointer}
.card h2[style*="display:flex"]::before{margin-right:2px}
.row{display:flex;flex-wrap:wrap;gap:10px}
.field{flex:1;min-width:100px}
.field label{display:block;font-size:0.78rem;color:var(--muted);margin-bottom:4px;font-weight:500;letter-spacing:.1px}
.req::after{content:' *';color:var(--accent);font-weight:700}
@keyframes cardFadeIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

/* ===== 输入框 / 下拉框（统一基线，不硬编码 height/width） ===== */
.field input,.field select{width:100%;padding:11px 12px;border:1.5px solid var(--border-2);border-radius:var(--radius-sm);font-size:0.9rem;text-align:center;background:rgba(255,255,255,.7);color:var(--ink);transition:border-color .18s,box-shadow .18s,background .18s;font-family:inherit}
.field input:hover,.field select:hover{border-color:rgba(139,69,19,.45);background:rgba(255,255,255,.9)}
.field input:focus,.field select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 4px rgba(139,69,19,.14),0 2px 8px rgba(139,69,19,.1);background:#fff}
.field input[readonly]{background:linear-gradient(135deg,rgba(245,233,214,.85),rgba(243,226,192,.85));color:var(--brand);cursor:default;border-style:dashed}
.field input::placeholder{color:#94A3B8}
/* 必填项即时反馈（与彩盒一致） */
.field input.input-ok{border-color:var(--brand);box-shadow:0 0 0 2px rgba(139,69,19,.14);background:rgba(255,255,255,.85)}
/* 随自定义裁切开关切换的「当前重点填写项」高亮（正向强调，非错误警告）
   注意：只改 border-color + box-shadow + background，绝不改 border-width/padding，
   避免状态切换时盒模型顶动导致输入框轻微跳动 */
.field input.hl-emph{border-color:var(--brand-deep);background:rgba(245,233,214,.85);box-shadow:0 0 0 3px rgba(139,69,19,.16)}
.field input.hl-emph:focus{outline:none;border-color:var(--brand-deep);box-shadow:0 0 0 4px rgba(139,69,19,.22);background:#fff}
.field input.input-warn{border-color:#DC2626;box-shadow:0 0 0 2px rgba(220,38,38,.12);background:#FFF6F6}
/* 自定义裁切开关打开后禁用的输入框：变灰 */
.field input.input-disabled,.field select.input-disabled{background:#F1F5F9!important;color:#94A3B8!important;border-color:#E2E8F0!important;cursor:not-allowed;opacity:.7}
/* 「其他」卡片主次区分：主输入(加工费/数量)保持标准描边，次级输入降权退后 */
.card h2 ~ .row .field:not(.field-primary) input:not([readonly]):not(.input-disabled),
.card h2 ~ .row .field:not(.field-primary) select:not(.input-disabled){border:1.5px solid #E2E8F0;color:#475569;background-color:rgba(248,250,252,.7)}
.card h2 ~ .row .field:not(.field-primary) input:not([readonly]):not(.input-disabled):focus,
.card h2 ~ .row .field:not(.field-primary) select:not(.input-disabled):focus{border-color:#94A3B8;box-shadow:0 0 0 3px rgba(148,163,184,.14);background-color:#fff}
.card h2 ~ .row .field:not(.field-primary) label{color:#64748B}
/* 下拉框统一棕褐箭头 */
.field select,.toolbar-input,.unit-select,.set-input,.panel select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%238B4513' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>");background-repeat:no-repeat;background-position:right 10px center;padding-right:28px}
/* 主表单数字框隐藏原生上下箭头 */
.field input[type=number]::-webkit-inner-spin-button,.field input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.field input[type=number]{-moz-appearance:textfield}
.field input::-webkit-outer-spin-button,.field input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}

/* 其他成本/优惠 单位下拉框：棕褐语义色 */
.unit-select{flex:0 0 auto;min-width:84px;padding:10px 26px 10px 12px!important;text-align:center;font-weight:600;font-size:0.8rem;border-radius:var(--radius-sm);cursor:pointer;box-sizing:border-box;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%238B4513' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>");background-repeat:no-repeat;background-position:right 10px center}
.field select.unit-select{width:auto}
.unit-select.unit-green{border:1.5px solid var(--brand);background-color:rgba(245,233,214,.85);color:var(--brand)}
.unit-select.unit-orange{border:1.5px solid var(--accent);background-color:rgba(255,247,237,.85);color:var(--accent)}
.unit-select.unit-blue{border:1.5px solid var(--brand);background-color:rgba(245,233,214,.85);color:var(--brand)}
.flex-input{flex:1;min-width:0;width:auto}
/* 并排容器内的 input：用 flex 填充剩余空间（覆盖通用 width:100%） */
.field > div[style*="display:flex"]{align-items:stretch}
.field > div[style*="display:flex"] > input{flex:1;min-width:0;width:auto}

/* 搜索/筛选排统一输入框 */
.toolbar-input{flex:0 0 auto;padding:10px 14px;border:1.5px solid var(--border-2);border-radius:var(--radius-sm);font-size:0.85rem;background:rgba(255,255,255,.7);color:var(--ink);font-family:inherit;transition:border-color .18s,box-shadow .18s,background .18s;box-sizing:border-box}
.toolbar-input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(139,69,19,.12);background:#fff}
#searchInput.toolbar-input{flex:1;padding:11px 14px}

/* ===== 辅助标签 / 提示气泡 ===== */
.auto-tag{font-size:0.65rem;margin-left:4px;font-weight:600;padding:1px 7px;border-radius:10px;letter-spacing:.3px;background:#F3E2C0;color:#8B4513;border:1px solid #E2B97A}
.auto-tag[data-mode="auto"]{background:#F3E2C0;color:#8B4513;border:1px solid #E2B97A}
.auto-tag[data-mode="manual"]{background:#FFF5EF;color:#EA580C;border:1px solid #FED7AA}
/* 自定义裁切药丸开关（对齐彩盒 .toggle-row 体系，打开色用瓦楞棕褐） */
.toggle-row{display:inline-flex;align-items:center;gap:8px;cursor:pointer;user-select:none;font-size:0.85rem;color:var(--ink);padding:6px 10px;border-radius:var(--radius-sm);transition:background .15s}
.toggle-row:hover{background:rgba(139,69,19,.05)}
.toggle-text{line-height:1;white-space:nowrap}
.toggle{position:relative;display:inline-block;width:42px;height:24px;flex:0 0 auto}
.toggle input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;z-index:1}
.toggle-track{position:absolute;inset:0;background:#CBD5E1;border-radius:24px;transition:background .25s cubic-bezier(.34,1.56,.64,1);pointer-events:none}
.toggle-track::after{content:'';position:absolute;width:18px;height:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform .25s cubic-bezier(.34,1.56,.64,1);box-shadow:0 2px 4px rgba(0,0,0,.2)}
.toggle input:checked + .toggle-track{background:linear-gradient(135deg,#8B4513,#B45309)}
.toggle input:checked + .toggle-track::after{transform:translateX(18px);box-shadow:0 2px 6px rgba(0,0,0,.25)}
.help-tip{position:relative;cursor:help;color:#94A3B8;font-size:0.8rem;margin-left:4px}
.help-tip:hover::after{content:attr(data-tip);position:absolute;left:0;top:24px;background:var(--ink);color:#fff;padding:8px 12px;border-radius:var(--radius-sm);font-size:0.75rem;white-space:pre-line;line-height:1.6;z-index:999;min-width:220px;box-shadow:0 4px 12px rgba(0,0,0,.2)}

/* ===== 页签切换 ===== */
.mode-tabs{display:flex;gap:6px;margin-bottom:18px;padding:6px;border-radius:var(--radius);background:rgba(255,255,255,.65);backdrop-filter:blur(12px) saturate(140%);-webkit-backdrop-filter:blur(12px) saturate(140%);box-shadow:var(--shadow-md),inset 0 1px 0 rgba(255,255,255,.6);border:1px solid rgba(243,226,192,.7)}
.mode-tab{flex:1;padding:11px 14px;text-align:center;font-size:0.92rem;font-weight:600;cursor:pointer;border:none;border-radius:8px;background:transparent;color:var(--muted);transition:all .25s cubic-bezier(.34,1.56,.64,1);text-decoration:none;display:block;font-family:inherit}
.mode-tab:hover{color:var(--brand-deep);background:rgba(139,69,19,.06)}
.mode-tab.active{background:linear-gradient(135deg,#8B4513,#B45309);color:#fff;box-shadow:0 4px 14px rgba(139,69,19,.35),inset 0 1px 0 rgba(255,255,255,.2)}

/* ===== 步进器（高度对齐彩盒 42px，不破坏同行统一高度） ===== */
.stepper{display:flex;align-items:stretch;height:44px;border:1.5px solid var(--border-2);border-radius:var(--radius-sm);overflow:hidden;background:rgba(255,255,255,.7);backdrop-filter:blur(6px)}
.stepper button{flex:0 0 auto;padding:0 14px;border:none;background:transparent;cursor:pointer;font-size:1.35rem;line-height:1;color:#B07A45;display:flex;align-items:center;justify-content:center;transition:background .15s,transform .12s,color .15s;font-family:inherit;user-select:none}
.stepper button:hover{background:linear-gradient(135deg,#8B4513,#B45309);color:#fff}
.stepper button:active{transform:scale(.88)}
.stepper input{flex:1;min-width:0;text-align:center;border:none;font-size:0.9rem;font-family:inherit;color:var(--ink);background:transparent}
.stepper input:focus{outline:none;box-shadow:inset 0 0 0 2px rgba(139,69,19,.18)}

/* ===== 按钮体系 ===== */
.btn{display:block;width:100%;padding:15px;border:none;border-radius:var(--radius);background:linear-gradient(135deg,#8B4513 0%,#B45309 50%,#8B4513 100%);background-size:200% 100%;color:#fff;font-size:1.1rem;font-weight:700;cursor:pointer;margin-top:8px;transition:transform .12s cubic-bezier(.34,1.56,.64,1),box-shadow .2s,background-position .4s;font-family:inherit;letter-spacing:.5px;box-shadow:0 6px 20px rgba(139,69,19,.32),0 2px 6px rgba(0,0,0,.06);position:relative;overflow:hidden}
.btn::before{content:'';position:absolute;inset:0;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.25) 50%,transparent 70%);transform:translateX(-100%);transition:transform .6s}
.btn:hover{background-position:100% 0;box-shadow:0 10px 28px rgba(139,69,19,.42),0 4px 10px rgba(0,0,0,.08)}
.btn:hover::before{transform:translateX(100%)}
.btn:active{transform:scale(.96)}
.btn-copy{flex:1.4;padding:14px;border:none;border-radius:var(--radius);background:linear-gradient(135deg,#8B4513,#5C3309);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .12s cubic-bezier(.34,1.56,.64,1),box-shadow .2s;font-family:inherit;box-shadow:0 4px 14px rgba(139,69,19,.3)}
.btn-copy:hover{box-shadow:0 8px 22px rgba(139,69,19,.42);transform:translateY(-1px)}
.btn-copy:active{transform:scale(.96)}
.btn-secondary{flex:1;padding:12px;border:1.5px solid var(--border-2);background:rgba(255,255,255,.7);color:var(--brand);border-radius:var(--radius);font-size:0.85rem;font-weight:600;cursor:pointer;transition:background .18s,border-color .18s,transform .12s;font-family:inherit;backdrop-filter:blur(6px)}
.btn-secondary:hover{background:#fff;border-color:var(--brand);transform:translateY(-1px);box-shadow:0 4px 12px rgba(139,69,19,.15)}
.btn-secondary:active{transform:scale(.97)}
.btn-secondary.blue{border-color:var(--border-2);color:var(--brand)}
.btn-secondary.blue:hover{background:rgba(245,233,214,.7)}
.btn-secondary.gray{border-color:#D8E8E6;color:#64748B}
.btn-secondary.gray:hover{background:#F5FAF9}

/* ===== 吸底操作栏 ===== */
.sticky-actions{position:sticky;bottom:0;z-index:50;background:linear-gradient(0deg,rgba(245,233,214,.96) 75%,rgba(245,233,214,0) 100%);backdrop-filter:blur(12px) saturate(140%);-webkit-backdrop-filter:blur(12px) saturate(140%);padding:14px 0 18px;margin:-12px 0 0}
.sticky-actions .btn{margin-top:0}

/* ===== 结果区 ===== */
.result-card{padding:0;overflow:hidden;border:1px solid rgba(226,185,122,.7);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:cardIn .45s cubic-bezier(.22,.61,.36,1)}
#actionBtns{animation:cardIn .35s ease-out;display:flex;gap:8px}
.result-header{background:linear-gradient(135deg,#5C3309 0%,#8B4513 50%,#B45309 100%);background-size:200% 100%;color:#fff;padding:28px 20px 24px;text-align:center;position:relative;overflow:hidden}
.result-header::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.18),transparent 50%),radial-gradient(circle at 80% 80%,rgba(255,255,255,.1),transparent 45%);pointer-events:none}
.result-header::after{content:'';position:absolute;top:-50%;right:-20%;width:60%;height:200%;background:linear-gradient(45deg,transparent,rgba(255,255,255,.08),transparent);transform:rotate(15deg);pointer-events:none}
.result-header .rh-label{font-size:0.85rem;opacity:.9;letter-spacing:1.5px;font-weight:500;text-transform:uppercase;position:relative}
.result-header .rh-total{font-size:3rem;font-weight:800;margin:8px 0 4px;font-family:'Plus Jakarta Sans',monospace;letter-spacing:-1.5px;text-shadow:0 2px 12px rgba(0,0,0,.15);position:relative;background:linear-gradient(180deg,#fff,rgba(255,255,255,.92));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.result-header .rh-sub{font-size:0.82rem;opacity:.88;position:relative;font-weight:500}
.result-header .rh-tax{font-size:0.72rem;opacity:.7;margin-top:4px;position:relative}

/* ===== 成本链 ===== */
.cost-chain{display:flex;padding:16px 18px;background:linear-gradient(135deg,rgba(252,252,255,.9),rgba(245,233,214,.7));border-bottom:1px solid var(--border);gap:4px;align-items:center;backdrop-filter:blur(8px)}
.cost-chain .cc-item{flex:1;text-align:center;transition:transform .2s}
.cost-chain .cc-item:hover{transform:translateY(-2px)}
.cost-chain .cc-label{font-size:0.7rem;color:var(--muted-2);font-weight:500;letter-spacing:.3px}
.cost-chain .cc-val{font-size:1rem;font-weight:700;color:var(--ink);font-family:'Plus Jakarta Sans',monospace}
.cost-chain .cc-val.accent{font-size:1.1rem;font-weight:800;color:var(--accent);text-shadow:0 1px 3px rgba(234,88,12,.15)}
.cost-chain .cc-arrow{color:#94A3B8;font-size:1.1rem}

/* ===== 成本明细表 ===== */
.cost-table{width:100%;border-collapse:collapse;font-size:0.8rem}
.cost-table th{padding:8px 10px;text-align:left;border-bottom:2px solid var(--border);background:linear-gradient(180deg,rgba(245,233,214,.9),rgba(243,226,192,.7));color:var(--brand-deep);font-weight:700;letter-spacing:.3px}
.cost-table th.num{text-align:right}
.cost-table td{padding:6px 10px;border-bottom:1px solid var(--border-soft)}
.cost-table tr:hover td{background:rgba(245,233,214,.5)}
.cost-table td.num{text-align:right;font-family:'Plus Jakarta Sans',monospace}
.cost-table td.muted{color:#64748B;font-size:0.75rem}
.cost-table .cat-header td{padding:5px 10px;font-size:0.72rem;font-weight:700;border-bottom:1px solid var(--border);letter-spacing:.5px}
.cost-table .cat-header.cat-material{color:#8B4513;background:linear-gradient(90deg,rgba(243,226,192,.9),rgba(245,233,214,.5))}
.cost-table .cat-header.cat-process{color:#8E44AD;background:linear-gradient(90deg,rgba(248,240,255,.9),rgba(252,245,255,.5))}
.cost-table .cat-header.cat-other{color:#8B4513;background:linear-gradient(90deg,rgba(243,226,192,.9),rgba(245,233,214,.5))}
.cost-table .total-row{background:linear-gradient(135deg,rgba(252,252,255,.95),rgba(245,233,214,.85))}
.cost-table .total-row td{padding:10px;font-weight:800}
.cost-table .total-row .total-val{color:var(--accent);font-size:1.05rem;font-family:'Plus Jakarta Sans',monospace;text-shadow:0 1px 3px rgba(234,88,12,.15)}

/* ===== 公式区 ===== */
.formula-toggle{border-top:1px solid #F3E2C0;padding:10px 16px;text-align:center;cursor:pointer;user-select:none}
.formula-toggle span{font-size:0.78rem;color:#8B4513;font-weight:500}
.formula-detail{max-height:0;opacity:0;padding:0 16px;overflow:hidden;background:#FCFCFF;font-size:0.75rem;color:#8B4513;line-height:1.5;border-top:1px solid transparent;transition:max-height .28s ease,opacity .28s ease,padding .28s ease}
.formula-detail.open{max-height:4000px;opacity:1;padding:12px 16px;border-top-color:#F3E2C0}
/* 段标题行（容器）+ 内部 inline 排版（瓦楞棕褐色系） */
.formula-detail .fhead{display:block;margin-top:32px;padding-bottom:4px;border-bottom:1px dashed #B07A45}
.formula-detail .fhead:first-child{margin-top:0}
.formula-detail .fsec{display:inline;color:#8B4513;font-weight:700;font-size:0.84rem}
.formula-detail .fsub{color:#64748B;font-weight:400;font-size:0.78rem;margin-left:10px}
/* 两栏参数行：标签右对齐+算式 mono */
.formula-detail .frow{margin-top:4px}
.formula-detail .flabel{display:inline-block;width:72px;color:#5C3309;font-weight:600;text-align:right;margin-right:10px;vertical-align:top}
.formula-detail .fval{display:inline-block;color:#334155;font-family:'Plus Jakarta Sans',monospace;font-weight:500;letter-spacing:.2px}
/* 成本汇总：统一两栏 */
.formula-detail .fsum{display:block;margin-top:4px}
.formula-detail .fsum .flabel{color:#475569;font-weight:600}
.formula-detail .fsum .fval{color:#0F172A;font-weight:600}
.formula-detail .fsum.total .flabel{color:#EA580C;font-weight:700}
.formula-detail .fsum.total .fval{color:#EA580C;font-weight:700}

/* ===== 结果占位卡 ===== */
.result-placeholder{background:linear-gradient(135deg,rgba(245,233,214,.8),rgba(242,230,210,.7));border:2px dashed rgba(226,185,122,.7);border-radius:var(--radius);padding:52px 20px;text-align:center;color:#94A3B8;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);position:relative;overflow:hidden}
.result-placeholder::before{content:'';position:absolute;top:-30%;left:-10%;width:50%;height:80%;background:radial-gradient(circle,rgba(139,69,19,.08),transparent 60%);pointer-events:none}
.result-placeholder .ph-icon{font-size:2.8rem;margin-bottom:12px;display:inline-block;animation:phBob 2.8s ease-in-out infinite}
.result-placeholder .ph-title{font-size:1rem;font-weight:700;color:var(--brand);margin-bottom:6px;letter-spacing:.3px}
.result-placeholder .ph-sub{font-size:0.8rem;color:#99B5B2}
@keyframes phBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}

/* ===== 统计栏 ===== */
.stats-bar{display:flex;gap:0;margin-bottom:14px;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-md);border:1px solid rgba(243,226,192,.7)}
.stat-item{flex:1;padding:12px 8px;text-align:center;background:linear-gradient(180deg,rgba(255,255,255,.85),rgba(252,252,255,.7));border-right:1px solid var(--border);transition:background .2s;position:relative;overflow:hidden}
.stat-item:hover{background:linear-gradient(180deg,#fff,rgba(252,252,255,.9))}
.stat-item:last-child{border-right:none}
.stat-item .stat-num{font-size:1.3rem;font-weight:800;color:var(--brand);font-family:'Plus Jakarta Sans',monospace;letter-spacing:-.5px}
.stat-item .stat-label{font-size:0.7rem;color:var(--muted-2);margin-top:2px;font-weight:500;letter-spacing:.3px}
.stat-item.accent .stat-num{color:var(--accent)}
.stat-item.accent::after{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--accent),transparent)}

/* ===== 历史记录表 ===== */
.history-table{width:100%;border-collapse:collapse;font-size:0.8rem}
.history-table th{padding:10px;border-bottom:2px solid var(--border);text-align:left;background:linear-gradient(180deg,rgba(245,233,214,.9),rgba(243,226,192,.7));white-space:nowrap;color:var(--brand-deep);font-weight:700;letter-spacing:.3px}
.history-table td{padding:8px 10px;border-bottom:1px solid var(--border-soft)}
.history-table tbody tr{transition:background .18s}
.history-table tbody tr:hover{background:rgba(245,233,214,.6)}
.history-table .col-cb{width:30px;text-align:center}
.history-table .col-name{cursor:pointer}
.history-table .col-time{white-space:nowrap;font-size:0.75rem;color:var(--muted-2)}
.history-table .col-num{text-align:right;white-space:nowrap;font-family:'Plus Jakarta Sans',monospace}
.history-table .col-action{text-align:center;white-space:nowrap}
.history-table .action-btn{background:linear-gradient(135deg,#8B4513,#B45309);color:#fff;border:none;padding:4px 9px;border-radius:6px;cursor:pointer;font-size:0.72rem;margin:0 1px;transition:all .15s;font-family:inherit;box-shadow:0 2px 6px rgba(139,69,19,.2)}
.history-table .action-btn:hover{background:linear-gradient(135deg,#5C3309,#8B4513);transform:translateY(-1px);box-shadow:0 4px 10px rgba(139,69,19,.3)}
.history-table .action-btn.del{background:linear-gradient(135deg,#EA580C,#F97316);box-shadow:0 2px 6px rgba(234,88,12,.2)}
.history-table .action-btn.del:hover{background:linear-gradient(135deg,#D4520A,#EA580C);box-shadow:0 4px 10px rgba(234,88,12,.3)}
.history-table .action-btn.exp{background:linear-gradient(135deg,#8B4513,#B45309)}

/* ===== 客户标签 ===== */
.cust-tag{display:inline-block;padding:1px 6px;border-radius:4px;font-size:0.72rem;font-weight:500}
.cust-tag.c1{background:#F3E2C0;color:#8B4513}
.cust-tag.c2{background:#E0F2FE;color:#0EA5E9}
.cust-tag.c3{background:#FFF5EF;color:#EA580C}
.cust-tag.c4{background:#F8F0FF;color:#8E44AD}
.cust-tag.c5{background:#FEF2F2;color:#DC2626}
.cust-tag.c0{background:#F0F2F5;color:#999}
.no-result{text-align:center;color:#94A3B8;padding:20px;font-size:0.85rem}

/* ===== 页脚 ===== */
.footer{text-align:center;color:#94A3B8;font-size:0.7rem;margin-top:20px;font-weight:500}
.foot-update{text-align:center;color:#94A3B8;font-size:0.75rem;padding:14px 0 22px;margin-top:10px;border-top:1px solid #F3E2C0}

/* ===== 弹窗通用 ===== */
.overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(15,23,42,.55);z-index:100;justify-content:center;align-items:center;backdrop-filter:blur(8px) saturate(140%);-webkit-backdrop-filter:blur(8px) saturate(140%)}
.overlay.show{display:flex}
.panel{background:rgba(255,255,255,.95);backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);border-radius:var(--radius-lg);padding:28px;max-width:700px;width:95%;max-height:85vh;overflow-y:auto;box-shadow:0 24px 64px rgba(0,0,0,.28),0 8px 24px rgba(139,69,19,.12);animation:panelPop .25s cubic-bezier(.34,1.56,.64,1);border:1px solid rgba(255,255,255,.6)}
.panel h3{font-size:1.1rem;margin-bottom:16px;color:var(--ink);font-weight:800;letter-spacing:.5px}
@keyframes panelPop{from{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:none}}
@keyframes cardIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* ===== 后台设置表单（对齐彩盒 .set 体系） ===== */
.set-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.set-card{background:rgba(255,255,255,.75);backdrop-filter:blur(10px);border:1px solid var(--border);border-left:4px solid var(--brand);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow-sm)}
.set-card h4{font-size:0.82rem;margin-bottom:10px;color:var(--ink);font-weight:700}
.set-card .srow{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.set-card .srow label{font-size:0.82rem;color:var(--ink);min-width:120px;font-weight:500;white-space:normal;line-height:1.3}
.set-input{width:90px;padding:7px 9px;border:1.5px solid var(--border-2);border-radius:7px;font-size:0.82rem;text-align:right;background:rgba(255,255,255,.7);transition:border-color .15s,box-shadow .15s;color:var(--ink);font-family:inherit}
.set-input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(139,69,19,.12);background:#fff}
.set-card .srow .unit{font-size:0.78rem;color:var(--muted-2);min-width:38px}
.set-card .srow span{font-size:0.78rem;color:var(--muted-2);margin:0 2px}
.set-card .srow textarea{width:100%;min-height:50px;padding:8px;border:1.5px solid var(--border-2);border-radius:7px;font-size:0.82rem;font-family:inherit;resize:vertical;color:var(--ink);background:rgba(255,255,255,.7);box-sizing:border-box}
.set-card .srow textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(139,69,19,.12);background:#fff}

/* ===== 统一小按钮（弹窗/工具栏用） ===== */
.btn-sm{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:10px 18px;font-size:0.85rem;font-weight:700;border-radius:var(--radius-sm);border:none;cursor:pointer;transition:all .18s cubic-bezier(.34,1.56,.64,1);font-family:inherit;letter-spacing:.3px}
.btn-sm:hover{transform:translateY(-1px);filter:brightness(1.05)}
.btn-sm:active{transform:scale(.96)}
.btn-sm.green{background:linear-gradient(135deg,#8B4513,#B45309);color:#fff;box-shadow:0 3px 10px rgba(139,69,19,.25)}
.btn-sm.blue{background:linear-gradient(135deg,#8B4513,#B45309);color:#fff;box-shadow:0 3px 10px rgba(139,69,19,.25)}
.btn-sm.orange{background:linear-gradient(135deg,#EA580C,#F97316);color:#fff;box-shadow:0 3px 10px rgba(234,88,12,.25)}
.btn-sm.red{background:linear-gradient(135deg,#DC2626,#EF4444);color:#fff;box-shadow:0 3px 10px rgba(220,38,38,.25)}
.btn-sm.gray{background:rgba(243,226,192,.8);color:var(--brand);backdrop-filter:blur(6px);border:1px solid var(--border-2)}
.btn-sm.gray:hover{background:#fff;border-color:var(--brand);color:var(--brand-deep)}

/* ===== 密码弹窗 ===== */
.pwd-panel{background:rgba(255,255,255,.95);backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);border-radius:var(--radius-lg);padding:0;max-width:340px;width:90%;box-shadow:0 24px 64px rgba(0,0,0,.28),0 8px 24px rgba(139,69,19,.12);overflow:hidden;animation:panelPop .25s cubic-bezier(.34,1.56,.64,1);border:1px solid rgba(255,255,255,.6)}
.pwd-body{padding:24px 24px 22px;text-align:center}
.pwd-body h3{font-size:1.1rem;margin:0 0 18px;color:#3A2A18;font-weight:700}
.pwd-input{width:100%;padding:11px 12px;border:1.5px solid #E2B97A;border-radius:9px;font-size:16px;text-align:center;background:#FCFCFF;transition:border-color .15s,box-shadow .15s;box-sizing:border-box;font-family:inherit;color:#3A2A18}
.pwd-input:focus{outline:none;border-color:#8B4513;box-shadow:0 0 0 3px rgba(139,69,19,.12);background:#fff}
.pwd-err{font-size:0.75rem;color:#DC2626;margin-top:10px;display:none}
.pwd-actions{display:flex;gap:10px;margin-top:16px}
.pwd-actions .btn-sm{flex:1}

/* ===== 保存弹窗 ===== */
.modal-mask{position:fixed;inset:0;background:rgba(15,23,42,.55);z-index:10000;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(8px) saturate(140%);-webkit-backdrop-filter:blur(8px) saturate(140%)}
.modal-card{position:relative;width:360px;max-width:92vw;background:rgba(255,255,255,.96);backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);border-radius:var(--radius-lg);box-shadow:0 24px 64px rgba(0,0,0,.28),0 8px 24px rgba(139,69,19,.12);padding:20px 20px 16px;box-sizing:border-box;animation:panelPop .25s cubic-bezier(.34,1.56,.64,1);overflow:hidden;border:1px solid rgba(255,255,255,.6)}
.modal-close{position:absolute;top:10px;right:12px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:1.05rem;line-height:1;color:#94A3B8;cursor:pointer;border-radius:5px;user-select:none}
.modal-close:hover{background:#F5E9D6;color:#3A2A18}
.modal-title{font-size:1rem;font-weight:700;color:#3A2A18;margin-bottom:4px}
.modal-sub{font-size:0.72rem;color:#64748B;margin-bottom:12px;line-height:1.4}
.modal-form{display:flex;flex-direction:column;gap:9px}
.modal-row{display:flex;align-items:center;gap:8px}
.modal-row label{flex:0 0 64px;font-size:0.8rem;color:#8B4513;text-align:right}
.modal-row input,.modal-row textarea{flex:1;min-width:0;box-sizing:border-box;padding:7px 9px;border:1.5px solid #E2B97A;border-radius:6px;font-size:0.85rem;font-family:inherit;line-height:1.4;resize:vertical;color:#3A2A18;background:#FCFCFF}
.modal-row input:focus,.modal-row textarea:focus{outline:none;border-color:#8B4513}
.spec-group{display:flex;align-items:center;gap:6px;flex:1;min-width:0}
.spec-group input{flex:1;min-width:0;box-sizing:border-box;padding:7px 9px;border:1.5px solid #E2B97A;border-radius:6px;font-size:0.85rem;font-family:inherit;line-height:1.4;color:#3A2A18;background:#FCFCFF}
.spec-group input:focus{outline:none;border-color:#8B4513}
.spec-x{flex:0 0 auto;color:#94A3B8;font-size:0.85rem}
.paper-group{display:flex;align-items:center;gap:6px;flex:1;min-width:0}
.gram-wrap{flex:1;min-width:0;display:flex;align-items:center;gap:3px;box-sizing:border-box;padding:7px 9px;border:1.5px solid #E2B97A;border-radius:6px;font-size:0.85rem;font-family:inherit;line-height:1.4;background:#FCFCFF}
.gram-wrap input{flex:1;min-width:0;border:none;outline:none;padding:0;font-size:0.85rem;font-family:inherit;background:transparent;color:#3A2A18}
.gram-wrap input:focus{outline:none}
.gram-unit{flex:0 0 auto;color:#64748B;font-size:0.85rem}
.paper-group select{flex:1;min-width:0;box-sizing:border-box;padding:7px 9px;border:1.5px solid #E2B97A;border-radius:6px;font-size:0.85rem;font-family:inherit;line-height:1.4;background:#FCFCFF;color:#3A2A18}
.paper-group select:focus{outline:none;border-color:#8B4513}
.flute-group{display:flex;align-items:center;gap:6px;flex:1;min-width:0}
.flute-group input[type=text]{flex:1;min-width:0;box-sizing:border-box;padding:7px 9px;border:1.5px solid #E2B97A;border-radius:6px;font-size:0.85rem;font-family:inherit;line-height:1.4;color:#3A2A18;background:#FCFCFF}
.flute-group input[type=text]:focus{outline:none;border-color:#8B4513}
.flute-group select{flex:1;min-width:0;box-sizing:border-box;padding:7px 9px;border:1.5px solid #E2B97A;border-radius:6px;font-size:0.85rem;font-family:inherit;line-height:1.4;background:#FCFCFF;color:#3A2A18}
.flute-group select:focus{outline:none;border-color:#8B4513}
.cross-label{flex:0 0 auto;display:flex;align-items:center;gap:3px;font-size:0.8rem;color:#8B4513;white-space:nowrap;cursor:pointer}
.cross-label input[type=checkbox]{width:15px;height:15px;cursor:pointer}
.modal-actions{display:flex;gap:10px;margin-top:16px}
.modal-actions button{flex:1;padding:11px 0;border-radius:8px;font-size:0.88rem;font-weight:600;cursor:pointer;border:none;transition:background .15s,transform .1s;font-family:inherit}
.modal-actions button:active{transform:scale(.97)}
.btn-cancel{background:rgba(243,226,192,.85);color:var(--brand);border:1px solid var(--border-2);backdrop-filter:blur(6px)}
.btn-cancel:hover{background:#fff;border-color:var(--brand)}
.btn-confirm{background:linear-gradient(135deg,#8B4513,#B45309);color:#fff;box-shadow:0 3px 10px rgba(139,69,19,.25)}
.btn-confirm:hover{background:linear-gradient(135deg,#5C3309,#8B4513);box-shadow:0 5px 14px rgba(139,69,19,.35)}
.modal-input-err,.modal-input-err:focus{border:2px solid #DC2626 !important;background:#FFF6F6 !important;outline:none}

/* ===== 全局提示条 ===== */
.gtip{background:#3A2A18;color:#fff;padding:10px 14px;border-radius:8px;font-size:0.7rem;max-width:320px;line-height:1.7;box-shadow:0 4px 20px rgba(0,0,0,.4);pointer-events:auto;text-align:left;z-index:99999}
.gtip hr{border-color:#3A2A18;margin:4px 0}
.tip-edit{margin-top:8px;text-align:right}
.tip-edit .action-btn{background:#8B4513;color:#fff;border:none;border-radius:5px;padding:5px 10px;font-size:0.7rem;cursor:pointer}
.tip-edit .action-btn:hover{background:#5C3309}

/* ===== 移动端 ===== */
@media (max-width: 768px) {
  html{scroll-behavior:smooth;scroll-padding-top:20px}
  body{-webkit-overflow-scrolling:touch}
  .container{max-width:100%;padding:8px}
  .card{padding:10px;scroll-margin-top:20px}
  input[type=password],.field input,.field select,.panel input,.panel select{font-size:16px!important;padding:10px 8px}
  .mode-tab{font-size:0.85rem;padding:10px}
  h2{font-size:0.95rem}
  .btn{padding:12px;font-size:1rem}
  .set-grid{grid-template-columns:1fr}
  .set-card .srow input{width:60px}
  .overlay .panel{width:95%;max-height:90vh;overflow-y:auto}
  #actionBtns{flex-wrap:wrap}
  #actionBtns .btn{flex:1 1 45%!important;min-width:45%;font-size:0.85rem!important;padding:10px 8px!important}
  #multiQtyTable{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .qb-textarea{font-size:0.8rem!important;min-height:200px}
  .cost-table td .desc{display:block;font-size:0.7rem;margin-top:2px}

  /* —— 手机端参数卡片：每行最多 2 个 field，杜绝输入框被压成 60px —— */
  .row{display:flex;flex-wrap:wrap;gap:10px}
  /* !important 覆盖 HTML 内联 flex（如其他成本 flex:1.5），移动端统一两列等宽 */
  .field{flex:1 1 calc(50% - 5px) !important;min-width:0 !important;max-width:100% !important}
  /* 标题允许换行，但给固定最小高度（单行高），保证同一行各 field 的输入框顶部对齐、不参差不齐 */
  .field label{white-space:normal;min-height:1.05rem;line-height:1.05rem;display:flex;align-items:baseline;flex-wrap:wrap}
  .auto-tag,.help-tip{flex:0 0 auto;white-space:nowrap;align-self:baseline}
  /* 带下拉的 field 也保持两列等宽 */
  .field select{width:100%}
  /* 复合横排字段（input + 单位选择器等）整行显示，避免被挤成 60px */
  .field:has(> div[style*="display:flex"]){flex:1 0 100% !important}
  /* 复合横排字段内部：input/select 改竖排堆叠（先 input 占满，下一行 select 全宽） */
  .field > div[style*="display:flex"]{flex-wrap:wrap;gap:6px}
  .field > div[style*="display:flex"] > input,
  .field > div[style*="display:flex"] > select{flex:1 0 100% !important;min-width:0 !important}
}

/* ===== 暗色模式 ===== */
body.dark{
  background:
    radial-gradient(1200px 600px at 10% -10%,rgba(180,83,9,.16),transparent 60%),
    radial-gradient(900px 500px at 100% 0%,rgba(234,88,12,.10),transparent 55%),
    radial-gradient(700px 700px at 50% 110%,rgba(139,69,19,.10),transparent 60%),
    linear-gradient(180deg,#0A1019 0%,#151D29 100%);
  background-attachment:fixed;color:#CBD5E1}
body.dark::before{opacity:.55;filter:invert(1) hue-rotate(180deg)}
body.dark .card{background:rgba(22,31,43,.72);backdrop-filter:blur(12px) saturate(140%);-webkit-backdrop-filter:blur(12px) saturate(140%);border-color:rgba(45,58,77,.6);box-shadow:0 4px 16px rgba(0,0,0,.3),0 1px 4px rgba(0,0,0,.2)}
body.dark .card:hover{box-shadow:0 8px 24px rgba(0,0,0,.4),0 2px 8px rgba(0,0,0,.25)}
body.dark .card h2{color:#E2B97A;border-bottom-color:#3A2A18}
body.dark .field label{color:#94A3B8}
body.dark .field input,.dark .field select{background:rgba(15,23,42,.7);border:1.5px solid #475569;color:#E2E8F0}
body.dark .field input:hover,.dark .field select:hover{border-color:rgba(180,83,9,.45);background:rgba(15,23,42,.9)}
body.dark .field input:focus,.dark .field select:focus{border-color:#8B4513;box-shadow:0 0 0 4px rgba(180,83,9,.18),0 2px 8px rgba(180,83,9,.12);background:#0F172A}
body.dark .field input.hl-emph{border-color:#E2B97A;background:rgba(58,42,24,.85);box-shadow:0 0 0 3px rgba(139,69,19,.32)}
body.dark .field input.hl-emph:focus{outline:none;border-color:#E2B97A;box-shadow:0 0 0 4px rgba(139,69,19,.42);background:#1E293B}
body.dark .field input[readonly]{background:linear-gradient(135deg,rgba(26,35,51,.85),rgba(15,23,42,.85));color:#E2B97A}
body.dark .field input.input-disabled,body.dark .field select.input-disabled{background:rgba(30,41,59,.7)!important;color:#64748B!important;border-color:#334155!important;opacity:.6}
body.dark .card h2 ~ .row .field:not(.field-primary) input:not([readonly]):not(.input-disabled),
body.dark .card h2 ~ .row .field:not(.field-primary) select:not(.input-disabled){border:1.5px solid #475569;color:#94A3B8;background-color:rgba(15,23,42,.7)}
body.dark .card h2 ~ .row .field:not(.field-primary) input:not([readonly]):not(.input-disabled):focus,
body.dark .card h2 ~ .row .field:not(.field-primary) select:not(.input-disabled):focus{border-color:#64748B;background-color:#1E293B}
body.dark .card h2 ~ .row .field:not(.field-primary) label{color:#94A3B8}
body.dark .btn{background:linear-gradient(135deg,#5C3309,#8B4513,#B45309);box-shadow:0 6px 20px rgba(139,69,19,.32)}
body.dark .btn:hover{box-shadow:0 10px 28px rgba(139,69,19,.42)}
body.dark .btn-copy{background:linear-gradient(135deg,#5C3309,#8B4513);box-shadow:0 4px 14px rgba(139,69,19,.3)}
body.dark .btn-copy:hover{box-shadow:0 8px 22px rgba(139,69,19,.42)}
body.dark .btn-secondary{background:rgba(30,41,59,.7);border-color:#334155;color:#E2B97A;backdrop-filter:blur(8px)}
body.dark .btn-secondary:hover{background:#0F172A;border-color:#8B4513;box-shadow:0 4px 12px rgba(180,83,9,.15)}
body.dark .btn-secondary.gray{border-color:#334155;color:#94A3B8}
body.dark .mode-tabs{background:rgba(30,41,59,.65);border-color:rgba(45,58,77,.5)}
body.dark .mode-tab{background:transparent;color:#94A3B8}
body.dark .mode-tab:hover{color:#E2B97A;background:rgba(139,69,19,.08)}
body.dark .mode-tab.active{background:linear-gradient(135deg,#5C3309,#8B4513,#B45309);color:#fff}
body.dark .stepper{background:rgba(15,23,42,.7);border-color:#334155}
body.dark .stepper button{background:transparent;border-color:#334155;color:#E2B97A}
body.dark .stepper button:hover{background:linear-gradient(135deg,#8B4513,#B45309);color:#0F172A;box-shadow:0 2px 6px rgba(139,69,19,.3)}
body.dark .stepper input{background:transparent;border-color:#334155;color:#E2E8F0}
body.dark .unit-select.unit-green{background:rgba(58,42,24,.85);border-color:#8B4513;color:#E2B97A}
body.dark .unit-select.unit-orange{background:rgba(61,26,10,.85);border-color:#F97316;color:#FDBA74}
body.dark .unit-select.unit-blue{background:rgba(58,42,24,.85);border-color:#8B4513;color:#E2B97A}
body.dark .toolbar-input{background:rgba(15,23,42,.7);border-color:#334155;color:#E2E8F0}
body.dark .toolbar-input:focus{border-color:#8B4513;box-shadow:0 0 0 3px rgba(217,119,6,.15)}
body.dark .field select,.dark .toolbar-input,.dark .unit-select,.dark .set-input,.dark .panel select{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%23FCD9A8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>");background-repeat:no-repeat;background-position:right 10px center}
body.dark .auto-tag{background:rgba(58,42,24,.85);color:#E2B97A;border-color:#5C3309}
body.dark .auto-tag[data-mode="manual"]{background:rgba(61,26,10,.85);color:#F97316;border-color:#7C2D12}
body.dark .toggle-row{color:#E2E8F0}
body.dark .toggle-row:hover{background:rgba(139,69,19,.08)}
body.dark .toggle-track{background:#334155}
body.dark .toggle input:checked + .toggle-track{background:linear-gradient(135deg,#8B4513,#B45309)}
body.dark .result-card{border-color:rgba(58,42,24,.6);box-shadow:0 12px 32px rgba(0,0,0,.4)}
body.dark .result-header{background:linear-gradient(135deg,#5C3309 0%,#8B4513 50%,#B45309 100%)}
body.dark .cost-chain{background:linear-gradient(135deg,rgba(30,41,59,.85),rgba(15,23,42,.7));border-bottom-color:#334155;backdrop-filter:blur(8px)}
body.dark .cost-chain .cc-val{color:#E2E8F0}
body.dark .cost-chain .cc-val.accent{color:#F97316}
body.dark .cost-table th{background:linear-gradient(180deg,rgba(58,42,24,.85),rgba(92,51,9,.7));border-bottom-color:#5C3309;color:#E2B97A}
body.dark .cost-table td{border-bottom-color:#334155}
body.dark .cost-table tr:hover td{background:rgba(30,41,59,.6)}
body.dark .cost-table .cat-header.cat-material{background:linear-gradient(90deg,rgba(58,42,24,.85),rgba(58,42,24,.5));color:#E2B97A}
body.dark .cost-table .cat-header.cat-process{background:linear-gradient(90deg,rgba(30,16,53,.85),rgba(30,16,53,.5));color:#A78BFA}
body.dark .cost-table .cat-header.cat-other{background:linear-gradient(90deg,rgba(58,42,24,.85),rgba(58,42,24,.5));color:#E2B97A}
body.dark .cost-table .total-row{background:linear-gradient(135deg,rgba(30,41,59,.95),rgba(22,31,43,.85))}
body.dark .cost-table .total-row .total-val{color:#F97316}
body.dark .formula-toggle{border-top-color:#334155}
body.dark .formula-toggle span{color:#E2B97A}
body.dark .formula-detail{background:rgba(30,41,59,.85);color:#94A3B8}
body.dark .formula-detail.open{border-top-color:#334155}
body.dark .formula-detail hr{border-top-color:#334155;opacity:.6}
body.dark .result-placeholder{background:linear-gradient(135deg,rgba(30,41,59,.85),rgba(15,23,42,.85));border-color:rgba(51,65,85,.6);color:#475569;backdrop-filter:blur(10px)}
body.dark .result-placeholder .ph-title{color:#94A3B8}
body.dark .stats-bar{box-shadow:0 2px 8px rgba(0,0,0,.35);border-color:rgba(45,58,77,.5)}
body.dark .stat-item{background:linear-gradient(180deg,rgba(30,41,59,.85),rgba(15,23,42,.7));border-right-color:#334155}
body.dark .stat-item:hover{background:linear-gradient(180deg,rgba(30,41,59,.95),rgba(15,23,42,.85))}
body.dark .stat-item .stat-num{color:#E2B97A}
body.dark .stat-item .stat-label{color:#94A3B8}
body.dark .stat-item.accent .stat-num{color:#F97316}
body.dark .history-table th{background:linear-gradient(180deg,rgba(58,42,24,.85),rgba(92,51,9,.7));border-bottom-color:#5C3309;color:#E2B97A}
body.dark .history-table td{border-bottom-color:#334155}
body.dark .history-table tr:hover{background:rgba(30,41,59,.6)}
body.dark .history-table .action-btn{background:linear-gradient(135deg,#5C3309,#8B4513);box-shadow:0 2px 6px rgba(0,0,0,.3)}
body.dark .history-table .action-btn.del{background:linear-gradient(135deg,#B91C1C,#EF4444);box-shadow:0 2px 6px rgba(0,0,0,.3)}
body.dark .footer{color:#475569}
body.dark .foot-update{color:#475569;border-top-color:#334155}
body.dark .sticky-actions{background:linear-gradient(0deg,rgba(10,16,25,.96) 75%,rgba(10,16,25,0) 100%);backdrop-filter:blur(12px) saturate(140%);-webkit-backdrop-filter:blur(12px) saturate(140%)}
body.dark .help-tip{color:#475569}
body.dark .btn-sm.green,body.dark .btn-sm.blue{background:linear-gradient(135deg,#5C3309,#8B4513);box-shadow:0 3px 10px rgba(180,83,9,.25)}
body.dark .btn-sm.orange{background:linear-gradient(135deg,#EA580C,#F97316);box-shadow:0 3px 10px rgba(234,88,12,.25)}
body.dark .btn-sm.red{background:linear-gradient(135deg,#B91C1C,#DC2626);box-shadow:0 3px 10px rgba(220,38,38,.25)}
body.dark .btn-sm.gray{background:rgba(51,65,85,.7);color:#94A3B8;backdrop-filter:blur(6px);border:1px solid #334155}
body.dark .btn-sm.gray:hover{background:rgba(30,41,59,.9);border-color:#8B4513;color:#E2B97A}
/* 暗色弹窗 */
body.dark .overlay{background:rgba(0,0,0,.7);backdrop-filter:blur(8px) saturate(140%);-webkit-backdrop-filter:blur(8px) saturate(140%)}
body.dark .panel{background:rgba(22,31,43,.92);backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);box-shadow:0 24px 64px rgba(0,0,0,.5),0 8px 24px rgba(0,0,0,.3);border:1px solid rgba(45,58,77,.5)}
body.dark .panel h3{color:#E2E8F0}
body.dark .set-card{background:rgba(22,31,43,.7);border-color:#334155}
body.dark .set-card h4{color:#E2E8F0}
body.dark .set-card .srow label{color:#94A3B8}
body.dark .set-card .srow input,.dark .set-input{background:rgba(15,23,42,.7);border-color:#334155;color:#E2E8F0}
body.dark .set-card .srow input:focus,.dark .set-input:focus{border-color:#8B4513;box-shadow:0 0 0 3px rgba(180,83,9,.15)}
body.dark .set-card .srow textarea{background:rgba(15,23,42,.7);border-color:#334155;color:#E2E8F0}
body.dark .set-card .srow textarea:focus{border-color:#8B4513;box-shadow:0 0 0 3px rgba(180,83,9,.15)}
body.dark .set-card .srow .unit{color:#475569}
body.dark .set-card .srow span{color:#475569}
body.dark .pwd-panel{background:rgba(22,31,43,.92);backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);border:1px solid rgba(45,58,77,.5)}
body.dark .pwd-input{background:rgba(15,23,42,.7);border-color:#334155;color:#E2E8F0}
body.dark .pwd-input:focus{border-color:#8B4513;box-shadow:0 0 0 4px rgba(180,83,9,.15)}
body.dark .modal-card{background:rgba(22,31,43,.92);backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);border:1px solid rgba(45,58,77,.5)}
body.dark .modal-title{color:#E2E8F0}
body.dark .modal-sub{color:#94A3B8}
body.dark .modal-row label{color:#94A3B8}
body.dark .modal-row input,.dark .modal-row textarea{background:rgba(15,23,42,.7);border-color:#334155;color:#E2E8F0}
body.dark .modal-row input:focus,.dark .modal-row textarea:focus{border-color:#8B4513;box-shadow:0 0 0 3px rgba(180,83,9,.15)}
body.dark .spec-group input{background:rgba(15,23,42,.7);border-color:#334155;color:#E2E8F0}
body.dark .gram-wrap{background:rgba(15,23,42,.7);border-color:#334155}
body.dark .gram-wrap input{color:#E2E8F0}
body.dark .paper-group select,.dark .flute-group select,.dark .flute-group input[type=text]{background:rgba(15,23,42,.7);border-color:#334155;color:#E2E8F0}
body.dark .btn-cancel{background:rgba(51,65,85,.7);color:#94A3B8;border:1px solid #334155}
body.dark .btn-confirm{background:linear-gradient(135deg,#5C3309,#8B4513);box-shadow:0 3px 10px rgba(180,83,9,.25)}
body.dark .cross-label{color:#94A3B8}
body.dark .cust-tag.c1{background:rgba(58,42,24,.85);color:#E2B97A}
body.dark .cust-tag.c2{background:rgba(30,58,95,.85);color:#7DD3FC}
body.dark .cust-tag.c3{background:rgba(61,26,10,.85);color:#F97316}
body.dark .cust-tag.c4{background:rgba(30,16,53,.85);color:#A78BFA}
body.dark .cust-tag.c5{background:rgba(45,17,17,.85);color:#FCA5A5}
body.dark .cust-tag.c0{background:rgba(30,41,59,.7);color:#475569}
body.dark .gtip{background:rgba(15,23,42,.95);backdrop-filter:blur(12px);box-shadow:0 4px 20px rgba(0,0,0,.5)}
