@korso/shepherd-ui 0.5.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12,12 +12,12 @@ const TOOLS = [
12
12
  // The token placeholder shown before a real token is minted. Switching tools or
13
13
  // reading the command pre-mint shows this, never a real secret.
14
14
  const TOKEN_PLACEHOLDER = "shp_<paste-after-generating>";
15
- // The CLI tools differ only in the first line of the `mcp add` invocation; the
16
- // rest of the command (the env flags and the npx tail) is shared.
15
+ // The CLI tools differ only in the `mcp add` invocation; the rest of the
16
+ // command (the env flags and the npx tail) is shared.
17
17
  const CLI_PREFIX = {
18
- claude: "claude mcp add shepherd -s user \\",
19
- codex: "codex mcp add shepherd \\",
20
- pi: "pi mcp add shepherd \\",
18
+ claude: "claude mcp add shepherd -s user",
19
+ codex: "codex mcp add shepherd",
20
+ pi: "pi mcp add shepherd",
21
21
  };
22
22
  // "created 3d ago · never used" / "created 3d ago · last used 2h ago" — helps
23
23
  // an operator tell which tokens are still active before revoking one.
@@ -38,12 +38,15 @@ function installCommand(tool, hubUrl, token) {
38
38
  },
39
39
  }, null, 2);
40
40
  }
41
+ // A single line with no shell-specific continuation character (`\` in
42
+ // bash/zsh, backtick in PowerShell, `^` in cmd) so the command pastes
43
+ // cleanly into any terminal.
41
44
  return [
42
45
  CLI_PREFIX[tool],
43
- ` -e HUB_URL=${hubUrl} \\`,
44
- ` -e SHEPHERD_TOKEN=${token} \\`,
45
- " -- npx -y @korso/shepherd",
46
- ].join("\n");
46
+ `-e HUB_URL=${hubUrl}`,
47
+ `-e SHEPHERD_TOKEN=${token}`,
48
+ "-- npx -y @korso/shepherd",
49
+ ].join(" ");
47
50
  }
48
51
  export function ConnectAgent({ hubUrl }) {
49
52
  const client = useShepherdClient();
@@ -58,7 +58,7 @@ export function Members({ workspaceId, refreshKey = 0, canRemove = false }) {
58
58
  }
59
59
  }
60
60
  return (_jsxs("section", { className: "shepherd-members", "aria-labelledby": headingId, children: [_jsx("div", { className: "card-head", children: _jsx("h3", { id: headingId, children: "Members" }) }), _jsxs("div", { className: "card-body", children: [error && _jsx("p", { role: "alert", children: error }), status && _jsx("p", { role: "status", children: status }), loading ? (_jsx("p", { role: "status", children: "Loading\u2026" })) : members.length === 0 ? (_jsx("p", { children: "No members." })) : (_jsx("ul", { children: members.map((m) => {
61
- const display = m.displayName ?? m.githubLogin ?? m.accountId;
61
+ const display = m.displayName ?? m.githubLogin ?? m.email ?? m.accountId;
62
62
  return (_jsxs("li", { children: [_jsx("span", { children: display }), _jsx("span", { className: "role", children: m.role }), canRemove && (_jsx("button", { type: "button", "aria-label": `Remove ${display}`, onClick: () => void remove(m.accountId, display), disabled: removingId === m.accountId, children: "Remove" }))] }, m.accountId));
63
63
  }) }))] })] }));
64
64
  }
