/* =========================================================================
 * gb-format.css —— 格式菜单 19 项 + 尺寸公差表（v2.2）
 * 复用 style.css / gb-tools.css 的深色主题变量，不改动任何既有样式。
 * ========================================================================= */

/* ---------------- 格式下拉菜单 ---------------- */
.gbf-drop { min-width: 248px; max-height: 82vh; overflow-y: auto; overflow-x: hidden; }
.gbf-drop-hd {
  padding: 5px 12px 7px; color: var(--text3, #7c8593);
  font-size: 10.5px; letter-spacing: .4px;
  border-bottom: 1px solid var(--border2, #2a313a); margin-bottom: 3px;
}
.gbf-drop-ft {
  padding: 6px 12px 8px; color: var(--text3, #7c8593); font-size: 9.5px;
  border-top: 1px solid var(--border2, #2a313a); margin-top: 3px;
}
.gbf-drop-item {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  width: 100%; text-align: left;
}
.gbf-drop-item kbd {
  color: var(--text3, #7c8593); font: 9.5px/1 Consolas, monospace;
  border: 1px solid var(--border2, #2a313a); border-radius: 3px; padding: 2px 4px;
}
.gbf-drop-item i { color: var(--text3, #7c8593); font-style: normal; font-size: 10px; }
.gbf-drop-item[data-gbf-open] { color: var(--accent, #3b9dff); }
.gbf-sub {
  display: none; padding: 3px 0 5px 12px;
  background: rgba(59, 157, 255, .07);
  border-left: 2px solid rgba(59, 157, 255, .45); margin: 1px 0 3px 8px;
}
.gbf-sub.show { display: block; }
.gbf-subitem {
  font-size: 11px; color: var(--text, #e6eaef) !important;
  background: transparent !important; border: 0; width: 100%; text-align: left;
}
.gbf-subitem:hover { color: #79c0ff !important; }
.gbf-subitem::before { content: '└ '; color: var(--text3, #7c8593); }

.gbd-drop { min-width: 244px; }
.gbd-drop-hd {
  padding: 5px 12px 7px; color: var(--text3, #7c8593); font-size: 10.5px;
  border-bottom: 1px solid var(--border2, #2a313a); margin-bottom: 3px;
}

/* ---------------- 对话框通用 ---------------- */
.gbf-modal .gb-modal-box, .gbd-modal .gb-modal-box { max-width: calc(100vw - 24px); }
.gbf-modal .gb-modal-bd, .gbd-modal .gb-modal-bd { max-height: min(76vh, 720px); overflow-y: auto; }
.gbf-modal input[type="text"], .gbf-modal input[type="number"],
.gbf-modal select, .gbf-modal textarea,
.gbd-modal input[type="text"], .gbd-modal input[type="number"], .gbd-modal select {
  width: 100%; box-sizing: border-box; padding: 6px 8px;
  background: var(--input, #12161c); color: var(--text, #e6eaef);
  border: 1px solid var(--border, #333b46); border-radius: 5px;
  font: 12px/1.5 "Microsoft YaHei", "PingFang SC", "Segoe UI", sans-serif; outline: none;
}
.gbf-modal textarea { resize: vertical; min-height: 84px; }
.gbf-modal input:focus, .gbf-modal select:focus, .gbf-modal textarea:focus,
.gbd-modal input:focus, .gbd-modal select:focus { border-color: var(--accent, #3b9dff); }

.gbf-row { display: flex; align-items: flex-start; gap: 10px; margin: 7px 0; }
.gbf-row > label {
  flex: 0 0 118px; color: var(--text2, #aab3bf);
  font-size: 11px; line-height: 28px; white-space: nowrap;
}
.gbf-fi { flex: 1 1 auto; min-width: 0; }
.gbf-fi small { display: block; color: var(--text3, #7c8593); font-size: 10px; margin-top: 3px; }
.gbf-pair { display: flex; gap: 8px; }
.gbf-pair input { flex: 1 1 0; min-width: 0; }
.gbf-chk {
  display: inline-flex; align-items: center; gap: 6px; margin: 6px 12px 6px 0;
  color: var(--text2, #aab3bf); font-size: 11px; cursor: pointer;
}
.gbf-chk input { width: auto !important; accent-color: var(--accent, #3b9dff); }
.gbf-sec {
  margin: 12px 0 7px; padding-bottom: 4px; color: var(--text3, #7c8593);
  font-size: 10.5px; letter-spacing: .6px;
  border-bottom: 1px solid var(--border2, #2a313a);
}
.gbf-sec:first-child { margin-top: 0; }
.gbf-tip {
  margin: 9px 0 2px; padding: 7px 9px; border-radius: 6px; line-height: 1.7;
  background: rgba(59, 157, 255, .07); border: 1px solid rgba(59, 157, 255, .2);
  color: var(--text2, #aab3bf); font-size: 10.5px;
}
.gbf-tbl { width: 100%; border-collapse: collapse; font-size: 11px; margin: 4px 0 8px; }
.gbf-tbl th {
  text-align: left; color: var(--text3, #7c8593); font-weight: 500; padding: 5px 7px;
  border-bottom: 1px solid var(--border2, #2a313a); background: var(--panel2, #212730);
}
.gbf-tbl td {
  padding: 4px 7px; color: var(--text2, #aab3bf);
  border-bottom: 1px solid var(--border2, #2a313a); vertical-align: middle;
}
.gbf-tbl tr:hover td { background: var(--hover, #262d36); }
.gbf-swatch { display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin-right: 6px; vertical-align: -1px; border: 1px solid #555; }
.gbf-mini {
  padding: 2px 6px; margin-right: 4px; cursor: pointer; border-radius: 4px; font-size: 10px;
  background: var(--panel2, #212730); color: var(--text2, #aab3bf);
  border: 1px solid var(--border, #333b46);
}
.gbf-mini:hover { border-color: var(--accent, #3b9dff); color: var(--text, #e6eaef); }
.gbf-btns { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin: 8px 0; }
.gbf-btns-3 { grid-template-columns: repeat(3, 1fr); }
.gbf-btn {
  display: flex; flex-direction: column; gap: 3px; text-align: left; cursor: pointer;
  padding: 8px 10px; border-radius: 6px; font-size: 11px;
  background: var(--panel2, #212730); color: var(--text, #e6eaef);
  border: 1px solid var(--border, #333b46);
}
.gbf-btn b { font-weight: 600; }
.gbf-btn span { color: var(--text3, #7c8593); font-size: 10px; line-height: 1.4; }
.gbf-btn:hover { border-color: var(--accent, #3b9dff); }

/* ---------------- 尺寸公差表 ---------------- */
.gbd-stats {
  display: flex; flex-wrap: wrap; gap: 8px 16px; padding: 8px 10px; margin-bottom: 9px;
  background: var(--panel2, #212730); border: 1px solid var(--border2, #2a313a); border-radius: 6px;
  font-size: 11px; color: var(--text2, #aab3bf);
}
.gbd-stats b { color: var(--text, #e6eaef); font-size: 13px; margin-left: 3px; }
.gbd-stats .gbd-ok b { color: #7bc98b; }
.gbd-stats .gbd-warn b { color: #e2bd83; }

.gbd-tools { display: flex; flex-direction: column; gap: 7px; margin-bottom: 10px; }
.gbd-group {
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px;
  padding: 7px 9px; border: 1px solid var(--border2, #2a313a); border-radius: 6px;
  background: rgba(255, 255, 255, .015);
}
.gbd-lab { flex: 0 0 158px; color: var(--text3, #7c8593); font-size: 10.5px; }
.gbd-btn {
  padding: 5px 10px; cursor: pointer; border-radius: 5px; font-size: 11px; white-space: nowrap;
  background: var(--panel2, #212730); color: var(--text, #e6eaef);
  border: 1px solid var(--border, #333b46);
}
.gbd-btn:hover { border-color: var(--accent, #3b9dff); }
.gbd-btn.on { border-color: var(--accent, #3b9dff); color: #79c0ff; background: rgba(59, 157, 255, .1); }
.gbd-btn.primary {
  background: rgba(59, 157, 255, .16); border-color: rgba(59, 157, 255, .55);
  color: #9fd0ff; font-weight: 600;
}
.gbd-btn.primary:hover { background: rgba(59, 157, 255, .26); }
.gbd-group .gbf-chk { margin: 0 0 0 4px; }

.gbd-tbl { width: 100%; border-collapse: collapse; font-size: 10.5px; }
.gbd-tbl th {
  position: sticky; top: 0; z-index: 1; text-align: left; white-space: nowrap;
  color: var(--text2, #aab3bf); font-weight: 600; padding: 5px 6px;
  background: var(--panel2, #212730); border-bottom: 1px solid var(--border, #333b46);
}
.gbd-tbl td {
  padding: 4px 6px; color: var(--text2, #aab3bf);
  border-bottom: 1px solid var(--border2, #2a313a); white-space: nowrap;
}
.gbd-tbl tr.gbd-ok td { background: rgba(123, 201, 139, .15); }
.gbd-tbl tr.gbd-ok td:first-child { box-shadow: inset 3px 0 0 #7bc98b; }
.gbd-tbl tr.gbd-derived td { background: rgba(226, 189, 131, .19); }
.gbd-tbl tr.gbd-derived td:first-child { box-shadow: inset 3px 0 0 #e2bd83; }
.gbd-tbl tr.gbd-missing td { color: var(--text3, #7c8593); }
.gbd-tbl tr:hover td { filter: brightness(1.25); }
.gbd-tbl td:nth-child(9) { white-space: normal; min-width: 150px; }
.gbd-empty { padding: 20px; text-align: center; color: var(--text3, #7c8593); font-size: 11px; }
.gbd-tip {
  margin: 9px 0 2px; padding: 7px 9px; border-radius: 6px; line-height: 1.7;
  background: rgba(226, 189, 131, .08); border: 1px solid rgba(226, 189, 131, .22);
  color: var(--text2, #aab3bf); font-size: 10.5px;
}
.gbd-modal .gb-modal-bd { max-height: min(78vh, 760px); }

/* ---------------- Ribbon 分组 ---------------- */
.gbf-rgroup .rtitle, .gbd-rgroup .rtitle { color: var(--text3, #7c8593); }
.gbd-rgroup .rbtn[data-cmd="FILLTOL"] { color: #9fd0ff; }

/* ---------------- 小屏 ---------------- */
@media (max-width: 760px) {
  .gbf-row > label { flex-basis: 96px; }
  .gbd-lab { flex-basis: 100%; }
  .gbf-btns, .gbf-btns-3 { grid-template-columns: 1fr; }
  .gbd-tbl { font-size: 10px; }
  .gbd-modal .gb-modal-box { width: calc(100vw - 16px) !important; }
}
