.tabbar[data-v-dfc1b906]{display:flex;align-items:stretch;gap:0;padding:0;background:#0d1117;border-bottom:1px solid #30363d;overflow-x:auto;flex:1;min-width:0}.tab[data-v-dfc1b906]{display:flex;align-items:center;gap:6px;padding:0 14px;font-size:13px;color:#8b949e;background:transparent;border:none;border-right:1px solid #21262d;border-radius:0;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none}.tab[data-v-dfc1b906]:last-child{border-right:none}.tab[data-v-dfc1b906]:hover{color:#c9d1d9;background:#21262d}.tab.active[data-v-dfc1b906]{color:#e6edf3;background:#161b22;box-shadow:inset 0 2px #238636,0 1px #0d1117}.t-icon[data-v-dfc1b906]{font-size:14px}.t-close[data-v-dfc1b906]{background:none;border:none;color:#8b949e;cursor:pointer;padding:2px;border-radius:3px;line-height:0;display:flex;align-items:center}.t-close svg[data-v-dfc1b906]{width:12px;height:12px}.t-close[data-v-dfc1b906]:hover{color:#f85149;background:#30363d}.menu[data-v-dfc1b906]{position:fixed;z-index:200;background:#161b22;border:1px solid #30363d;border-radius:6px;padding:4px;min-width:150px;box-shadow:0 8px 24px #00000080}.mi[data-v-dfc1b906]{padding:7px 14px;font-size:13px;color:#c9d1d9;cursor:pointer;border-radius:4px}.mi[data-v-dfc1b906]:hover{background:#238636;color:#fff}.page[data-v-6a9b7dbe]{min-height:100vh;background:#0d1117;color:#e6edf3;font-family:-apple-system,PingFang SC,Microsoft YaHei,sans-serif}.topbar[data-v-6a9b7dbe]{height:44px;display:flex;align-items:stretch;justify-content:space-between;padding:0 8px 0 0;background:#161b22;border-bottom:1px solid #30363d}.brand[data-v-6a9b7dbe]{display:flex;align-items:center;padding:0 10px;cursor:pointer}.brand[data-v-6a9b7dbe]:hover{background:#21262d}.logo[data-v-6a9b7dbe]{background:#238636;color:#fff;padding:2px 7px;border-radius:4px;font-weight:600;font-size:12px;white-space:nowrap}.user[data-v-6a9b7dbe]{display:flex;align-items:center;gap:12px;font-size:13px;color:#8b949e}.logout[data-v-6a9b7dbe]{background:transparent;border:none;color:#8b949e;padding:0 14px;border-radius:0;cursor:pointer;font-size:13px}.logout[data-v-6a9b7dbe]:hover{background:#21262d;color:#f85149}.grid-wrap[data-v-6a9b7dbe]{max-width:1400px;margin:0 auto;padding:24px}.toolbar[data-v-6a9b7dbe]{min-height:24px;margin-bottom:8px}.restore[data-v-6a9b7dbe]{font-size:12px;color:#8b949e;cursor:pointer}.restore[data-v-6a9b7dbe]:hover{color:#58a6ff}.grid[data-v-6a9b7dbe]{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.card[data-v-6a9b7dbe]{position:relative;background:#fff;border:1px solid #d0d7de;border-radius:0;padding:24px;cursor:pointer;transition:border-color .15s,transform .15s,box-shadow .15s}.card[data-v-6a9b7dbe]:hover{border-color:#238636;transform:translateY(-2px);box-shadow:0 6px 18px #0006}.card.dragging[data-v-6a9b7dbe]{opacity:.5;border-style:dashed}.card.custom[data-v-6a9b7dbe]{background:#f6f8fa}.card.add-card[data-v-6a9b7dbe]{background:transparent;border:1px dashed #30363d;color:#8b949e;display:flex;flex-direction:column;align-items:center;justify-content:center}.card.add-card[data-v-6a9b7dbe]:hover{border-color:#238636;color:#c9d1d9}.plus[data-v-6a9b7dbe]{font-size:32px}.ops[data-v-6a9b7dbe]{position:absolute;top:8px;right:8px;display:none;gap:4px}.card:hover .ops[data-v-6a9b7dbe]{display:flex}.op[data-v-6a9b7dbe]{background:#f6f8fa;border:1px solid #d0d7de;border-radius:4px;cursor:pointer;width:26px;height:26px;font-size:13px;line-height:1;color:#57606a}.op.on[data-v-6a9b7dbe]{color:#e3a008;border-color:#e3a008}.op[data-v-6a9b7dbe]:hover{border-color:#238636;color:#1a7f37}.icon[data-v-6a9b7dbe]{font-size:32px;margin-bottom:12px}.name[data-v-6a9b7dbe]{font-size:15px;font-weight:600;margin-bottom:6px;color:#1f2328}.desc[data-v-6a9b7dbe]{font-size:12px;color:#57606a;line-height:1.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-btns[data-v-6a9b7dbe]{display:flex;align-items:stretch}.bar-btn[data-v-6a9b7dbe]{background:transparent;border:none;color:#8b949e;width:36px;border-radius:0;cursor:pointer;display:flex;align-items:center;justify-content:center}.bar-btn svg[data-v-6a9b7dbe]{width:15px;height:15px}.bar-btn[data-v-6a9b7dbe]:hover{background:#21262d;color:#e6edf3}.workbench[data-v-6a9b7dbe]{position:relative;height:calc(100vh - 44px)}.frame[data-v-6a9b7dbe]{width:100%;height:100%;border:none;background:#fff}.frame.hidden[data-v-6a9b7dbe]{display:none}.frame-tools[data-v-6a9b7dbe]{position:absolute;right:16px;bottom:16px;display:flex;align-items:center;gap:8px;background:#161b22eb;border:1px solid #30363d;border-radius:8px;padding:6px 12px;font-size:12px;color:#8b949e}.open-ext[data-v-6a9b7dbe]{background:#238636;border:none;color:#fff;padding:4px 10px;border-radius:6px;cursor:pointer;font-size:12px}.row[data-v-6a9b7dbe]{display:flex;justify-content:space-between;padding:8px 0;font-size:13px;color:#8b949e;border-bottom:1px solid #21262d}.loading[data-v-6a9b7dbe],.error[data-v-6a9b7dbe]{text-align:center;padding:60px 0;color:#8b949e}.error[data-v-6a9b7dbe]{color:#f85149}.mask[data-v-6a9b7dbe]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100}.dialog[data-v-6a9b7dbe]{width:360px;background:#161b22;border:1px solid #30363d;border-radius:8px;padding:24px;color:#e6edf3}.dialog h3[data-v-6a9b7dbe]{margin:0 0 16px;font-size:15px}.dialog input[data-v-6a9b7dbe]{width:100%;box-sizing:border-box;margin:6px 0;padding:10px 12px;background:#0d1117;border:1px solid #30363d;border-radius:6px;color:#e6edf3;font-size:14px}.icons[data-v-6a9b7dbe]{display:flex;gap:6px;margin:10px 0;flex-wrap:wrap}.ic[data-v-6a9b7dbe]{font-size:20px;padding:4px 6px;border:1px solid #30363d;border-radius:6px;cursor:pointer}.ic.sel[data-v-6a9b7dbe]{border-color:#238636;background:#23863626}.btns[data-v-6a9b7dbe]{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}.btns button[data-v-6a9b7dbe]{padding:8px 18px;border-radius:6px;cursor:pointer;border:1px solid #30363d}.cancel[data-v-6a9b7dbe]{background:transparent;color:#c9d1d9}.ok[data-v-6a9b7dbe]{background:#238636;border-color:#238636;color:#fff}.ok[data-v-6a9b7dbe]:hover{background:#2ea043}
