/* greenhouse-ventilation-calc — 表格工作台(workbench)：现代产品感令牌版 */
.t3-gv{
  --bg:#f5f7fb; --card:#ffffff; --ink:#1f2937; --sub:#667085; --line:#e4e7ec;
  --acc:var(--a); --acc2:var(--a2);
  --soft:rgba(101,163,13,.08); --soft:color-mix(in srgb,var(--a) 8%,transparent);
  --ring:rgba(101,163,13,.25); --ring:color-mix(in srgb,var(--a) 25%,transparent);
  --ok:#4d7c0f; --warn:#b45309; --bad:#dc2626;
  --thead-bg:#3f6212; --thead-ink:#f2f7dd;
  --shadow:0 1px 2px rgba(16,24,40,.05), 0 12px 28px -14px rgba(16,24,40,.12);
  --r-card:16px; --r-ctl:10px;
  counter-reset:t3sec;
  max-width:1180px;margin:0 auto;padding:20px 16px 34px;
  color:var(--ink);font-size:14px;line-height:1.7;
  background:linear-gradient(180deg,var(--soft),transparent 320px),var(--bg);
  border-radius:18px;
}
[data-theme='dark'] .t3-gv{
  --bg:#0b1220; --card:#121a2b; --ink:#e6edf7; --sub:#9fb0c9; --line:rgba(148,163,184,.18);
  --acc:color-mix(in srgb,var(--a) 80%,#ffffff);
  --acc2:color-mix(in srgb,var(--a2) 85%,#ffffff);
  --soft:color-mix(in srgb,var(--a) 16%,transparent);
  --ring:color-mix(in srgb,var(--a) 40%,transparent);
  --ok:#a3e635; --warn:#fbbf24; --bad:#f87171;
  --thead-bg:#1a2a08; --thead-ink:#d9f99d;
  --shadow:0 1px 2px rgba(0,0,0,.3), 0 12px 28px -14px rgba(0,0,0,.5);
}

/* ---------- hero ---------- */
.t3-gv .gv-hero{display:grid;grid-template-columns:1.15fr 1fr;gap:24px;align-items:center;padding:4px 4px 24px;}
.t3-gv .gv-badge{display:inline-block;font-size:12px;font-weight:700;color:var(--acc);background:var(--soft);border:1px solid var(--line);padding:6px 12px;border-radius:999px;margin-bottom:12px;}
.t3-gv .gv-hero h1{margin:0 0 10px;font-size:clamp(22px,3.2vw,30px);line-height:1.28;font-weight:800;}
.t3-gv .gv-hero h1 em{font-style:normal;font-size:16px;color:var(--acc);font-weight:700;}
.t3-gv .gv-sub{margin:0 0 12px;font-size:14px;color:var(--sub);}
.t3-gv .gv-sub b{color:var(--ink);}
.t3-gv .gv-tags{display:flex;flex-wrap:wrap;gap:8px;}
.t3-gv .gv-tags span{font-size:12px;font-weight:600;color:var(--acc);border:1px solid var(--line);border-radius:999px;padding:5px 11px;background:var(--card);}
.t3-gv .gv-hero-art{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);padding:14px;box-shadow:var(--shadow);color:var(--acc);}
.t3-gv .gv-hero-art svg{width:100%;height:auto;display:block;}
.t3-gv .gv-svg-t{font-size:12.5px;font-weight:700;fill:var(--sub);text-anchor:middle;}

/* ---------- 工作台 ---------- */
.t3-gv .gv-desk{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);padding:20px 24px;box-shadow:var(--shadow);}
.t3-gv .gv-toolbar{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:flex-end;justify-content:space-between;border-bottom:1px dashed var(--line);padding-bottom:16px;margin-bottom:14px;}
.t3-gv .gv-presets{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.t3-gv .gv-preset-lbl{font-size:12.5px;font-weight:700;color:var(--sub);}
.t3-gv .gv-chip{border:1px solid var(--line);background:var(--bg);color:var(--ink);font-size:12.5px;font-weight:700;padding:8px 12px;border-radius:var(--r-ctl);cursor:pointer;transition:border-color .15s,color .15s,background .15s;font-family:inherit;}
.t3-gv .gv-chip:hover{border-color:var(--acc);color:var(--acc);background:var(--soft);}
.t3-gv .gv-global label{display:block;font-size:13px;font-weight:700;margin-bottom:6px;}
.t3-gv .gv-ctl{position:relative;}
.t3-gv .gv-ctl input{width:110px;box-sizing:border-box;height:44px;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:var(--r-ctl);padding:0 44px 0 14px;font-size:15px;font-weight:700;outline:none;transition:border-color .15s,box-shadow .15s;font-family:inherit;}
.t3-gv .gv-ctl input:focus{border-color:var(--acc);box-shadow:0 0 0 3px var(--ring);}
.t3-gv .gv-ctl i{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-style:normal;font-size:12px;font-weight:700;color:var(--acc);}
.t3-gv .gv-tools{display:flex;gap:10px;flex-wrap:wrap;}
.t3-gv .gv-btn{height:44px;box-sizing:border-box;display:inline-flex;align-items:center;border:1px solid var(--line);background:var(--card);color:var(--ink);font-size:13.5px;font-weight:700;padding:0 16px;border-radius:var(--r-ctl);cursor:pointer;transition:border-color .15s,color .15s,box-shadow .15s,transform .15s;font-family:inherit;}
.t3-gv .gv-btn:hover{border-color:var(--acc);color:var(--acc);transform:translateY(-1px);}
.t3-gv .gv-btn-go{background:var(--a);background:linear-gradient(135deg,color-mix(in srgb,var(--acc) 80%,#000),var(--acc));border:none;color:#fff;box-shadow:0 6px 16px var(--ring);}
.t3-gv .gv-btn-go:hover{color:#fff;filter:brightness(1.08);}
.t3-gv .gv-btn-ghost{background:transparent;color:var(--sub);}
.t3-gv .gv-btn-ghost:hover{color:var(--acc);}
.t3-gv .gv-btn-danger{border-color:color-mix(in srgb,var(--bad) 40%,var(--line));color:var(--bad);}
.t3-gv .gv-btn-danger:hover{border-color:var(--bad);color:var(--bad);background:color-mix(in srgb,var(--bad) 8%,transparent);}
.t3-gv .gv-btn-sm{height:32px;padding:0 12px;font-size:12px;}
.t3-gv .gv-empty{display:flex;align-items:center;gap:10px;background:var(--soft);border:1px dashed var(--line);border-radius:12px;padding:12px 14px;margin:0 0 14px;}
.t3-gv .gv-empty-ico{font-size:20px;line-height:1;}
.t3-gv .gv-msg{margin:0;font-size:13px;color:var(--sub);line-height:1.6;}
.t3-gv .gv-msg.err{color:var(--bad);font-weight:700;}
.t3-gv .gv-msg.ok{color:var(--ok);font-weight:700;}

/* ---------- 工序表 ---------- */
.t3-gv .gv-tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-card);background:var(--card);box-shadow:var(--shadow);}
.t3-gv .gv-table{width:100%;border-collapse:collapse;font-size:13px;min-width:1020px;background:var(--card);}
.t3-gv .gv-table th{background:var(--thead-bg);color:var(--thead-ink);font-weight:700;padding:11px 8px;text-align:center;white-space:nowrap;font-size:12px;position:sticky;top:0;}
.t3-gv .gv-table td{border:1px solid var(--line);padding:4px 6px;text-align:center;vertical-align:middle;}
.t3-gv .gv-table tbody tr:nth-child(even) td{background:var(--bg);}
.t3-gv .gv-table input{width:100%;min-width:56px;box-sizing:border-box;border:1px solid transparent;background:transparent;color:var(--ink);font-size:13.5px;font-weight:700;padding:8px 6px;border-radius:6px;outline:none;text-align:center;font-family:inherit;font-variant-numeric:tabular-nums;}
.t3-gv .gv-table input.gv-name{min-width:96px;text-align:left;}
.t3-gv .gv-table input:hover{border-color:var(--line);background:var(--bg);}
.t3-gv .gv-table input:focus{border-color:var(--acc);background:var(--card);box-shadow:0 0 0 3px var(--ring);}
.t3-gv .gv-table input.gv-bad{border-color:var(--bad);background:color-mix(in srgb,var(--bad) 8%,transparent);color:var(--bad);}
.t3-gv .gv-out{font-weight:800;color:var(--acc);font-variant-numeric:tabular-nums;white-space:nowrap;}
.t3-gv .gv-out.muted{color:var(--sub);font-weight:500;}
.t3-gv .gv-warn{font-size:12px;font-weight:800;}
.t3-gv .gv-warn.hot{color:#fff;background:var(--bad);border-radius:6px;padding:3px 8px;white-space:nowrap;}
.t3-gv .gv-warn.pass{color:var(--ok);}
.t3-gv .gv-warn.bad{color:var(--bad);}
.t3-gv .gv-del{border:1px solid var(--line);background:transparent;color:var(--sub);border-radius:6px;font-size:12px;padding:4px 8px;cursor:pointer;}
.t3-gv .gv-del:hover{border-color:var(--bad);color:var(--bad);}

/* ---------- 汇总结果区 ---------- */
.t3-gv .gv-res-strip{display:grid;grid-template-columns:1.2fr 2fr;gap:20px;margin-top:16px;}
.t3-gv .gv-res-main{background:var(--soft);border:1px solid var(--line);border-radius:var(--r-card);padding:18px 20px;text-align:center;transition:transform .15s,box-shadow .15s;}
.t3-gv .gv-res-main:hover{transform:translateY(-2px);box-shadow:var(--shadow);}
.t3-gv .gv-res-main span{display:block;font-size:12.5px;font-weight:700;color:var(--sub);}
.t3-gv .gv-res-main .hero-num{display:block;font-size:clamp(28px,4.5vw,40px);line-height:1.3;font-weight:800;font-variant-numeric:tabular-nums;color:var(--acc);background:linear-gradient(135deg,var(--acc),color-mix(in srgb,var(--acc) 45%,var(--acc2)));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
.t3-gv .gv-res-main i{font-style:normal;font-size:12px;color:var(--sub);}
.t3-gv .gv-mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.t3-gv .gv-cell{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;transition:transform .15s,box-shadow .15s;}
.t3-gv .gv-cell:hover{transform:translateY(-2px);box-shadow:var(--shadow);}
.t3-gv .gv-cell span{width:100%;font-size:12px;font-weight:600;color:var(--sub);}
.t3-gv .gv-cell b{font-size:18px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;}
.t3-gv .gv-cell i{font-style:normal;font-size:11px;color:var(--sub);}

.t3-gv .gv-formula{display:flex;flex-wrap:wrap;gap:8px 16px;margin:16px 0 4px;padding:12px 16px;background:var(--bg);border:1px dashed var(--line);border-radius:12px;font-size:12.5px;color:var(--sub);}
.t3-gv .gv-formula code{color:var(--acc);font-weight:700;background:var(--soft);padding:1px 7px;border-radius:5px;}
.t3-gv .gv-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px;}

/* ---------- 历史 ---------- */
.t3-gv .gv-hist-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:20px 0 8px;border-top:1px dashed var(--line);padding-top:16px;}
.t3-gv .gv-hist-head h2{margin:0;font-size:15px;font-weight:700;}
.t3-gv .gv-hist{display:flex;flex-direction:column;gap:8px;}
.t3-gv .gv-hist-empty{margin:0;font-size:12.5px;color:var(--sub);}
.t3-gv .gv-hist-item{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);background:var(--bg);border-radius:10px;padding:9px 13px;font-size:12.5px;cursor:pointer;transition:border-color .15s,transform .15s;}
.t3-gv .gv-hist-item:hover{border-color:var(--acc);transform:translateY(-2px);}
.t3-gv .gv-hist-item b{color:var(--acc);}
.t3-gv .gv-hist-item time{color:var(--sub);font-size:11.5px;}

/* ---------- 区块 ---------- */
.t3-gv .gv-sec{margin-top:24px;}
.t3-gv .gv-sec-h{margin:0 0 12px;font-size:17px;font-weight:700;display:flex;align-items:center;gap:10px;}
.t3-gv .gv-sec-h::before{counter-increment:t3sec;content:counter(t3sec);flex:none;width:24px;height:24px;border-radius:8px;background:var(--acc);color:#fff;font-size:13px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;}
.t3-gv .gv-static td{text-align:left;font-weight:600;}
.t3-gv .gv-static td:first-child{color:var(--acc);font-weight:800;white-space:nowrap;}

/* ---------- 响应式 ---------- */
@media (max-width:900px){
  .t3-gv .gv-hero{grid-template-columns:1fr;}
  .t3-gv .gv-hero-art svg{max-width:260px;margin:0 auto;}
  .t3-gv .gv-res-strip{grid-template-columns:1fr;}
}
@media (max-width:760px){
  .t3-gv .gv-toolbar{flex-direction:column;align-items:stretch;}
  .t3-gv .gv-tools{flex-wrap:wrap;}
  .t3-gv .gv-mini-grid{grid-template-columns:1fr;}
  .t3-gv .gv-desk{padding:16px 14px;}
}