@@ -286,6 +286,7 @@ const et = e.object({
286
286
  accountId: e.string(),
287
287
  displayName: e.string().nullable(),
288
288
  githubLogin: e.string().nullable(),
289
+ email: e.string().nullable(),
289
290
  avatarUrl: e.string().nullable(),
290
291
  role: Ce
291
292
  }), st = e.object({
@@ -245,16 +245,19 @@ declare const ListMembersResponse: z.ZodObject<{
245
245
  accountId: z.ZodString;
246
246
  displayName: z.ZodNullable<z.ZodString>;
247
247
  githubLogin: z.ZodNullable<z.ZodString>;
248
+ email: z.ZodNullable<z.ZodString>;
248
249
  avatarUrl: z.ZodNullable<z.ZodString>;
249
250
  role: z.ZodEnum<["admin", "member"]>;
250
251
  }, "strip", z.ZodTypeAny, {
251
252
  role: "admin" | "member";
253
+ email: string | null;
252
254
  accountId: string;
253
255
  displayName: string | null;
254
256
  githubLogin: string | null;
255
257
  avatarUrl: string | null;
256
258
  }, {
257
259
  role: "admin" | "member";
260
+ email: string | null;
258
261
  accountId: string;
259
262
  displayName: string | null;
260
263
  githubLogin: string | null;
@@ -263,6 +266,7 @@ declare const ListMembersResponse: z.ZodObject<{
263
266
  }, "strip", z.ZodTypeAny, {
264
267
  members: {
265
268
  role: "admin" | "member";
269
+ email: string | null;
266
270
  accountId: string;
267
271
  displayName: string | null;
268
272
  githubLogin: string | null;
@@ -271,6 +275,7 @@ declare const ListMembersResponse: z.ZodObject<{
271
275
  }, {
272
276
  members: {
273
277
  role: "admin" | "member";
278
+ email: string | null;
274
279
  accountId: string;
275
280
  displayName: string | null;
276
281
  githubLogin: string | null;
@@ -369,16 +374,19 @@ declare const MemberSummary: z.ZodObject<{
369
374
  accountId: z.ZodString;
370
375
  displayName: z.ZodNullable<z.ZodString>;
371
376
  githubLogin: z.ZodNullable<z.ZodString>;
377
+ email: z.ZodNullable<z.ZodString>;
372
378
  avatarUrl: z.ZodNullable<z.ZodString>;
373
379
  role: z.ZodEnum<["admin", "member"]>;
374
380
  }, "strip", z.ZodTypeAny, {
375
381
  role: "admin" | "member";
382
+ email: string | null;
376
383
  accountId: string;
377
384
  displayName: string | null;
378
385
  githubLogin: string | null;
379
386
  avatarUrl: string | null;
380
387
  }, {
381
388
  role: "admin" | "member";
389
+ email: string | null;
382
390
  accountId: string;
383
391
  displayName: string | null;
384
392
  githubLogin: string | null;
package/dist/lib/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { u as A, d as I, f as O, D as G } from "./Dashboard-C48qY8R2.js";
2
- import { E as ce, S as de, a as ue, c as he } from "./Dashboard-C48qY8R2.js";
1
+ import { u as A, d as I, f as O, D as G } from "./Dashboard-qipRa5MO.js";
2
+ import { E as ce, S as de, a as ue, c as he } from "./Dashboard-qipRa5MO.js";
3
3
  import { jsxs as n, jsx as e, Fragment as F } from "react/jsx-runtime";
4
4
  import { useId as B, useRef as P, useState as a, useEffect as U, useCallback as K } from "react";
5
5
  function D(i) {
@@ -251,7 +251,7 @@ function V({ workspaceId: i, refreshKey: t = 0, canRemove: d = !1 }) {
251
251
  p && /* @__PURE__ */ e("p", { role: "alert", children: p }),
252
252
  y && /* @__PURE__ */ e("p", { role: "status", children: y }),
253
253
  w ? /* @__PURE__ */ e("p", { role: "status", children: "Loading…" }) : h.length === 0 ? /* @__PURE__ */ e("p", { children: "No members." }) : /* @__PURE__ */ e("ul", { children: h.map((r) => {
254
- const k = r.displayName ?? r.githubLogin ?? r.accountId;
254
+ const k = r.displayName ?? r.githubLogin ?? r.email ?? r.accountId;
255
255
  return /* @__PURE__ */ n("li", { children: [
256
256
  /* @__PURE__ */ e("span", { children: k }),
257
257
  /* @__PURE__ */ e("span", { className: "role", children: r.role }),
@@ -397,9 +397,9 @@ const q = [
397
397
  { id: "pi", label: "Pi" },
398
398
  { id: "generic", label: "Generic (JSON)" }
399
399
  ], z = "shp_<paste-after-generating>", Q = {
400
- claude: "claude mcp add shepherd -s user \\",
401
- codex: "codex mcp add shepherd \\",
402
- pi: "pi mcp add shepherd \\"
400
+ claude: "claude mcp add shepherd -s user",
401
+ codex: "codex mcp add shepherd",
402
+ pi: "pi mcp add shepherd"
403
403
  };
404
404
  function Z(i, t) {
405
405
  const d = `created ${O(i.createdAt, t)}`, v = i.lastUsedAt ? `last used ${O(i.lastUsedAt, t)}` : "never used";
@@ -420,11 +420,10 @@ function M(i, t, d) {
420
420
  2
421
421
  ) : [
422
422
  Q[i],
423
- ` -e HUB_URL=${t} \\`,
424
- ` -e SHEPHERD_TOKEN=${d} \\`,
425
- " -- npx -y @korso/shepherd"
426
- ].join(`
427
- `);
423
+ `-e HUB_URL=${t}`,
424
+ `-e SHEPHERD_TOKEN=${d}`,
425
+ "-- npx -y @korso/shepherd"
426
+ ].join(" ");
428
427
  }
429
428
  function ee({ hubUrl: i }) {
430
429
  const t = A(), d = i ?? t.baseUrl, v = B(), [o, h] = a("claude"), [m, p] = a(""), [l, y] = a(null), [b, w] = a([]), [g, N] = a(null), [u, C] = a(null), [E, r] = a(!1), [k, _] = a(!1), [S, x] = a(!0), [L, f] = a(null);
@@ -1,6 +1,6 @@
1
1
  import { jsx as e, jsxs as l } from "react/jsx-runtime";
2
2
  import { useState as s, useMemo as h } from "react";
3
- import { c as d, a as m, D as u } from "./Dashboard-C48qY8R2.js";
3
+ import { c as d, a as m, D as u } from "./Dashboard-qipRa5MO.js";
4
4
  const i = "shepherd.token";
5
5
  function p() {
6
6
  try {
@@ -264,9 +264,10 @@
264
264
  /* No-workspace Config prompt (create/join now live in the switcher). */
265
265
  .config-none { color:var(--ink2); font-size:13.5px; max-width:520px; }
266
266
 
267
- /* Read-only workspace facts (name / role) in General. */
268
- .shepherd-config .readonly-value { margin:0; font-size:14px; color:var(--ink);
269
- padding:9px 12px; border-radius:8px; border:1px solid var(--line2); background:var(--bg); }
267
+ /* Read-only workspace facts (name / role) in General. Deliberately plain
268
+ text no border/background so they don't read as editable inputs. */
269
+ .shepherd-config .readonly-value { margin:0; font-size:15px; color:var(--ink);
270
+ padding:1px 0; font-weight:500; }
270
271
  .shepherd-general .leave { padding-top:4px; }
271
272
  .shepherd-config button.danger { border-color:var(--drop); background:transparent; color:var(--drop);
272
273
  align-self:flex-start; }
package/dist/preview.js CHANGED
@@ -19,9 +19,9 @@ const EMPTY_LANDSCAPE = {
19
19
  };
20
20
  const EMPTY_ANNOUNCE = { ok: true, announcementIds: [] };
21
21
  let members = [
22
- { accountId: "acc_admin", displayName: "Korso Admin", githubLogin: "korso-admin", avatarUrl: null, role: "admin" },
23
- { accountId: "acc_1", displayName: "Alex Rivera", githubLogin: "arivera", avatarUrl: null, role: "member" },
24
- { accountId: "acc_2", displayName: "Sam Okafor", githubLogin: "sokafor", avatarUrl: null, role: "member" },
22
+ { accountId: "acc_admin", displayName: "Korso Admin", githubLogin: "korso-admin", email: null, avatarUrl: null, role: "admin" },
23
+ { accountId: "acc_1", displayName: "Alex Rivera", githubLogin: "arivera", email: null, avatarUrl: null, role: "member" },
24
+ { accountId: "acc_2", displayName: "Sam Okafor", githubLogin: "sokafor", email: null, avatarUrl: null, role: "member" },
25
25
  ];
26
26
  let tokens = [
27
27
  {
@@ -1 +1 @@
1
- :root{--bg:#ece0c6;--ink:#322c20;--ink2:#6f6450;--ink3:#9c917a;--line:#d7c9ac;--line2:#e0d4b9;--live:#3d8b58;--drop:#bd4f3a;--chip:#e3d6ba;--terr:#7a6a48;--card:#f5ecd9}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased}.wrap{max-width:1100px;margin:0 auto;padding:40px 44px}header{display:flex;align-items:center;gap:12px;padding-bottom:18px}.brand{font-size:17px;font-weight:600}.vitals{color:var(--ink3);font-size:12.5px}.grow{flex:1}.status{font-size:12px;color:var(--ink3)}.status--ok{color:var(--live)}.status--warn{color:var(--terr)}.status--error{color:var(--drop)}.freshness{font-size:12px;color:var(--ink3)}.repo{position:relative}.repo-trig{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-family:inherit;color:var(--ink);-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);border-radius:8px;padding:4px 10px;background:#fffaee66;cursor:pointer}.repo-trig .slash{color:var(--ink3)}.repo-menu{position:absolute;top:36px;left:0;min-width:200px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:5px;box-shadow:0 8px 24px #32281424;z-index:5}.repo-mi{display:flex;justify-content:space-between;gap:14px;padding:7px 9px;width:100%;text-align:left;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:inherit;color:inherit;background:transparent;border-radius:7px;font-size:13px;cursor:pointer}.repo-mi:hover{background:var(--chip)}.repo-mi.on{background:var(--chip);font-weight:600}.repo-mi .ct{font-size:11px;color:var(--ink3)}.repo-mi.all{border-top:1px solid var(--line2);margin-top:4px;padding-top:9px;color:var(--ink2)}.tabs{display:flex;gap:4px;margin-left:auto}.tab{font-size:13px;color:var(--ink2);padding:5px 11px;border:0;border-radius:7px;background:transparent;cursor:pointer;font:inherit}.tab--active{background:var(--ink);color:var(--bg)}.ws-switcher{position:relative}.ws-trig{display:inline-flex;align-items:center;gap:8px;font:inherit;font-size:13px;font-weight:600;color:var(--ink);cursor:pointer;border:1px solid var(--line);border-radius:9px;padding:5px 10px;background:var(--card)}.ws-trig:hover{border-color:var(--ink3)}.ws-trig--empty{background:transparent;border-style:dashed;border-color:var(--ink2)}.ws-avatar{width:18px;height:18px;border-radius:6px;background:var(--ink);color:var(--bg);display:grid;place-items:center;font-size:10px;font-weight:700;flex:none}.ws-avatar--sm{width:16px;height:16px;font-size:9px}.ws-plus{color:var(--ink2);font-weight:700}.ws-name{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-caret{color:var(--ink3);font-size:10px}.ws-menu{position:absolute;top:40px;left:0;width:240px;z-index:20;background:var(--card);border:1px solid var(--line);border-radius:11px;padding:6px;box-shadow:0 8px 24px #32281429}.ws-menu__head{margin:0;padding:6px 8px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3)}.ws-menu__none{margin:0;padding:2px 8px 6px;color:var(--ink3);font-style:italic;font-size:13px}.ws-menu__list{list-style:none;margin:0;padding:0}.ws-mi{display:flex;align-items:center;gap:8px;width:100%;text-align:left;font:inherit;font-size:13px;color:var(--ink);background:transparent;border:0;border-radius:7px;padding:7px 8px;cursor:pointer}.ws-mi:hover{background:var(--chip)}.ws-mi--on{font-weight:600}.ws-mi__name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-mi__check{color:var(--live)}.ws-menu__actions{display:flex;flex-direction:column;margin-top:5px;padding-top:5px;border-top:1px solid var(--line2)}.ws-action{display:flex;align-items:center;gap:8px;width:100%;text-align:left;font:inherit;font-size:13px;color:var(--ink2);background:transparent;border:0;border-radius:7px;padding:8px;cursor:pointer}.ws-action:hover{background:var(--chip);color:var(--ink)}.ws-form{display:flex;flex-direction:column;gap:8px;padding:4px}.ws-form label{font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink3)}.ws-form input{padding:8px 10px;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:inherit}.ws-form input:focus{outline:none;border-color:var(--terr);box-shadow:0 0 0 3px #7a6a4824}.ws-form__row{display:flex;gap:8px;justify-content:flex-end}.ws-form__row button{font:inherit;font-size:13px;font-weight:600;border-radius:8px;padding:7px 14px;cursor:pointer;border:1px solid var(--ink);background:var(--ink);color:var(--bg)}.ws-form__row button:disabled{opacity:.55;cursor:default}.ws-form__back{background:transparent!important;color:var(--ink2)!important;border-color:var(--line)!important}.ws-menu__error{margin:6px 4px 2px;font-size:12.5px;color:var(--drop)}.crew{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:26px 0 32px}.person{display:inline-flex;align-items:center;gap:9px;padding:5px 13px 5px 5px;border:1px solid var(--line);border-radius:999px;background:var(--card);font-size:13px}.person--idle{opacity:.55}.avatar{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:700;color:#fff;flex:none}.person__name{font-weight:600}.person__doing{color:var(--ink3);font-size:12px}.board{display:grid;grid-template-columns:1fr 1px 1fr;gap:0}.board__rule{background:var(--line)}.col{padding:0 36px}.col:first-child{padding-left:0}.col:last-child{padding-right:0}.colhead{display:flex;align-items:center;gap:8px;margin-bottom:6px}.colhead h2{font-size:12px;font-weight:600;letter-spacing:.03em;margin:0;text-transform:uppercase;color:var(--ink2)}.colhead .n{font-size:11px;color:var(--ink3);background:var(--chip);border-radius:999px;padding:1px 8px}.task{padding:16px 0;border-bottom:1px solid var(--line2)}.task__r1{display:flex;align-items:center;gap:8px}.task__who{font-size:13.5px;font-weight:600}.task__tag{font-size:11px;color:var(--ink3)}.task__repo{font-size:11px;color:var(--terr);background:#7a6a481a;border-radius:4px;padding:0 6px}.task__stat{margin-left:auto;font-size:11px;font-weight:500;color:var(--ink3)}.task__stat--drop{color:var(--drop)}.livedot{width:7px;height:7px;border-radius:50%;background:var(--live);margin-left:auto}.task__intent{font-size:13.5px;margin:5px 0 0;line-height:1.45}.terr{margin-top:8px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.terr__lbl{font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink3)}.glob{font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--terr);background:#7a6a481f;border:1px solid rgba(122,106,72,.22);border-radius:5px;padding:1px 7px}.task__meta{font-size:11.5px;color:var(--ink3);margin-top:6px}.terrx{margin-top:8px}.terrx summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:6px;flex-wrap:wrap;-webkit-user-select:none;user-select:none}.terrx summary::-webkit-details-marker{display:none}.terrx .terr--full{margin-top:8px}.glob--more{cursor:pointer;color:var(--ink2);background:var(--chip);border:1px solid var(--line)}.glob--more .tw{color:var(--ink3);display:inline-block;transition:transform .15s}.terrx[open] summary .glob--more .tw{transform:rotate(90deg)}.grp{padding:16px 0;border-bottom:1px solid var(--line2)}.grp__head{display:flex;align-items:center;gap:8px}.grp__who{font-size:13.5px;font-weight:600}.grp__tag,.grp__count{font-size:11px;color:var(--ink3)}.grp__dot{width:7px;height:7px;border-radius:50%;background:var(--live);margin-left:auto}.claims{margin:10px 0 0 6px;padding-left:14px;border-left:1px solid var(--line)}.claim{padding:6px 0}.claim+.claim{border-top:1px solid var(--line2);margin-top:6px}.fold{margin-top:10px}.fold summary{list-style:none;cursor:pointer;font-size:12px;color:var(--ink2);display:inline-flex;align-items:center;gap:6px;-webkit-user-select:none;user-select:none}.fold summary::-webkit-details-marker{display:none}.fold summary .tw{display:inline-block;color:var(--ink3);transition:transform .15s}.fold[open] summary .tw{transform:rotate(90deg)}.fold__body{margin:8px 0 0 6px;padding-left:14px;border-left:1px dashed var(--line)}.covered{font-size:10.5px;color:var(--ink3);font-style:italic;margin-top:4px}.day{font-size:11px;color:var(--ink3);padding:18px 0 2px;font-weight:600}.more{margin-top:20px;font-size:12.5px;color:var(--ink2);padding:7px 13px;border:1px solid var(--line);border-radius:8px;background:#fffaee59;cursor:pointer}.empty{color:var(--ink3);font-style:italic;padding:14px 0}.chat-wrap{background:var(--card);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;overflow:hidden;height:calc(100vh - 150px);min-height:320px}.chat{flex:1;overflow-y:auto;padding:16px}.chat{scrollbar-width:thin;scrollbar-color:var(--line) transparent}.chat::-webkit-scrollbar{width:10px}.chat::-webkit-scrollbar-track{background:transparent}.chat::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px;border:3px solid var(--card);background-clip:padding-box}.chat::-webkit-scrollbar-thumb:hover{background:var(--ink3);background-clip:padding-box}.chat__note{padding:9px 16px;font-size:11.5px;color:var(--ink3)}.msg{display:flex;gap:11px;padding:9px 0}.msg__avatar{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;color:#fff}.msg__body{min-width:0;flex:1}.msg__head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.msg__who{font-weight:600}.msg__human{font-size:12px;color:var(--ink3)}.msg__to{font-size:11.5px;color:var(--terr)}.msg__time{font-size:11.5px;color:var(--ink3);margin-left:auto}.msg__text{margin-top:3px;padding:8px 12px;border-radius:4px 12px 12px;background:var(--chip);white-space:pre-wrap;word-break:break-word}.msg--targeted .msg__text{box-shadow:inset 3px 0 0 var(--terr)}.msg--me,.msg--me .msg__head{flex-direction:row-reverse}.msg--me .msg__time{margin-left:0;margin-right:auto}.msg--me .msg__body{display:flex;flex-direction:column;align-items:flex-end}.msg--me .msg__text{border-radius:12px 4px 12px 12px;background:#d4e7d2}.msg--me.msg--targeted .msg__text{box-shadow:inset -3px 0 0 var(--terr)}.composer{position:relative;border-top:1px solid var(--line);padding:10px 12px}.chat-form{display:flex;gap:8px}.chat-input{flex:1;padding:9px 12px;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:inherit}.chat-input:focus{outline:none;border-color:var(--terr)}.chat-send{padding:9px 16px;border-radius:8px;border:1px solid var(--ink);background:var(--ink);color:var(--bg);font-weight:600;cursor:pointer;font:inherit}.chat-send:disabled{opacity:.5;cursor:default}.mention-pop{position:absolute;left:12px;right:12px;bottom:56px;z-index:6;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:5px;box-shadow:0 8px 24px #32281429;max-height:200px;overflow-y:auto}.mention-mi{display:flex;align-items:center;gap:9px;width:100%;text-align:left;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:inherit;color:inherit;background:transparent;border-radius:7px;padding:6px 8px;font-size:13px;cursor:pointer}.mention-mi:hover,.mention-mi.on{background:var(--chip)}.mention-mi .ma{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:9px;font-weight:700;color:#fff;flex:none}.gate{max-width:420px;margin:12vh auto 0;text-align:center}.gate h1{font-size:19px;margin:0 0 6px}.gate p{color:var(--ink2);margin:0 0 20px}.gate form{display:flex;gap:8px}.gate input{flex:1;padding:10px 12px;border-radius:8px;border:1px solid var(--line);background:var(--card);color:var(--ink)}.gate button{padding:10px 16px;border-radius:8px;border:1px solid var(--ink);background:var(--ink);color:var(--bg);font-weight:600;cursor:pointer}.shepherd-root{max-width:1100px;margin:0 auto;padding:40px 44px}.shepherd-root>main{padding-top:18px}.shepherd-config{display:flex;flex-direction:column}.shepherd-config h2{font-size:16px;margin:0 0 22px}.config-layout{display:flex;gap:32px;align-items:flex-start}.config-nav{flex:none;width:170px;display:flex;flex-direction:column;gap:2px;position:sticky;top:0}.shepherd-config .config-nav__item{text-align:left;font:inherit;font-size:13.5px;color:var(--ink2);background:transparent;border:0;border-radius:8px;padding:8px 12px;cursor:pointer;box-shadow:inset 2px 0 0 transparent;transition:color .12s ease,background .12s ease}.shepherd-config .config-nav .config-nav__item:hover{color:var(--ink);background:#322c200f}.shepherd-config .config-nav__item--on{color:var(--ink);font-weight:600;box-shadow:inset 2px 0 0 var(--ink)}.shepherd-config .config-nav .config-nav__item--on:hover{background:transparent}.config-panel{flex:1;min-width:0}.config-panel>section+section{margin-top:26px;padding-top:26px;border-top:1px solid var(--line2)}.config-none{color:var(--ink2);font-size:13.5px;max-width:520px}.shepherd-config .readonly-value{margin:0;font-size:14px;color:var(--ink);padding:9px 12px;border-radius:8px;border:1px solid var(--line2);background:var(--bg)}.shepherd-general .leave{padding-top:4px}.shepherd-config button.danger{border-color:var(--drop);background:transparent;color:var(--drop);align-self:flex-start}.shepherd-config button.danger:hover:not(:disabled){background:var(--drop);color:var(--bg)}.shepherd-config .card-head h3{font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink2);margin:0}.shepherd-config .card-sub{margin:4px 0 0;font-size:12.5px;color:var(--ink3)}.shepherd-config .card-head{margin-bottom:16px}.shepherd-config .card-body{display:flex;flex-direction:column;gap:16px}.shepherd-config .card-body>[role=alert]{margin:0;color:var(--drop);font-size:13px}.shepherd-config .card-body>[role=status]{margin:0;color:var(--ink2);font-size:13px}.shepherd-config .field{display:flex;flex-direction:column;gap:8px}.shepherd-config .card-body label{font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink3)}.shepherd-config .helper{margin:0;font-size:12.5px;color:var(--ink2)}.shepherd-config .field>select{width:100%}.shepherd-config select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%239c917a' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 28px center;padding-right:44px}.shepherd-config .field__row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.shepherd-config .field__row>input{flex:1;min-width:200px}.shepherd-invites .invites{gap:12px}.shepherd-invites .invites>button{align-self:flex-start}.shepherd-config input,.shepherd-config select{padding:9px 12px;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:inherit;transition:border-color .12s ease,box-shadow .12s ease}.shepherd-config input::placeholder{color:var(--ink3)}.shepherd-config input:focus,.shepherd-config select:focus{outline:none;border-color:var(--terr);box-shadow:0 0 0 3px #7a6a4824}.shepherd-config button{padding:9px 16px;border-radius:8px;border:1px solid var(--ink);background:var(--ink);color:var(--bg);font-weight:600;cursor:pointer;font:inherit;white-space:nowrap;transition:background .12s ease}.shepherd-config button:hover:not(:disabled){background:#413a2a}.shepherd-config button:disabled{opacity:.55;cursor:default}.shepherd-config ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.shepherd-config li{display:flex;align-items:center;gap:10px;padding:10px 0;font-size:13px}.shepherd-config li+li{border-top:1px solid var(--line2)}.shepherd-config li>span:first-child{flex:1;min-width:0;font-weight:500}.shepherd-config li button{padding:5px 12px}.shepherd-config .role,.shepherd-config .token-meta{color:var(--ink3);font-size:12px}.shepherd-config .email-invite__status{margin:0;font-size:12.5px;color:var(--ink2)}.shepherd-connect-agent .install-command{position:relative}.shepherd-connect-agent pre{margin:0;padding:12px 14px;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.5;overflow-x:auto;white-space:pre-wrap;word-break:break-word}.shepherd-config .shepherd-connect-agent .install-command__copy{position:absolute;top:7px;right:7px;display:grid;place-items:center;width:28px;height:28px;padding:0;border-radius:7px;border:0;background:transparent;color:var(--ink3);cursor:pointer;transition:background .12s ease,color .12s ease}.shepherd-config .shepherd-connect-agent .install-command__copy:hover{background:#322c2014;color:var(--ink)}.shepherd-connect-agent h4{margin:6px 0 0;font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink3)}.shepherd-connect-agent .token-once{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;padding:10px 12px;border-radius:8px;background:var(--chip);border:1px solid var(--line2)}.shepherd-config .invite-result{align-self:stretch;display:flex;flex-direction:column;gap:12px;padding:14px 16px;border-radius:10px;background:var(--card);border:1px solid var(--line)}.shepherd-config .invite-result__head{display:flex;align-items:center;gap:12px}.shepherd-config .invite-result__eyebrow{flex:1;font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink3)}.shepherd-config .invite-uses{font-size:12px;color:var(--ink3)}.shepherd-config .invite-result__copyrow{display:flex;align-items:center;gap:10px}.shepherd-config .invite-result__copyrow>code{flex:1;min-width:0;font-size:15px;font-weight:600;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--ink);letter-spacing:.02em;word-break:break-all}.shepherd-config .invite-result__copyrow--link{padding-top:10px;border-top:1px solid var(--line2)}.shepherd-config .invite-result__copyrow--link a{flex:1;min-width:0;font-size:12px;color:var(--ink2);word-break:break-all}.shepherd-config .invite-result .copy-btn{flex:none;padding:5px 12px;font-size:12px;font-weight:600;border-radius:7px;border:1px solid var(--line);background:var(--bg);color:var(--ink2);cursor:pointer}.shepherd-config .invite-result .copy-btn:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}.shepherd-config .invite-result .link-btn{flex:none;padding:0;font-size:12px;font-weight:600;border:0;background:transparent;color:var(--drop);cursor:pointer}.shepherd-config .invite-result .link-btn:hover{background:transparent;text-decoration:underline}.shepherd-config .revoked{color:var(--ink3);text-decoration:line-through}.shepherd-empty-state{text-align:center;color:var(--ink2);padding:48px 24px}.shepherd-empty-state button{margin-top:14px}.shepherd-feedback{position:fixed;right:20px;bottom:20px;z-index:10}.shepherd-feedback__trigger{padding:9px 16px;border-radius:999px;border:1px solid var(--ink);background:var(--ink);color:var(--bg);font-weight:600;font-size:13px;font:inherit;cursor:pointer;box-shadow:0 8px 24px #3228142e}.shepherd-feedback__trigger:hover{background:#413a2a}.shepherd-feedback__panel{position:absolute;right:0;bottom:calc(100% + 10px);width:280px;display:flex;flex-direction:column;gap:10px;padding:16px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 24px #3228142e}.shepherd-feedback__panel h3{margin:0;font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink2)}.shepherd-feedback__panel [role=status]{margin:0;font-size:13px;color:var(--ink2)}.shepherd-feedback__panel [role=alert]{margin:0;font-size:13px;color:var(--drop)}.shepherd-feedback__types{display:flex;gap:6px}.shepherd-feedback__types button{flex:1;padding:6px 0;border-radius:8px;border:1px solid var(--line);background:transparent;color:var(--ink2);font-size:12.5px;font:inherit;cursor:pointer;transition:background .12s ease,color .12s ease}.shepherd-feedback__types button[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink);font-weight:600}.shepherd-feedback__panel textarea{min-height:80px;padding:9px 12px;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:inherit;resize:vertical}.shepherd-feedback__panel textarea::placeholder{color:var(--ink3)}.shepherd-feedback__panel textarea:focus{outline:none;border-color:var(--terr);box-shadow:0 0 0 3px #7a6a4824}.shepherd-feedback__panel>button{padding:9px 16px;border-radius:8px;border:1px solid var(--ink);background:var(--ink);color:var(--bg);font-weight:600;cursor:pointer;font:inherit}.shepherd-feedback__panel>button:hover:not(:disabled){background:#413a2a}.shepherd-feedback__panel>button:disabled{opacity:.55;cursor:default}
1
+ :root{--bg:#ece0c6;--ink:#322c20;--ink2:#6f6450;--ink3:#9c917a;--line:#d7c9ac;--line2:#e0d4b9;--live:#3d8b58;--drop:#bd4f3a;--chip:#e3d6ba;--terr:#7a6a48;--card:#f5ecd9}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased}.wrap{max-width:1100px;margin:0 auto;padding:40px 44px}header{display:flex;align-items:center;gap:12px;padding-bottom:18px}.brand{font-size:17px;font-weight:600}.vitals{color:var(--ink3);font-size:12.5px}.grow{flex:1}.status{font-size:12px;color:var(--ink3)}.status--ok{color:var(--live)}.status--warn{color:var(--terr)}.status--error{color:var(--drop)}.freshness{font-size:12px;color:var(--ink3)}.repo{position:relative}.repo-trig{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-family:inherit;color:var(--ink);-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);border-radius:8px;padding:4px 10px;background:#fffaee66;cursor:pointer}.repo-trig .slash{color:var(--ink3)}.repo-menu{position:absolute;top:36px;left:0;min-width:200px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:5px;box-shadow:0 8px 24px #32281424;z-index:5}.repo-mi{display:flex;justify-content:space-between;gap:14px;padding:7px 9px;width:100%;text-align:left;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:inherit;color:inherit;background:transparent;border-radius:7px;font-size:13px;cursor:pointer}.repo-mi:hover{background:var(--chip)}.repo-mi.on{background:var(--chip);font-weight:600}.repo-mi .ct{font-size:11px;color:var(--ink3)}.repo-mi.all{border-top:1px solid var(--line2);margin-top:4px;padding-top:9px;color:var(--ink2)}.tabs{display:flex;gap:4px;margin-left:auto}.tab{font-size:13px;color:var(--ink2);padding:5px 11px;border:0;border-radius:7px;background:transparent;cursor:pointer;font:inherit}.tab--active{background:var(--ink);color:var(--bg)}.ws-switcher{position:relative}.ws-trig{display:inline-flex;align-items:center;gap:8px;font:inherit;font-size:13px;font-weight:600;color:var(--ink);cursor:pointer;border:1px solid var(--line);border-radius:9px;padding:5px 10px;background:var(--card)}.ws-trig:hover{border-color:var(--ink3)}.ws-trig--empty{background:transparent;border-style:dashed;border-color:var(--ink2)}.ws-avatar{width:18px;height:18px;border-radius:6px;background:var(--ink);color:var(--bg);display:grid;place-items:center;font-size:10px;font-weight:700;flex:none}.ws-avatar--sm{width:16px;height:16px;font-size:9px}.ws-plus{color:var(--ink2);font-weight:700}.ws-name{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-caret{color:var(--ink3);font-size:10px}.ws-menu{position:absolute;top:40px;left:0;width:240px;z-index:20;background:var(--card);border:1px solid var(--line);border-radius:11px;padding:6px;box-shadow:0 8px 24px #32281429}.ws-menu__head{margin:0;padding:6px 8px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3)}.ws-menu__none{margin:0;padding:2px 8px 6px;color:var(--ink3);font-style:italic;font-size:13px}.ws-menu__list{list-style:none;margin:0;padding:0}.ws-mi{display:flex;align-items:center;gap:8px;width:100%;text-align:left;font:inherit;font-size:13px;color:var(--ink);background:transparent;border:0;border-radius:7px;padding:7px 8px;cursor:pointer}.ws-mi:hover{background:var(--chip)}.ws-mi--on{font-weight:600}.ws-mi__name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-mi__check{color:var(--live)}.ws-menu__actions{display:flex;flex-direction:column;margin-top:5px;padding-top:5px;border-top:1px solid var(--line2)}.ws-action{display:flex;align-items:center;gap:8px;width:100%;text-align:left;font:inherit;font-size:13px;color:var(--ink2);background:transparent;border:0;border-radius:7px;padding:8px;cursor:pointer}.ws-action:hover{background:var(--chip);color:var(--ink)}.ws-form{display:flex;flex-direction:column;gap:8px;padding:4px}.ws-form label{font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink3)}.ws-form input{padding:8px 10px;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:inherit}.ws-form input:focus{outline:none;border-color:var(--terr);box-shadow:0 0 0 3px #7a6a4824}.ws-form__row{display:flex;gap:8px;justify-content:flex-end}.ws-form__row button{font:inherit;font-size:13px;font-weight:600;border-radius:8px;padding:7px 14px;cursor:pointer;border:1px solid var(--ink);background:var(--ink);color:var(--bg)}.ws-form__row button:disabled{opacity:.55;cursor:default}.ws-form__back{background:transparent!important;color:var(--ink2)!important;border-color:var(--line)!important}.ws-menu__error{margin:6px 4px 2px;font-size:12.5px;color:var(--drop)}.crew{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:26px 0 32px}.person{display:inline-flex;align-items:center;gap:9px;padding:5px 13px 5px 5px;border:1px solid var(--line);border-radius:999px;background:var(--card);font-size:13px}.person--idle{opacity:.55}.avatar{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:700;color:#fff;flex:none}.person__name{font-weight:600}.person__doing{color:var(--ink3);font-size:12px}.board{display:grid;grid-template-columns:1fr 1px 1fr;gap:0}.board__rule{background:var(--line)}.col{padding:0 36px}.col:first-child{padding-left:0}.col:last-child{padding-right:0}.colhead{display:flex;align-items:center;gap:8px;margin-bottom:6px}.colhead h2{font-size:12px;font-weight:600;letter-spacing:.03em;margin:0;text-transform:uppercase;color:var(--ink2)}.colhead .n{font-size:11px;color:var(--ink3);background:var(--chip);border-radius:999px;padding:1px 8px}.task{padding:16px 0;border-bottom:1px solid var(--line2)}.task__r1{display:flex;align-items:center;gap:8px}.task__who{font-size:13.5px;font-weight:600}.task__tag{font-size:11px;color:var(--ink3)}.task__repo{font-size:11px;color:var(--terr);background:#7a6a481a;border-radius:4px;padding:0 6px}.task__stat{margin-left:auto;font-size:11px;font-weight:500;color:var(--ink3)}.task__stat--drop{color:var(--drop)}.livedot{width:7px;height:7px;border-radius:50%;background:var(--live);margin-left:auto}.task__intent{font-size:13.5px;margin:5px 0 0;line-height:1.45}.terr{margin-top:8px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.terr__lbl{font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink3)}.glob{font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--terr);background:#7a6a481f;border:1px solid rgba(122,106,72,.22);border-radius:5px;padding:1px 7px}.task__meta{font-size:11.5px;color:var(--ink3);margin-top:6px}.terrx{margin-top:8px}.terrx summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:6px;flex-wrap:wrap;-webkit-user-select:none;user-select:none}.terrx summary::-webkit-details-marker{display:none}.terrx .terr--full{margin-top:8px}.glob--more{cursor:pointer;color:var(--ink2);background:var(--chip);border:1px solid var(--line)}.glob--more .tw{color:var(--ink3);display:inline-block;transition:transform .15s}.terrx[open] summary .glob--more .tw{transform:rotate(90deg)}.grp{padding:16px 0;border-bottom:1px solid var(--line2)}.grp__head{display:flex;align-items:center;gap:8px}.grp__who{font-size:13.5px;font-weight:600}.grp__tag,.grp__count{font-size:11px;color:var(--ink3)}.grp__dot{width:7px;height:7px;border-radius:50%;background:var(--live);margin-left:auto}.claims{margin:10px 0 0 6px;padding-left:14px;border-left:1px solid var(--line)}.claim{padding:6px 0}.claim+.claim{border-top:1px solid var(--line2);margin-top:6px}.fold{margin-top:10px}.fold summary{list-style:none;cursor:pointer;font-size:12px;color:var(--ink2);display:inline-flex;align-items:center;gap:6px;-webkit-user-select:none;user-select:none}.fold summary::-webkit-details-marker{display:none}.fold summary .tw{display:inline-block;color:var(--ink3);transition:transform .15s}.fold[open] summary .tw{transform:rotate(90deg)}.fold__body{margin:8px 0 0 6px;padding-left:14px;border-left:1px dashed var(--line)}.covered{font-size:10.5px;color:var(--ink3);font-style:italic;margin-top:4px}.day{font-size:11px;color:var(--ink3);padding:18px 0 2px;font-weight:600}.more{margin-top:20px;font-size:12.5px;color:var(--ink2);padding:7px 13px;border:1px solid var(--line);border-radius:8px;background:#fffaee59;cursor:pointer}.empty{color:var(--ink3);font-style:italic;padding:14px 0}.chat-wrap{background:var(--card);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;overflow:hidden;height:calc(100vh - 150px);min-height:320px}.chat{flex:1;overflow-y:auto;padding:16px}.chat{scrollbar-width:thin;scrollbar-color:var(--line) transparent}.chat::-webkit-scrollbar{width:10px}.chat::-webkit-scrollbar-track{background:transparent}.chat::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px;border:3px solid var(--card);background-clip:padding-box}.chat::-webkit-scrollbar-thumb:hover{background:var(--ink3);background-clip:padding-box}.chat__note{padding:9px 16px;font-size:11.5px;color:var(--ink3)}.msg{display:flex;gap:11px;padding:9px 0}.msg__avatar{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;color:#fff}.msg__body{min-width:0;flex:1}.msg__head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.msg__who{font-weight:600}.msg__human{font-size:12px;color:var(--ink3)}.msg__to{font-size:11.5px;color:var(--terr)}.msg__time{font-size:11.5px;color:var(--ink3);margin-left:auto}.msg__text{margin-top:3px;padding:8px 12px;border-radius:4px 12px 12px;background:var(--chip);white-space:pre-wrap;word-break:break-word}.msg--targeted .msg__text{box-shadow:inset 3px 0 0 var(--terr)}.msg--me,.msg--me .msg__head{flex-direction:row-reverse}.msg--me .msg__time{margin-left:0;margin-right:auto}.msg--me .msg__body{display:flex;flex-direction:column;align-items:flex-end}.msg--me .msg__text{border-radius:12px 4px 12px 12px;background:#d4e7d2}.msg--me.msg--targeted .msg__text{box-shadow:inset -3px 0 0 var(--terr)}.composer{position:relative;border-top:1px solid var(--line);padding:10px 12px}.chat-form{display:flex;gap:8px}.chat-input{flex:1;padding:9px 12px;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:inherit}.chat-input:focus{outline:none;border-color:var(--terr)}.chat-send{padding:9px 16px;border-radius:8px;border:1px solid var(--ink);background:var(--ink);color:var(--bg);font-weight:600;cursor:pointer;font:inherit}.chat-send:disabled{opacity:.5;cursor:default}.mention-pop{position:absolute;left:12px;right:12px;bottom:56px;z-index:6;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:5px;box-shadow:0 8px 24px #32281429;max-height:200px;overflow-y:auto}.mention-mi{display:flex;align-items:center;gap:9px;width:100%;text-align:left;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:inherit;color:inherit;background:transparent;border-radius:7px;padding:6px 8px;font-size:13px;cursor:pointer}.mention-mi:hover,.mention-mi.on{background:var(--chip)}.mention-mi .ma{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:9px;font-weight:700;color:#fff;flex:none}.gate{max-width:420px;margin:12vh auto 0;text-align:center}.gate h1{font-size:19px;margin:0 0 6px}.gate p{color:var(--ink2);margin:0 0 20px}.gate form{display:flex;gap:8px}.gate input{flex:1;padding:10px 12px;border-radius:8px;border:1px solid var(--line);background:var(--card);color:var(--ink)}.gate button{padding:10px 16px;border-radius:8px;border:1px solid var(--ink);background:var(--ink);color:var(--bg);font-weight:600;cursor:pointer}.shepherd-root{max-width:1100px;margin:0 auto;padding:40px 44px}.shepherd-root>main{padding-top:18px}.shepherd-config{display:flex;flex-direction:column}.shepherd-config h2{font-size:16px;margin:0 0 22px}.config-layout{display:flex;gap:32px;align-items:flex-start}.config-nav{flex:none;width:170px;display:flex;flex-direction:column;gap:2px;position:sticky;top:0}.shepherd-config .config-nav__item{text-align:left;font:inherit;font-size:13.5px;color:var(--ink2);background:transparent;border:0;border-radius:8px;padding:8px 12px;cursor:pointer;box-shadow:inset 2px 0 0 transparent;transition:color .12s ease,background .12s ease}.shepherd-config .config-nav .config-nav__item:hover{color:var(--ink);background:#322c200f}.shepherd-config .config-nav__item--on{color:var(--ink);font-weight:600;box-shadow:inset 2px 0 0 var(--ink)}.shepherd-config .config-nav .config-nav__item--on:hover{background:transparent}.config-panel{flex:1;min-width:0}.config-panel>section+section{margin-top:26px;padding-top:26px;border-top:1px solid var(--line2)}.config-none{color:var(--ink2);font-size:13.5px;max-width:520px}.shepherd-config .readonly-value{margin:0;font-size:15px;color:var(--ink);padding:1px 0;font-weight:500}.shepherd-general .leave{padding-top:4px}.shepherd-config button.danger{border-color:var(--drop);background:transparent;color:var(--drop);align-self:flex-start}.shepherd-config button.danger:hover:not(:disabled){background:var(--drop);color:var(--bg)}.shepherd-config .card-head h3{font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink2);margin:0}.shepherd-config .card-sub{margin:4px 0 0;font-size:12.5px;color:var(--ink3)}.shepherd-config .card-head{margin-bottom:16px}.shepherd-config .card-body{display:flex;flex-direction:column;gap:16px}.shepherd-config .card-body>[role=alert]{margin:0;color:var(--drop);font-size:13px}.shepherd-config .card-body>[role=status]{margin:0;color:var(--ink2);font-size:13px}.shepherd-config .field{display:flex;flex-direction:column;gap:8px}.shepherd-config .card-body label{font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink3)}.shepherd-config .helper{margin:0;font-size:12.5px;color:var(--ink2)}.shepherd-config .field>select{width:100%}.shepherd-config select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%239c917a' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 28px center;padding-right:44px}.shepherd-config .field__row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.shepherd-config .field__row>input{flex:1;min-width:200px}.shepherd-invites .invites{gap:12px}.shepherd-invites .invites>button{align-self:flex-start}.shepherd-config input,.shepherd-config select{padding:9px 12px;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:inherit;transition:border-color .12s ease,box-shadow .12s ease}.shepherd-config input::placeholder{color:var(--ink3)}.shepherd-config input:focus,.shepherd-config select:focus{outline:none;border-color:var(--terr);box-shadow:0 0 0 3px #7a6a4824}.shepherd-config button{padding:9px 16px;border-radius:8px;border:1px solid var(--ink);background:var(--ink);color:var(--bg);font-weight:600;cursor:pointer;font:inherit;white-space:nowrap;transition:background .12s ease}.shepherd-config button:hover:not(:disabled){background:#413a2a}.shepherd-config button:disabled{opacity:.55;cursor:default}.shepherd-config ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.shepherd-config li{display:flex;align-items:center;gap:10px;padding:10px 0;font-size:13px}.shepherd-config li+li{border-top:1px solid var(--line2)}.shepherd-config li>span:first-child{flex:1;min-width:0;font-weight:500}.shepherd-config li button{padding:5px 12px}.shepherd-config .role,.shepherd-config .token-meta{color:var(--ink3);font-size:12px}.shepherd-config .email-invite__status{margin:0;font-size:12.5px;color:var(--ink2)}.shepherd-connect-agent .install-command{position:relative}.shepherd-connect-agent pre{margin:0;padding:12px 14px;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.5;overflow-x:auto;white-space:pre-wrap;word-break:break-word}.shepherd-config .shepherd-connect-agent .install-command__copy{position:absolute;top:7px;right:7px;display:grid;place-items:center;width:28px;height:28px;padding:0;border-radius:7px;border:0;background:transparent;color:var(--ink3);cursor:pointer;transition:background .12s ease,color .12s ease}.shepherd-config .shepherd-connect-agent .install-command__copy:hover{background:#322c2014;color:var(--ink)}.shepherd-connect-agent h4{margin:6px 0 0;font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink3)}.shepherd-connect-agent .token-once{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;padding:10px 12px;border-radius:8px;background:var(--chip);border:1px solid var(--line2)}.shepherd-config .invite-result{align-self:stretch;display:flex;flex-direction:column;gap:12px;padding:14px 16px;border-radius:10px;background:var(--card);border:1px solid var(--line)}.shepherd-config .invite-result__head{display:flex;align-items:center;gap:12px}.shepherd-config .invite-result__eyebrow{flex:1;font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink3)}.shepherd-config .invite-uses{font-size:12px;color:var(--ink3)}.shepherd-config .invite-result__copyrow{display:flex;align-items:center;gap:10px}.shepherd-config .invite-result__copyrow>code{flex:1;min-width:0;font-size:15px;font-weight:600;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--ink);letter-spacing:.02em;word-break:break-all}.shepherd-config .invite-result__copyrow--link{padding-top:10px;border-top:1px solid var(--line2)}.shepherd-config .invite-result__copyrow--link a{flex:1;min-width:0;font-size:12px;color:var(--ink2);word-break:break-all}.shepherd-config .invite-result .copy-btn{flex:none;padding:5px 12px;font-size:12px;font-weight:600;border-radius:7px;border:1px solid var(--line);background:var(--bg);color:var(--ink2);cursor:pointer}.shepherd-config .invite-result .copy-btn:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}.shepherd-config .invite-result .link-btn{flex:none;padding:0;font-size:12px;font-weight:600;border:0;background:transparent;color:var(--drop);cursor:pointer}.shepherd-config .invite-result .link-btn:hover{background:transparent;text-decoration:underline}.shepherd-config .revoked{color:var(--ink3);text-decoration:line-through}.shepherd-empty-state{text-align:center;color:var(--ink2);padding:48px 24px}.shepherd-empty-state button{margin-top:14px}.shepherd-feedback{position:fixed;right:20px;bottom:20px;z-index:10}.shepherd-feedback__trigger{padding:9px 16px;border-radius:999px;border:1px solid var(--ink);background:var(--ink);color:var(--bg);font-weight:600;font-size:13px;font:inherit;cursor:pointer;box-shadow:0 8px 24px #3228142e}.shepherd-feedback__trigger:hover{background:#413a2a}.shepherd-feedback__panel{position:absolute;right:0;bottom:calc(100% + 10px);width:280px;display:flex;flex-direction:column;gap:10px;padding:16px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 24px #3228142e}.shepherd-feedback__panel h3{margin:0;font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink2)}.shepherd-feedback__panel [role=status]{margin:0;font-size:13px;color:var(--ink2)}.shepherd-feedback__panel [role=alert]{margin:0;font-size:13px;color:var(--drop)}.shepherd-feedback__types{display:flex;gap:6px}.shepherd-feedback__types button{flex:1;padding:6px 0;border-radius:8px;border:1px solid var(--line);background:transparent;color:var(--ink2);font-size:12.5px;font:inherit;cursor:pointer;transition:background .12s ease,color .12s ease}.shepherd-feedback__types button[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink);font-weight:600}.shepherd-feedback__panel textarea{min-height:80px;padding:9px 12px;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:inherit;resize:vertical}.shepherd-feedback__panel textarea::placeholder{color:var(--ink3)}.shepherd-feedback__panel textarea:focus{outline:none;border-color:var(--terr);box-shadow:0 0 0 3px #7a6a4824}.shepherd-feedback__panel>button{padding:9px 16px;border-radius:8px;border:1px solid var(--ink);background:var(--ink);color:var(--bg);font-weight:600;cursor:pointer;font:inherit}.shepherd-feedback__panel>button:hover:not(:disabled){background:#413a2a}.shepherd-feedback__panel>button:disabled{opacity:.55;cursor:default}