/* ── 物流报价表 完整在线表格 (类腾讯文档) ── */
.qg-root{display:flex;flex-direction:column;height:calc(100vh - 200px);border:1px solid #e3e8ef;border-radius:10px;overflow:hidden;background:#fff;font-size:13px}

/* 工具栏 */
.qg-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:4px;padding:6px 8px;background:#f7f9fc;border-bottom:1px solid #e3e8ef}
.qg-tb-group{display:flex;align-items:center;gap:2px;padding:0 4px;border-right:1px solid #dfe5ee}
.qg-tb-group:last-child{border-right:none}
.qg-btn{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 7px;border:1px solid transparent;border-radius:6px;background:transparent;cursor:pointer;color:#333;font-size:13px;line-height:1;user-select:none}
.qg-btn:hover{background:#e9eef6;border-color:#d0d8e3}
.qg-btn:active{background:#dbe4f0}
.qg-btn.qg-active{background:#d6e4ff;border-color:#9bc0ff;color:#1a5bd6}
.qg-btn b{font-weight:700}
.qg-btn i{font-style:italic;font-family:Georgia,serif}
.qg-btn u{text-decoration:underline}
.qg-sel{height:30px;padding:0 6px;border:1px solid #d0d8e3;border-radius:6px;background:#fff;cursor:pointer;font-size:13px}
.qg-color{position:relative;width:30px;height:30px;padding:0;border:1px solid #d0d8e3;border-radius:6px;cursor:pointer;overflow:hidden}
.qg-color input[type=color]{position:absolute;inset:-4px;width:140%;height:140%;border:none;padding:0;cursor:pointer}
.qg-color .qg-swatch{position:absolute;left:3px;right:3px;bottom:3px;height:5px;border-radius:2px}
.qg-sep{width:1px;height:22px;background:#dfe5ee;margin:0 2px}

/* 下拉菜单 */
.qg-menu{position:absolute;z-index:200;min-width:150px;background:#fff;border:1px solid #d0d8e3;border-radius:8px;box-shadow:0 6px 24px rgba(0,0,0,.16);padding:4px;display:none}
.qg-menu.open{display:block}
.qg-menu-item{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:6px;cursor:pointer;white-space:nowrap;font-size:13px}
.qg-menu-item:hover{background:#eef4ff}
.qg-menu-item .qg-ic{width:18px;text-align:center;color:#1a5bd6}
.qg-menu-sep{height:1px;background:#eee;margin:4px 2px}

/* 网格滚动区 */
.qg-scroll{flex:1;overflow:auto;overflow-x:hidden;position:relative;background:#fff}
.qg-tbl{border-collapse:separate;border-spacing:0;table-layout:fixed}
.qg-tbl col{width:80px}
.qg-tbl th.qg-corner{position:sticky;top:0;left:0;z-index:5;background:#eef2f7;color:#888;font-weight:600;border:1px solid #d9dee5;min-width:42px;width:42px}
.qg-tbl thead th.qg-colh{position:sticky;top:0;z-index:4;background:#eef2f7;color:#555;font-weight:600;border:1px solid #d9dee5;text-align:center;height:28px;cursor:pointer;user-select:none}
.qg-tbl thead th.qg-colh .qg-resize{position:absolute;top:0;right:-3px;width:6px;height:100%;cursor:col-resize;z-index:6}
.qg-tbl thead th.qg-colh .qg-resize:hover{background:#1a5bd6}
.qg-tbl tbody td.qg-rh{position:sticky;left:0;z-index:3;background:#eef2f7;color:#888;text-align:center;border:1px solid #d9dee5;min-width:42px;width:42px;cursor:pointer;user-select:none}
.qg-tbl td.qg-cell{border:1px solid #d9dee5;padding:0;height:30px;vertical-align:middle;box-sizing:border-box;overflow:hidden;background:#fff;position:relative}
.qg-tbl td.qg-cell .qg-txt{padding:4px 6px;width:100%;height:100%;box-sizing:border-box;white-space:pre-wrap;word-break:break-word;line-height:1.35;outline:none;display:flex;align-items:center;justify-content:inherit}
.qg-tbl td.qg-cell.qg-merged .qg-txt{display:flex;align-items:center;justify-content:inherit}
.qg-tbl td.qg-cell.qg-computed{background:#f3f8ff}
.qg-tbl td.qg-cell.qg-computed .qg-txt{color:#1a5bd6;font-weight:600}
.qg-tbl td.qg-cell.qg-sel{box-shadow:inset 0 0 0 2px #1a5bd6;background:#eaf2ff}
.qg-tb-group .qg-fill-btn{width:24px;height:24px;padding:0;border-radius:4px;margin:2px;cursor:pointer;border:1px solid transparent;vertical-align:middle}
.qg-tb-group .qg-fill-btn:hover{opacity:.85}
.qg-tbl td.qg-cell.qg-sel.qg-computed{background:#e3eeff}
.qg-tbl td.qg-cell.qg-head{background:#2F5496}
.qg-tbl td.qg-cell.qg-head .qg-txt{color:#fff;font-weight:700}
.qg-tbl td.qg-cell.qg-active{box-shadow:inset 0 0 0 2px #1a5bd6}
.qg-tbl td.qg-cell.qg-merged{background:#fafcff}
.qg-tbl td.qg-cell.qg-active::after{
  content:'';
  position:absolute;
  right:2px;bottom:2px;
  width:10px;height:10px;
  background:#1a5bd6;
  border:1px solid #fff;
  box-sizing:border-box;
  z-index:30;
  cursor:crosshair;
  border-radius:2px;
  pointer-events:auto;
}

/* 编辑浮层 */
.qg-editor{position:absolute;z-index:50;border:2px solid #1a5bd6;border-radius:2px;padding:3px 5px;font-size:13px;outline:none;resize:none;box-sizing:border-box;box-shadow:0 2px 8px rgba(0,0,0,.12);background:#fff;overflow:hidden}
.qg-editor:focus{outline:none}

/* 公式栏 */
.qg-formula-bar{display:flex;align-items:center;gap:6px;padding:4px 8px;background:#f7f9fc;border-bottom:1px solid #e3e8ef;font-size:13px}
.qg-formula-bar .qg-fb-ref{display:inline-flex;align-items:center;justify-content:center;min-width:48px;padding:0 6px;height:28px;background:#fff;border:1px solid #d0d8e3;border-radius:4px;font-family:monospace;font-weight:600;color:#1a5bd6;font-size:12px}
.qg-formula-bar .qg-fb-input{flex:1;height:28px;padding:0 8px;border:1px solid #d0d8e3;border-radius:4px;font-size:13px;outline:none;background:#fff;font-family:Consolas,'Courier New',monospace}
.qg-formula-bar .qg-fb-input:focus{border-color:#1a5bd6;box-shadow:0 0 0 2px rgba(26,91,214,.15)}

/* 查找栏 */
.qg-findbar{display:none;align-items:center;gap:6px;padding:6px 10px;background:#fff;border-bottom:1px solid #e3e8ef}
.qg-findbar.open{display:flex}
.qg-findbar input{height:28px;border:1px solid #d0d8e3;border-radius:6px;padding:0 8px;font-size:13px}
.qg-findbar .qg-count{font-size:12px;color:#888}

/* 上下文菜单 */
.qg-ctx{position:fixed;z-index:300;min-width:170px;background:#fff;border:1px solid #d0d8e3;border-radius:8px;box-shadow:0 6px 24px rgba(0,0,0,.18);padding:4px;display:none}
.qg-ctx.open{display:block}

/* 滚动条美化 */
.qg-scroll::-webkit-scrollbar{width:12px;height:12px}
.qg-scroll::-webkit-scrollbar-thumb{background:#c5cedb;border-radius:6px;border:3px solid #fff}
.qg-scroll::-webkit-scrollbar-thumb:hover{background:#aeb9c9}
