#tool-body{
  --tg-text:#1e293b; --tg-muted:#64748b; --tg-faint:#94a3b8;
  --tg-card:#ffffff; --tg-inset:#f8fafc; --tg-hd:#f1f5f9;
  --tg-border:#e2e8f0; --tg-border-2:#cbd5e1;
  --tg-accent:#4f46e5; --tg-accent-ink:#4338ca; --tg-accent-soft:#eef2ff;
  --tg-ring:rgba(79,70,229,.15);
  --tg-btn-bg:#4f46e5; --tg-btn-fg:#fff; --tg-btn-bg-hover:#4338ca;
  --tg-danger:#ef4444; --tg-danger-bg:#fef2f2;
  --tg-shadow-sm:0 1px 2px rgba(15,23,42,.04);
  --tg-shadow:0 1px 3px rgba(15,23,42,.04), 0 10px 24px -8px rgba(15,23,42,.08);
  --tg-radius:14px; --tg-radius-sm:10px; --tg-radius-xs:8px;
  --tg-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  color:var(--tg-text);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;
  font-size:14px; line-height:1.55;
}
.theme-dark-mode #tool-body{
  --tg-text:#e7e7ea; --tg-muted:#a2a2ab; --tg-faint:#70707a;
  --tg-card:#232326; --tg-inset:#1b1b1e; --tg-hd:#2c2c30;
  --tg-border:#38383d; --tg-border-2:#4e4e55;
  --tg-accent:#9aa0ff; --tg-accent-ink:#bcc0ff; --tg-accent-soft:rgba(154,160,255,.14);
  --tg-ring:rgba(154,160,255,.26);
  --tg-btn-bg:#5d63e8; --tg-btn-fg:#fff; --tg-btn-bg-hover:#7176ee;
  --tg-danger:#f87171; --tg-danger-bg:rgba(248,113,113,.14);
  --tg-shadow-sm:none; --tg-shadow:none;
}
#tool-body .tg-app{ position:relative; display:grid; grid-template-columns:minmax(0,1fr) minmax(340px,380px); gap:24px; max-width:1240px; margin:0 auto; padding:12px 0 48px; align-items:start; }
#tool-body .tg-mask{ display:none; position:fixed; left:0; right:0; top:0; bottom:0; z-index:80; background:rgba(248,250,252,.8); align-items:center; justify-content:center; }
#tool-body.is-busy .tg-mask{ display:flex; }
.theme-dark-mode #tool-body .tg-mask{ background:rgba(18,18,20,.8); }
#tool-body .tg-mask-box{ display:flex; flex-direction:column; align-items:center; gap:8px; min-width:220px; padding:22px 28px; background:var(--tg-card); border:1px solid var(--tg-border); border-radius:var(--tg-radius); box-shadow:var(--tg-shadow); font-size:15px; font-weight:600; color:var(--tg-accent-ink); }
#tool-body .tg-mask i{ font-size:22px; color:var(--tg-accent); }
#tool-body .tg-mask-progress{ min-height:1.4em; font-family:var(--tg-mono); font-size:13px; font-weight:500; color:var(--tg-muted); }
#tool-body .tg-mask-progress:empty{ display:none; }
#tool-body .tg-app *,
#tool-body .tg-app *::before,
#tool-body .tg-app *::after{ box-sizing:border-box; }
#tool-body .tg-col{ display:flex; flex-direction:column; gap:20px; min-width:0; }
#tool-body .tg-col-right{ position:sticky; top:16px; }
#tool-body .tg-card{ background:var(--tg-card); border:1px solid var(--tg-border); border-radius:var(--tg-radius); box-shadow:var(--tg-shadow); padding:18px 20px; }
#tool-body .tg-sec-head{ display:flex; align-items:center; gap:10px; margin-bottom:14px; }
#tool-body .tg-sec-ico{ flex:0 0 auto; width:30px; height:30px; display:inline-flex; align-items:center; justify-content:center; border-radius:9px; background:var(--tg-accent-soft); color:var(--tg-accent-ink); font-size:14px; }
#tool-body .tg-title{ font-size:14.5px; font-weight:600; line-height:1.35; }
#tool-body .tg-sec-head .tg-link{ margin-left:auto; }
#tool-body .tg-link{ border:0; background:transparent; color:var(--tg-accent); cursor:pointer; font-size:13px; padding:5px 9px; border-radius:7px; transition:background .15s; }
#tool-body .tg-link:hover{ background:var(--tg-accent-soft); text-decoration:none; }
#tool-body .tg-hint{ margin:11px 0 0; font-size:12.5px; line-height:1.6; color:var(--tg-muted); }
#tool-body .tg-empty,
#tool-body .tg-result-empty{ display:flex; align-items:center; justify-content:center; gap:8px; min-height:96px; padding:18px; border-radius:var(--tg-radius-sm); border:1px dashed var(--tg-border-2); color:var(--tg-muted); font-size:13px; line-height:1.6; text-align:center; }
#tool-body .tg-empty i,
#tool-body .tg-result-empty i{ color:var(--tg-faint); }
#tool-body .tg-slots:not(.is-off) ~ .tg-empty,
#tool-body .tg-result:not(.is-off) ~ .tg-result-empty{ display:none; }
#tool-body .tg-slots.is-off,
#tool-body .tg-result.is-off{ display:none; }
#tool-body .layui-input,
#tool-body .layui-textarea{ background:var(--tg-inset); color:var(--tg-text); border:1px solid var(--tg-border-2); border-radius:var(--tg-radius-xs); transition:border-color .15s, box-shadow .15s; }
#tool-body .layui-input:focus,
#tool-body .layui-textarea:focus{ border-color:var(--tg-accent)!important; box-shadow:0 0 0 3px var(--tg-ring); }
#tool-body .tg-tpl{ min-height:120px; height:120px; resize:vertical; line-height:1.7; font-family:var(--tg-mono); font-size:13.5px; }
#tool-body .layui-form-select .layui-input{ border-color:var(--tg-border-2); }
#tool-body .layui-form-select.layui-form-selected{ z-index:40; }
#tool-body .layui-form-select.layui-form-selected .layui-input{ border-color:var(--tg-accent); }
#tool-body .layui-form-select dl{ z-index:40; }
#tool-body .layui-form-select dl dd.layui-this{ background:var(--tg-accent-soft); color:var(--tg-accent-ink); }
#tool-body .tg-type-wrap .layui-form-select dl dd[lay-value="raw"]{ font-weight:600; color:var(--tg-accent-ink); border-bottom:1px solid var(--tg-border); }
#tool-body .tg-type-wrap.is-raw .layui-select-title input{ color:var(--tg-accent-ink); font-weight:600; }
#tool-body .tg-checks .layui-form-checkbox[lay-skin="primary"] i{ border-color:var(--tg-border-2) !important; }
#tool-body .tg-checks .layui-form-checkbox[lay-skin="primary"]:hover i{ border-color:var(--tg-accent) !important; }
#tool-body .tg-checks .layui-form-checked[lay-skin="primary"] i{ background:var(--tg-btn-bg); border-color:var(--tg-btn-bg) !important; }
#tool-body .tg-slot{ position:relative; z-index:1; background:var(--tg-card); border:1px solid var(--tg-border); border-radius:var(--tg-radius-sm); box-shadow:var(--tg-shadow-sm); padding:14px 16px; transition:box-shadow .15s, border-color .15s; }
#tool-body .tg-slot + .tg-slot{ margin-top:12px; }
#tool-body .tg-slot:focus-within{ border-color:var(--tg-accent); box-shadow:0 0 0 3px var(--tg-ring); }
#tool-body .tg-slot:has(.layui-form-select.layui-form-selected){ z-index:40; }
#tool-body .tg-head{ display:flex; align-items:center; gap:10px; margin-bottom:12px; }
#tool-body .tg-name{ font-family:var(--tg-mono); font-size:13px; font-weight:700; color:var(--tg-accent-ink); background:var(--tg-accent-soft); border-radius:8px; padding:5px 11px; word-break:break-all; }
#tool-body .tg-head .tg-type-wrap{ margin-left:auto; }
#tool-body .tg-type-wrap{ width:160px; flex:0 0 160px; max-width:100%; }
#tool-body .tg-type-wrap .layui-form-select,
#tool-body .tg-field.is-select .layui-form-select,
#tool-body .tg-field.is-case .layui-form-select,
#tool-body .tg-field.is-letter .layui-form-select{ width:100%; }
#tool-body .tg-panel{ display:none; }
#tool-body .tg-panel.is-on{ display:block; padding:12px; background:var(--tg-inset); border:1px solid var(--tg-border); border-radius:var(--tg-radius-xs); }
#tool-body .tg-panel.is-on:empty{ display:none; }
#tool-body .tg-fields{ display:flex; flex-wrap:wrap; gap:12px 16px; align-items:flex-end; }
#tool-body .tg-field{ width:104px; flex:0 0 104px; min-width:0; max-width:100%; }
#tool-body .tg-field.is-letter{ width:92px; flex-basis:92px; }
#tool-body .tg-field.is-case{ width:126px; flex-basis:126px; }
#tool-body .tg-field.is-date{ width:140px; flex-basis:140px; }
#tool-body .tg-field.is-select{ width:126px; flex-basis:126px; }
#tool-body .tg-field.is-fmt{ width:188px; flex-basis:188px; }
#tool-body .tg-field.is-fmt .layui-form-select{ width:100%; }
#tool-body .layui-form-select dl dt{ color:var(--tg-muted); font-size:12px; font-weight:600; padding:8px 10px 2px; }
#tool-body .tg-field.is-wide{ width:180px; flex-basis:180px; }
#tool-body .tg-field.is-checks{ width:auto; flex:1 1 220px; }
#tool-body .tg-field.is-full{ width:100%; flex:1 1 100%; }
#tool-body .tg-field.is-off{ display:none; }
#tool-body .tg-label{ display:block; margin-bottom:6px; font-size:11.5px; font-weight:600; color:var(--tg-muted); }
#tool-body .tg-field .layui-input-wrap,
#tool-body .tg-limit .layui-input-wrap{ width:100%; }
#tool-body .tg-field .layui-input,
#tool-body .tg-field .layui-textarea{ width:100%; }
#tool-body .tg-list{ min-height:96px; height:96px; resize:vertical; line-height:1.6; font-family:var(--tg-mono); font-size:13px; }
#tool-body .tg-checks{ display:flex; flex-wrap:wrap; gap:6px 16px; align-items:center; min-height:38px; }
#tool-body .tg-checks .layui-form-checkbox{ margin:0; }
#tool-body .tg-note{ margin-top:12px; font-size:12px; line-height:1.6; color:var(--tg-muted); }
#tool-body .tg-note:empty{ display:none; }
#tool-body .tg-preview{ display:flex; align-items:baseline; gap:8px; margin-top:12px; padding:9px 12px; border-radius:8px; background:var(--tg-hd); font-size:13px; line-height:1.6; word-break:break-all; }
#tool-body .tg-k{ display:none; flex:0 0 auto; font-size:12px; color:var(--tg-muted); }
#tool-body .tg-preview.is-get .tg-k-get,
#tool-body .tg-preview.is-keep .tg-k-keep{ display:inline; }
#tool-body .tg-pv{ flex:1 1 auto; min-width:0; font-family:var(--tg-mono); color:var(--tg-text); }
#tool-body .tg-preview.is-err{ background:var(--tg-danger-bg); box-shadow:inset 3px 0 0 var(--tg-danger); }
#tool-body .tg-preview.is-err .tg-pv{ color:var(--tg-danger); font-family:inherit; }
#tool-body .tg-action{ display:flex; flex-direction:column; gap:14px; }
#tool-body .tg-count{ font-size:15px; font-weight:600; line-height:1.45; }
#tool-body .tg-count.is-warn{ color:var(--tg-danger); }
#tool-body .tg-sub{ margin-top:6px; font-size:12px; line-height:1.5; color:var(--tg-muted); word-break:break-all; }
#tool-body .tg-sub:empty{ display:none; }
#tool-body .tg-wait{ font-size:12px; line-height:1.5; color:var(--tg-accent-ink); }
#tool-body .tg-wait:empty{ display:none; }
#tool-body .tg-limit{ display:flex; align-items:flex-end; gap:8px; }
#tool-body .tg-max-field{ width:128px; }
#tool-body .tg-unit{ height:38px; line-height:38px; font-size:13px; color:var(--tg-muted); }
#tool-body .tg-gen,
#tool-body .tg-btn{ height:38px; padding:0 16px; border-radius:var(--tg-radius-xs); font-size:14px; cursor:pointer; border:1px solid var(--tg-border-2); background:var(--tg-card); color:var(--tg-text); display:inline-flex; align-items:center; justify-content:center; gap:7px; transition:background .15s, border-color .15s, color .15s; }
#tool-body .tg-gen{ width:100%; height:42px; font-size:14.5px; border-color:var(--tg-btn-bg); background:var(--tg-btn-bg); color:var(--tg-btn-fg); font-weight:600; }
#tool-body .tg-gen:hover:not(:disabled){ background:var(--tg-btn-bg-hover); border-color:var(--tg-btn-bg-hover); }
#tool-body .tg-gen:disabled{ opacity:.4; cursor:not-allowed; }
#tool-body .tg-btn:hover{ border-color:var(--tg-accent); color:var(--tg-accent); }
#tool-body .tg-btn i{ font-size:13px; }
#tool-body .tg-result-bar{ display:flex; flex-direction:column; align-items:stretch; gap:8px; margin-bottom:8px; }
#tool-body .tg-out-count{ font-size:12px; line-height:1.5; color:var(--tg-muted); }
#tool-body .tg-result-actions{ display:flex; align-items:center; gap:8px; }
#tool-body .tg-out{ min-height:200px; height:260px; resize:vertical; line-height:1.6; background:var(--tg-inset); font-family:var(--tg-mono); font-size:13px; }
@media (max-width:960px){
  #tool-body .tg-app{ grid-template-columns:1fr; padding:8px 0 40px; }
  #tool-body .tg-col-right{ position:static; }
}
@media (max-width:640px){
  #tool-body .tg-card{ padding:14px 15px; }
  #tool-body .tg-slot{ padding:12px 14px; }
  #tool-body .tg-head{ flex-wrap:wrap; }
  #tool-body .tg-head .tg-type-wrap{ margin-left:0; }
  #tool-body .tg-type-wrap{ flex:1 1 100%; width:100%; }
  #tool-body .tg-field,
  #tool-body .tg-field.is-letter,
  #tool-body .tg-field.is-case,
  #tool-body .tg-field.is-date,
  #tool-body .tg-field.is-select,
  #tool-body .tg-field.is-fmt,
  #tool-body .tg-field.is-wide{ flex:1 1 calc(50% - 16px); width:auto; }
  #tool-body .tg-field.is-full,
  #tool-body .tg-field.is-checks{ flex-basis:100%; }
}