agentic-drive 0.10.2 → 0.11.0

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.11.0
4
+
5
+ - Add `onOpenItem` to the public UI options. Hosts can handle reference opens in list and grid views by pointer or keyboard. Export `OnOpenItem` and `Item` from `agentic-drive/ui`. Keep the download action for unhandled items.
6
+
7
+ ## 0.10.3
8
+
9
+ - Allow `agentic-design` 0.10 and `agentic-identity` 0.11 without changing the lower bounds.
10
+
3
11
  ## 0.10.2
4
12
 
5
13
  - Document all public exports and entry points. Check export names against README and llms.txt.
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  Store, sort, and share files and folders.
9
9
 
10
- > Status: 0.10.2, early. The library, CLI, MCP server, and HTTP API work, with sharing in the SDK, the HTTP API, the CLI, and the MCP server.
10
+ > Status: 0.10.3, early. The library, CLI, MCP server, and HTTP API work, with sharing in the SDK, the HTTP API, the CLI, and the MCP server.
11
11
  > A small web UI works. See [UI](#ui).
12
12
 
13
13
  ## Live demo
@@ -248,7 +248,7 @@ view.unmount();
248
248
  ```
249
249
 
250
250
  `mount` returns a `MountedDrive` handle. `DriveBrowser` is the React component;
251
- `DriveUiOptions` is its configuration. The CSS path supplies its styles.
251
+ `DriveUiOptions` is its configuration. `OnOpenItem` is the reference-open callback type, and `Item` is its argument type. The CSS path supplies its styles.
252
252
 
253
253
  ### CLI, MCP, and adapters
254
254
 
@@ -308,7 +308,22 @@ drive.update({ baseUrl, getToken }); // use another server or callback
308
308
  drive.unmount(); // remove the UI
309
309
  ```
310
310
 
311
- `getToken` returns 1 to 512 letters, digits, `-` or `_`, or `undefined` to send no `authorization` header. A bad `baseUrl` or a `getToken` that is not a function makes `mount` throw a `TypeError`. The server still checks every request against the token. The embed shows files and trash with upload, rename, move, share, and the "Created by agent" label. It has no sign-in form, because your app owns sign-in. It does not change the page address, and it has no theme switch. `agentic-design/styles.css` sets base styles for the whole page, and it follows the dark mode of the system unless your page sets `data-theme`. Add `agentic-design@">=0.8.0 <0.10.0"` to your own dependencies, because your page imports its files. The Worker sends no CORS headers, so the server must be on the origin of your page. Set `baseUrl` to the same address as `DRIVE_PUBLIC_URL`, or the UI refuses its download links. `unmount` and `update` abort the requests that run and stop an upload that has more files to send. The UI keeps the list or grid choice in `localStorage` under `agentic-drive-view`, and it has its own heading for each view. Dialogs, menus, and messages render in `document.body`, outside your element. A click with Ctrl, Cmd, Shift, or the middle button on a folder link does not open the folder. The class names start with `drive-`. The design-system classes start with `agd-`. `DriveBrowser` is the same UI as a React component. It closes its requests when it unmounts. Wrap it in `TooltipProvider` and `ToastProvider` from `agentic-design/react`. `react` and `react-dom` (version 19 or later) are optional peer dependencies. Install them in your project when you use `agentic-drive/ui`. The web UI that the Worker serves uses the same views.
311
+ Use `onOpenItem` to open a reference in your app. It receives the full `Item`, including `id`, `kind` (`"ref"`), and `ref` (for example, `"docs:plan"`). Return `true` to handle the action and skip the download. Return `false` or nothing to keep the built-in download action. The hook runs for reference links in the list and grid, by pointer or Enter. Files and folders keep their built-in action. Modified clicks keep their existing behavior.
312
+
313
+ ```ts
314
+ import type { Item, OnOpenItem } from "agentic-drive/ui";
315
+
316
+ const onOpenItem: OnOpenItem = (item: Item) => {
317
+ if (!item.ref?.startsWith("docs:")) return false;
318
+ openEditor(item.ref.slice(5)); // Your app opens its editor.
319
+ return true;
320
+ };
321
+ drive.update({ baseUrl: location.origin, getToken: () => session.token, onOpenItem });
322
+ ```
323
+
324
+ `DriveUiOptions` exports this optional hook for both `mount` and `DriveBrowser`. `update()` can replace or remove it. React hosts can change the `onOpenItem` prop without resetting the current folder. The callback is synchronous.
325
+
326
+ `getToken` returns 1 to 512 letters, digits, `-` or `_`, or `undefined` to send no `authorization` header. A bad `baseUrl` or a `getToken` that is not a function makes `mount` throw a `TypeError`. The server still checks every request against the token. The embed shows files and trash with upload, rename, move, share, and the "Created by agent" label. It has no sign-in form, because your app owns sign-in. It does not change the page address, and it has no theme switch. `agentic-design/styles.css` sets base styles for the whole page, and it follows the dark mode of the system unless your page sets `data-theme`. Add `agentic-design@">=0.8.0 <0.11.0"` to your own dependencies, because your page imports its files. The Worker sends no CORS headers, so the server must be on the origin of your page. Set `baseUrl` to the same address as `DRIVE_PUBLIC_URL`, or the UI refuses its download links. `unmount` and `update` abort the requests that run and stop an upload that has more files to send. The UI keeps the list or grid choice in `localStorage` under `agentic-drive-view`, and it has its own heading for each view. Dialogs, menus, and messages render in `document.body`, outside your element. A click with Ctrl, Cmd, Shift, or the middle button on a folder link does not open the folder. The class names start with `drive-`. The design-system classes start with `agd-`. `DriveBrowser` is the same UI as a React component. It closes its requests when it unmounts. Wrap it in `TooltipProvider` and `ToastProvider` from `agentic-design/react`. `react` and `react-dom` (version 19 or later) are optional peer dependencies. Install them in your project when you use `agentic-drive/ui`. The web UI that the Worker serves uses the same views.
312
327
 
313
328
  ### Serve the UI from the package
314
329
 
package/dist/account.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { b as Actor, D as Drive, C as Ctx } from './drive-BhMTeQ-s.js';
1
+ import { A as Actor, D as Drive, C as Ctx } from './drive-CS1CLfqo.js';
2
2
  import 'agentic-identity';
3
3
 
4
4
  interface DriveAccountDeps {
@@ -1,6 +1,6 @@
1
1
  // src/version.ts
2
2
  import { createRequire } from "module";
3
- var VERSION = true ? "0.10.2" : readPackageVersion();
3
+ var VERSION = true ? "0.11.0" : readPackageVersion();
4
4
 
5
5
  export {
6
6
  VERSION
package/dist/cli.js CHANGED
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-AB2RTTHJ.js";
5
5
  import {
6
6
  VERSION
7
- } from "./chunk-WOA2S56W.js";
7
+ } from "./chunk-NMHARN2A.js";
8
8
  import {
9
9
  buildExport,
10
10
  upload
package/dist/client.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { E as ErrorCode, N as Node, A as ActivityEntry, S as SearchQuery } from './drive-BhMTeQ-s.js';
2
- export { a as ActivityAction } from './drive-BhMTeQ-s.js';
1
+ import { i as ErrorCode, N as Node, d as ActivityEntry, S as SearchQuery } from './drive-CS1CLfqo.js';
2
+ export { c as ActivityAction } from './drive-CS1CLfqo.js';
3
3
  import 'agentic-identity';
4
4
 
5
5
  type Role = "viewer" | "commenter" | "editor" | "owner";
@@ -380,4 +380,4 @@ declare function createDrive(deps: DriveDeps): {
380
380
  }>;
381
381
  };
382
382
 
383
- export { type ActivityEntry as A, type Ctx as C, type Drive as D, type ErrorCode as E, type Node as N, type OnConflict as O, ROOT_ID as R, type SearchQuery as S, type ActivityAction as a, type Actor as b, ACTOR_KINDS as c, type Action as d, type ActorKind as e, type Can as f, type DriveDeps as g, DriveError as h, ERROR_STATUS as i, createDrive as j, parseSubject as k, parseName as p, subjectKindOf as s };
383
+ export { type Actor as A, type Ctx as C, type Drive as D, ERROR_STATUS as E, type Node as N, type OnConflict as O, ROOT_ID as R, type SearchQuery as S, ACTOR_KINDS as a, type Action as b, type ActivityAction as c, type ActivityEntry as d, type ActorKind as e, type Can as f, type DriveDeps as g, DriveError as h, type ErrorCode as i, createDrive as j, parseSubject as k, parseName as p, subjectKindOf as s };
package/dist/embed.d.ts CHANGED
@@ -1,6 +1,14 @@
1
1
  import * as react from 'react';
2
+ import { Item } from './client.js';
3
+ import './drive-CS1CLfqo.js';
4
+ import 'agentic-identity';
5
+
6
+ /** Return true to handle a reference open; false or void keeps the download action. */
7
+ type OnOpenItem = (item: Item) => boolean | void;
2
8
 
3
9
  interface DriveUiOptions {
10
+ /** Runs when a person activates a reference item. Return true to skip the built-in download. */
11
+ onOpenItem?: OnOpenItem;
4
12
  /** The address of the drive server, for example `https://drive.example.com`. Only its origin is used. */
5
13
  baseUrl: string;
6
14
  /** Returns the bearer token for the next request. It runs before every request, so it can refresh a token. No token sends no `authorization` header. */
@@ -8,9 +16,9 @@ interface DriveUiOptions {
8
16
  }
9
17
  /** The folders and trash of the signed-in caller, with upload, share, and the machine-made label. It needs the tooltip and toast providers above it. `mount` adds them.
10
18
  * It shows the root again when `baseUrl` changes. A bad `baseUrl` or `getToken` throws. Pass a stable `getToken`, because a new function makes a new client. */
11
- declare function DriveBrowser({ baseUrl, getToken }: DriveUiOptions): react.JSX.Element | null;
19
+ declare function DriveBrowser({ baseUrl, getToken, onOpenItem }: DriveUiOptions): react.JSX.Element | null;
12
20
  interface MountedDrive {
13
- /** Show the drive with another address or token callback. The folder the person has open resets. */
21
+ /** Show the drive with another address, token callback, or item-open callback. The folder the person has open resets. */
14
22
  update(options: DriveUiOptions): void;
15
23
  /** Remove the UI. A request that runs is aborted, and no later request starts or calls `getToken`. Calling it again does nothing. */
16
24
  unmount(): void;
@@ -18,4 +26,4 @@ interface MountedDrive {
18
26
  /** Render the drive into an element, for an app that does not use React itself. A bad `baseUrl` or `getToken` throws a `TypeError`. */
19
27
  declare function mount(element: HTMLElement, options: DriveUiOptions): MountedDrive;
20
28
 
21
- export { DriveBrowser, type DriveUiOptions, type MountedDrive, mount };
29
+ export { DriveBrowser, type DriveUiOptions, Item, type MountedDrive, type OnOpenItem, mount };
package/dist/embed.js CHANGED
@@ -123,7 +123,7 @@ function ExpandableSearch({ value, onChange }) {
123
123
  /* @__PURE__ */ jsx2(Button, { variant: "ghost", size: "sm", onClick: close, children: "Close search" })
124
124
  ] });
125
125
  }
126
- function ItemTable({ label, items, sort, onSort, selected = /* @__PURE__ */ new Set(), onSelect, href, who: who2, actions, dateOf = (i) => i.updatedAt }) {
126
+ function ItemTable({ label, items, sort, onSort, selected = /* @__PURE__ */ new Set(), onSelect, href, onOpen, who: who2, actions, dateOf = (i) => i.updatedAt }) {
127
127
  const all = items.length > 0 && items.every((i) => selected.has(i.id));
128
128
  const some = !all && items.some((i) => selected.has(i.id));
129
129
  const head = useRef(null);
@@ -153,7 +153,7 @@ function ItemTable({ label, items, sort, onSort, selected = /* @__PURE__ */ new
153
153
  onSelect && /* @__PURE__ */ jsx2("td", { className: "drive-table__check", children: /* @__PURE__ */ jsx2("input", { type: "checkbox", className: "agd-checkbox", "aria-label": `Select ${i.name}`, checked: selected.has(i.id), onChange: (e) => toggle(i.id, e.target.checked) }) }),
154
154
  /* @__PURE__ */ jsx2("td", { children: /* @__PURE__ */ jsxs2("div", { className: "drive-table__name", children: [
155
155
  /* @__PURE__ */ jsx2("span", { className: "drive-table__icon", "aria-hidden": "true", children: i.kind === "folder" ? /* @__PURE__ */ jsx2(FolderIcon, {}) : /* @__PURE__ */ jsx2(FileIcon, {}) }),
156
- /* @__PURE__ */ jsx2("a", { href: href(i), children: i.name })
156
+ /* @__PURE__ */ jsx2("a", { href: href(i), onClick: (e) => onOpen?.(e, i), children: i.name })
157
157
  ] }) }),
158
158
  /* @__PURE__ */ jsx2("td", { className: "drive-table__who", children: /* @__PURE__ */ jsx2(PresenceChip, { entry: who2(i.updatedBy, i.owner) }) }),
159
159
  /* @__PURE__ */ jsx2("td", { className: "drive-table__date", children: /* @__PURE__ */ jsx2(Stamp, { at: dateOf(i) }) }),
@@ -204,14 +204,18 @@ var goHash = (loc) => {
204
204
  history.replaceState(null, "", `#/${loc}`);
205
205
  dispatchEvent(new HashChangeEvent("hashchange"));
206
206
  };
207
- function Routes({ hash, client, origin, go }) {
207
+ function Routes({ hash, client, origin, go, onOpenItem }) {
208
208
  const parts = routeParts(hash);
209
209
  if (parts[0] === "trash") return /* @__PURE__ */ jsx3(TrashView, { client }, "trash");
210
210
  if (parts[0] === "a" && parts[1]) return /* @__PURE__ */ jsx3(ActivityView, { client, id: parts[1] }, hash);
211
211
  if (parts[0] === "f" && parts[1]) return /* @__PURE__ */ jsx3(Download, { client, id: parts[1], origin, go }, hash);
212
- return /* @__PURE__ */ jsx3(Browser, { client, loc: parts[0] || "/", origin }, hash);
212
+ return /* @__PURE__ */ jsx3(Browser, { client, loc: parts[0] || "/", origin, onOpenItem }, hash);
213
213
  }
214
- function Browser({ client, loc, origin }) {
214
+ function Browser({ client, loc, origin, onOpenItem }) {
215
+ const openItem = (e, item) => {
216
+ if (e.defaultPrevented || e.button !== 0 || e.metaKey || e.ctrlKey || e.shiftKey || e.altKey || item.kind !== "ref") return;
217
+ if (onOpenItem?.(item) === true) e.preventDefault();
218
+ };
215
219
  const toast = useToast();
216
220
  const [view, setView] = useState2(() => localStorage.getItem("agentic-drive-view") === "grid" ? "grid" : "list");
217
221
  const [dlg, setDlg] = useState2(null);
@@ -336,9 +340,9 @@ function Browser({ client, loc, origin }) {
336
340
  /* @__PURE__ */ jsxs3("div", { children: [
337
341
  /* @__PURE__ */ jsx3("div", { className: "drive-tools", children: /* @__PURE__ */ jsx3(ExpandableSearch, { value: query, onChange: setQuery }) }),
338
342
  /* @__PURE__ */ jsx3("p", { role: "status", className: "drive-sr", children: needle ? `${items.length} of ${state.data.items.length} items match` : "" }),
339
- state.data.items.length === 0 ? /* @__PURE__ */ jsx3(EmptyState, { title: "This folder is empty", description: "Drop files here, or use Upload files.", action: /* @__PURE__ */ jsx3(Button2, { onClick: () => input.current?.click(), disabled: busy, children: "Upload files" }) }) : items.length === 0 ? /* @__PURE__ */ jsx3(EmptyState, { title: "Nothing matches", description: `No item in this folder has \u201C${query.trim()}\u201D in its name.`, action: /* @__PURE__ */ jsx3(Button2, { onClick: () => setQuery(""), children: "Clear search" }) }) : view === "list" ? /* @__PURE__ */ jsx3(ItemTable, { label: `Items in ${folder.name || "My files"}`, items, sort, onSort, selected, onSelect: setSelected, href, who, actions }) : /* @__PURE__ */ jsx3("ul", { className: "drive-grid", "aria-label": `Items in ${folder.name || "My files"}`, children: items.map((i) => /* @__PURE__ */ jsxs3("li", { className: "drive-card", children: [
343
+ state.data.items.length === 0 ? /* @__PURE__ */ jsx3(EmptyState, { title: "This folder is empty", description: "Drop files here, or use Upload files.", action: /* @__PURE__ */ jsx3(Button2, { onClick: () => input.current?.click(), disabled: busy, children: "Upload files" }) }) : items.length === 0 ? /* @__PURE__ */ jsx3(EmptyState, { title: "Nothing matches", description: `No item in this folder has \u201C${query.trim()}\u201D in its name.`, action: /* @__PURE__ */ jsx3(Button2, { onClick: () => setQuery(""), children: "Clear search" }) }) : view === "list" ? /* @__PURE__ */ jsx3(ItemTable, { label: `Items in ${folder.name || "My files"}`, items, sort, onSort, selected, onSelect: setSelected, onOpen: openItem, href, who, actions }) : /* @__PURE__ */ jsx3("ul", { className: "drive-grid", "aria-label": `Items in ${folder.name || "My files"}`, children: items.map((i) => /* @__PURE__ */ jsxs3("li", { className: "drive-card", children: [
340
344
  /* @__PURE__ */ jsx3("span", { className: "drive-card__icon", "aria-hidden": "true", children: i.kind === "folder" ? /* @__PURE__ */ jsx3(FolderIcon2, {}) : /* @__PURE__ */ jsx3(FileIcon2, {}) }),
341
- /* @__PURE__ */ jsx3("a", { href: href(i), className: "drive-card__name", children: i.name }),
345
+ /* @__PURE__ */ jsx3("a", { href: href(i), onClick: (e) => openItem(e, i), className: "drive-card__name", children: i.name }),
342
346
  /* @__PURE__ */ jsxs3("span", { className: "drive-card__meta", children: [
343
347
  "Edited by ",
344
348
  /* @__PURE__ */ jsx3(PresenceChip2, { entry: who(i.updatedBy, i.owner) })
@@ -539,16 +543,16 @@ function makeClient({ baseUrl, getToken }) {
539
543
  return { client: createClient({ baseUrl, token: PLACEHOLDER, fetch: fetchWithToken }), close: () => closed.abort() };
540
544
  }
541
545
  var clients = 0;
542
- function DriveBrowser({ baseUrl, getToken }) {
546
+ function DriveBrowser({ baseUrl, getToken, onOpenItem }) {
543
547
  const [made, setMade] = useState3();
544
548
  useEffect3(() => {
545
549
  const next = makeClient({ baseUrl, getToken });
546
550
  setMade({ id: ++clients, client: next.client, origin: new URL(baseUrl).origin });
547
551
  return () => next.close();
548
552
  }, [baseUrl, getToken]);
549
- return made ? /* @__PURE__ */ jsx4(DriveView, { client: made.client, origin: made.origin }, made.id) : null;
553
+ return made ? /* @__PURE__ */ jsx4(DriveView, { client: made.client, origin: made.origin, onOpenItem }, made.id) : null;
550
554
  }
551
- function DriveView({ client, origin }) {
555
+ function DriveView({ client, origin, onOpenItem }) {
552
556
  const [hash, setHash] = useState3("#/");
553
557
  const go = (loc) => setHash(`#/${loc === "/" ? "" : loc}`);
554
558
  const follow = (e) => {
@@ -564,7 +568,7 @@ function DriveView({ client, origin }) {
564
568
  { href: "#/", label: "My files", icon: /* @__PURE__ */ jsx4(FolderIcon3, { "aria-hidden": "true" }), current: place === "files" },
565
569
  { href: "#/trash", label: "Trash", current: place === "trash" }
566
570
  ] }),
567
- /* @__PURE__ */ jsx4("div", { className: "drive-main", children: /* @__PURE__ */ jsx4(Routes, { hash, client, origin, go }) })
571
+ /* @__PURE__ */ jsx4("div", { className: "drive-main", children: /* @__PURE__ */ jsx4(Routes, { hash, client, origin, go, onOpenItem }) })
568
572
  ] });
569
573
  }
570
574
  function mount(element, options) {
@@ -573,7 +577,7 @@ function mount(element, options) {
573
577
  let open = true;
574
578
  let version = 0;
575
579
  const render = (next, client) => root.render(
576
- /* @__PURE__ */ jsx4(TooltipProvider, { children: /* @__PURE__ */ jsx4(ToastProvider, { children: /* @__PURE__ */ jsx4(DriveView, { client, origin: new URL(next.baseUrl).origin }, version++) }) })
580
+ /* @__PURE__ */ jsx4(TooltipProvider, { children: /* @__PURE__ */ jsx4(ToastProvider, { children: /* @__PURE__ */ jsx4(DriveView, { client, origin: new URL(next.baseUrl).origin, onOpenItem: next.onOpenItem }, version++) }) })
577
581
  );
578
582
  render(options, current.client);
579
583
  return {
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { O as OnConflict, D as Drive, C as Ctx, N as Node, b as Actor } from './drive-BhMTeQ-s.js';
2
- export { c as ACTOR_KINDS, d as Action, a as ActivityAction, A as ActivityEntry, e as ActorKind, f as Can, g as DriveDeps, h as DriveError, i as ERROR_STATUS, E as ErrorCode, R as ROOT_ID, S as SearchQuery, j as createDrive, p as parseName, k as parseSubject, s as subjectKindOf } from './drive-BhMTeQ-s.js';
1
+ import { O as OnConflict, D as Drive, C as Ctx, N as Node, A as Actor } from './drive-CS1CLfqo.js';
2
+ export { a as ACTOR_KINDS, b as Action, c as ActivityAction, d as ActivityEntry, e as ActorKind, f as Can, g as DriveDeps, h as DriveError, E as ERROR_STATUS, i as ErrorCode, R as ROOT_ID, S as SearchQuery, j as createDrive, p as parseName, k as parseSubject, s as subjectKindOf } from './drive-CS1CLfqo.js';
3
3
  import { Store, Blobs, Doc } from 'agentic-identity';
4
4
  export { B as BackfillOptions, a as BackfillResult, b as backfillAuthorIds, c as backfillResources } from './migrate-B79gRPMu.js';
5
5
  export { DriveAccount, DriveAccountDeps, driveAccount } from './account.js';
package/dist/index.js CHANGED
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-AB2RTTHJ.js";
7
7
  import {
8
8
  VERSION
9
- } from "./chunk-WOA2S56W.js";
9
+ } from "./chunk-NMHARN2A.js";
10
10
  import {
11
11
  DEFAULT_MAX_BYTES,
12
12
  buildExport,
package/dist/mcp.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- import { D as Drive, C as Ctx } from './drive-BhMTeQ-s.js';
2
+ import { D as Drive, C as Ctx } from './drive-CS1CLfqo.js';
3
3
  import { Store } from 'agentic-identity';
4
4
 
5
5
  declare function createMcpServer(drive: Drive, ctx: Ctx, exportDir: string, store: Store): McpServer;
package/dist/mcp.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  VERSION
3
- } from "./chunk-WOA2S56W.js";
3
+ } from "./chunk-NMHARN2A.js";
4
4
  import {
5
5
  buildExport,
6
6
  upload
package/dist/worker.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { Hono } from 'hono';
2
2
  import { D1Like, R2Like } from 'agentic-identity/cloudflare';
3
3
  import { Store, Blobs } from 'agentic-identity';
4
- import { C as Ctx, D as Drive } from './drive-BhMTeQ-s.js';
5
- export { i as ERROR_STATUS, E as ErrorCode, N as Node } from './drive-BhMTeQ-s.js';
4
+ import { C as Ctx, D as Drive } from './drive-CS1CLfqo.js';
5
+ export { E as ERROR_STATUS, i as ErrorCode, N as Node } from './drive-CS1CLfqo.js';
6
6
  export { B as BackfillOptions, a as BackfillResult, b as backfillAuthorIds, c as backfillResources } from './migrate-B79gRPMu.js';
7
7
 
8
8
  /**
package/llms.txt CHANGED
@@ -108,6 +108,7 @@ view.unmount();
108
108
  `DriveUiOptions` is its configuration. The CSS path supplies its styles. The handle
109
109
  has `update` and `unmount` methods. The `getToken` callback runs before each request
110
110
  and may return undefined. The UI does not change the page address or theme.
111
+ The optional `onOpenItem` hook receives the full `Item` for a reference link, by pointer or Enter in list and grid views. Return true to skip the download; false or void keeps it. `OnOpenItem` and `Item` are exported types from `agentic-drive/ui`. Both `update` and React props can replace the hook.
111
112
  React 19 and React DOM 19 are optional peer dependencies.
112
113
 
113
114
  ### CLI, MCP, and adapters
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentic-drive",
3
- "version": "0.10.2",
3
+ "version": "0.11.0",
4
4
  "description": "Store, sort, and share files and folders.",
5
5
  "keywords": [
6
6
  "drive",
@@ -78,8 +78,8 @@
78
78
  },
79
79
  "dependencies": {
80
80
  "@modelcontextprotocol/sdk": "^1.12.0",
81
- "agentic-design": ">=0.8.0 <0.10.0",
82
- "agentic-identity": ">=0.9.0 <0.11.0",
81
+ "agentic-design": ">=0.8.0 <0.11.0",
82
+ "agentic-identity": ">=0.9.0 <0.12.0",
83
83
  "hono": "^4.13.14",
84
84
  "zod": "^4.6.6"
85
85
  },
@@ -91,6 +91,8 @@
91
91
  "@types/react": "^19.3.0",
92
92
  "@types/react-dom": "^19.3.0",
93
93
  "@vitejs/plugin-react": "^5.2.0",
94
+ "agentic-design-tested": "npm:agentic-design@0.10.1",
95
+ "agentic-identity-tested": "npm:agentic-identity@0.11.0",
94
96
  "esbuild": "^0.27.7",
95
97
  "jsdom": "^26.1.0",
96
98
  "miniflare": "^4.20260730.0",
@@ -1 +1 @@
1
- @font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root,[data-theme=light]{color-scheme:light;--agd-color-bg: #FAFAFA;--agd-color-surface: #FFFFFF;--agd-color-surface-raised: #FFFFFF;--agd-color-surface-sunken: #F4F4F5;--agd-color-surface-hover: #ECECEE;--agd-color-text: #1D1D20;--agd-color-text-muted: #52525B;--agd-color-text-on-accent: #FFFFFF;--agd-color-border: #E4E4E7;--agd-color-border-strong: #82828B;--agd-color-accent: #4F46E5;--agd-color-accent-hover: #4338CA;--agd-color-accent-subtle: #EEF0FF;--agd-color-accent-text: #4338CA;--agd-color-agent: #8E2C86;--agd-color-agent-subtle: #F7E8F5;--agd-color-agent-text: #7A2273;--agd-color-danger: #B42318;--agd-color-danger-subtle: #FDECEA;--agd-color-danger-text: #A11D14;--agd-color-warning: #92520A;--agd-color-warning-subtle: #FDF1DC;--agd-color-warning-text: #7A4208;--agd-color-success: #1B6B3A;--agd-color-success-subtle: #E6F5EC;--agd-color-success-text: #175C32;--agd-color-focus: #4F46E5;--agd-color-scrim: rgb(24 24 27 / .32);--agd-shadow-raised: 0 1px 2px rgb(24 24 27 / .04), 0 2px 8px rgb(24 24 27 / .05);--agd-shadow-floating: 0 2px 4px rgb(24 24 27 / .04), 0 8px 24px rgb(24 24 27 / .1)}:root{--agd-space-1: .25rem;--agd-space-2: .5rem;--agd-space-3: .75rem;--agd-space-4: 1rem;--agd-space-6: 1.5rem;--agd-space-8: 2rem;--agd-space-12: 3rem;--agd-space-16: 4rem;--agd-space-24: 6rem;--agd-radius-sm: .25rem;--agd-radius-md: .5rem;--agd-radius-lg: 1rem;--agd-radius-full: 9999px;--agd-font-family-sans: "Inter Variable", ui-sans-serif, system-ui, sans-serif;--agd-font-family-mono: "JetBrains Mono Variable", ui-monospace, "SF Mono", Menlo, monospace;--agd-font-size-xs: .75rem;--agd-font-size-sm: .875rem;--agd-font-size-md: 1rem;--agd-font-size-lg: 1.125rem;--agd-font-size-xl: 1.375rem;--agd-font-size-2xl: 1.75rem;--agd-line-height-tight: 1.25;--agd-line-height-snug: 1.4;--agd-line-height-normal: 1.55;--agd-font-weight-regular: 400;--agd-font-weight-medium: 500;--agd-font-weight-semibold: 600;--agd-duration-fast: .1s;--agd-duration-base: .16s;--agd-duration-slow: .24s;--agd-easing-out: cubic-bezier(.16, 1, .3, 1);--agd-size-control: 2.25rem;--agd-size-control-touch: 2.75rem;--agd-size-sidebar: 16rem;--agd-size-sidebar-rail: 3.5rem;--agd-size-panel: 20rem;--agd-size-topbar: 3rem;--agd-size-content: 46rem}@media(prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--agd-color-bg: #151517;--agd-color-surface: #1B1B1E;--agd-color-surface-raised: #232326;--agd-color-surface-sunken: #101012;--agd-color-surface-hover: #2C2C31;--agd-color-text: #ECECEE;--agd-color-text-muted: #A1A1AA;--agd-color-text-on-accent: #14142E;--agd-color-border: #2C2C31;--agd-color-border-strong: #7E7E88;--agd-color-accent: #90A4FF;--agd-color-accent-hover: #A9B8FF;--agd-color-accent-subtle: #26264F;--agd-color-accent-text: #C3CDFF;--agd-color-agent: #E49BDC;--agd-color-agent-subtle: #3A1F37;--agd-color-agent-text: #F0B8E9;--agd-color-danger: #F2877D;--agd-color-danger-subtle: #3B1A17;--agd-color-danger-text: #F8A39B;--agd-color-warning: #E8B04A;--agd-color-warning-subtle: #3A2A0F;--agd-color-warning-text: #F0C677;--agd-color-success: #6FCF97;--agd-color-success-subtle: #14301F;--agd-color-success-text: #8BDBAC;--agd-color-focus: #A9B8FF;--agd-color-scrim: rgb(0 0 0 / .6);--agd-shadow-raised: 0 1px 2px rgb(0 0 0 / .3), 0 2px 16px rgb(0 0 0 / .3);--agd-shadow-floating: 0 2px 6px rgb(0 0 0 / .3), 0 8px 40px rgb(0 0 0 / .5)}}[data-theme=dark]{color-scheme:dark;--agd-color-bg: #151517;--agd-color-surface: #1B1B1E;--agd-color-surface-raised: #232326;--agd-color-surface-sunken: #101012;--agd-color-surface-hover: #2C2C31;--agd-color-text: #ECECEE;--agd-color-text-muted: #A1A1AA;--agd-color-text-on-accent: #14142E;--agd-color-border: #2C2C31;--agd-color-border-strong: #7E7E88;--agd-color-accent: #90A4FF;--agd-color-accent-hover: #A9B8FF;--agd-color-accent-subtle: #26264F;--agd-color-accent-text: #C3CDFF;--agd-color-agent: #E49BDC;--agd-color-agent-subtle: #3A1F37;--agd-color-agent-text: #F0B8E9;--agd-color-danger: #F2877D;--agd-color-danger-subtle: #3B1A17;--agd-color-danger-text: #F8A39B;--agd-color-warning: #E8B04A;--agd-color-warning-subtle: #3A2A0F;--agd-color-warning-text: #F0C677;--agd-color-success: #6FCF97;--agd-color-success-subtle: #14301F;--agd-color-success-text: #8BDBAC;--agd-color-focus: #A9B8FF;--agd-color-scrim: rgb(0 0 0 / .6);--agd-shadow-raised: 0 1px 2px rgb(0 0 0 / .3), 0 2px 16px rgb(0 0 0 / .3);--agd-shadow-floating: 0 2px 6px rgb(0 0 0 / .3), 0 8px 40px rgb(0 0 0 / .5)}@media(prefers-reduced-motion:reduce){:root{--agd-duration-fast: .01ms;--agd-duration-base: .01ms;--agd-duration-slow: .01ms}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;background:var(--agd-color-bg);color:var(--agd-color-text);font-family:var(--agd-font-family-sans);font-size:var(--agd-font-size-sm);line-height:var(--agd-line-height-normal);font-feature-settings:"cv11","ss03";-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;line-height:var(--agd-line-height-tight);font-weight:var(--agd-font-weight-semibold);text-wrap:balance}h1{font-size:var(--agd-font-size-2xl);letter-spacing:-.015em}h2{font-size:var(--agd-font-size-xl);letter-spacing:-.01em}h3{font-size:var(--agd-font-size-lg)}h4{font-size:var(--agd-font-size-md)}p{margin:0;text-wrap:pretty}a{color:var(--agd-color-accent-text);text-underline-offset:.2em}code,kbd,pre{font-family:var(--agd-font-family-mono);font-size:.9em}:focus-visible{outline:2px solid var(--agd-color-focus);outline-offset:2px}::selection{background:var(--agd-color-accent-subtle);color:var(--agd-color-accent-text)}.agd-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.agd-skip-link{position:absolute;inset-block-start:var(--agd-space-2);inset-inline-start:var(--agd-space-2);z-index:100;padding:var(--agd-space-2) var(--agd-space-4);border-radius:var(--agd-radius-md);background:var(--agd-color-surface-raised);color:var(--agd-color-text);box-shadow:var(--agd-shadow-floating);transform:translateY(-200%)}.agd-skip-link:focus{transform:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}:root{--agd-control-h: var(--agd-size-control)}@media(pointer:coarse){:root{--agd-control-h: var(--agd-size-control-touch)}}.agd-button{--button-bg: var(--agd-color-surface);--button-bg-hover: var(--agd-color-surface-hover);--button-bg-active: var(--agd-color-surface-sunken);--button-fg: var(--agd-color-text);--button-border: var(--agd-color-border);display:inline-flex;align-items:center;justify-content:center;gap:var(--agd-space-2);min-height:var(--agd-control-h);padding:0 var(--agd-space-4);border:1px solid var(--button-border);border-radius:var(--agd-radius-md);background:var(--button-bg);color:var(--button-fg);font:inherit;font-weight:var(--agd-font-weight-medium);line-height:1;white-space:nowrap;cursor:pointer;transition:background-color var(--agd-duration-fast) var(--agd-easing-out)}.agd-button:hover{background:var(--button-bg-hover)}.agd-button:active{background:var(--button-bg-active)}.agd-button--sm{min-height:1.75rem;padding:0 var(--agd-space-3);font-size:var(--agd-font-size-xs)}@media(pointer:coarse){.agd-button--sm{min-height:var(--agd-control-h)}}.agd-button--primary{--button-bg: var(--agd-color-accent);--button-bg-hover: var(--agd-color-accent-hover);--button-bg-active: var(--agd-color-accent-hover);--button-fg: var(--agd-color-text-on-accent);--button-border: transparent}.agd-button--ghost{--button-bg: transparent;--button-border: transparent}.agd-button--danger{--button-bg-hover: var(--agd-color-danger-subtle);--button-bg-active: var(--agd-color-danger-subtle);--button-fg: var(--agd-color-danger-text);--button-border: var(--agd-color-border)}.agd-button:disabled{--button-bg: var(--agd-color-surface-sunken);--button-bg-hover: var(--agd-color-surface-sunken);--button-fg: var(--agd-color-text-muted);--button-border: var(--agd-color-border);border-style:dashed;cursor:not-allowed}.agd-button[aria-busy=true]{cursor:progress}.agd-icon-button{width:var(--agd-control-h);padding:0}.agd-icon-button.agd-button--sm{width:1.75rem}@media(pointer:coarse){.agd-icon-button.agd-button--sm{width:var(--agd-control-h)}}.agd-spinner{width:1em;height:1em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:agd-spin .7s linear infinite}@keyframes agd-spin{to{transform:rotate(360deg)}}.agd-field{display:grid;gap:var(--agd-space-1)}.agd-field__label{font-weight:var(--agd-font-weight-medium)}.agd-field__hint{color:var(--agd-color-text-muted);font-size:var(--agd-font-size-xs)}.agd-field__error{display:flex;align-items:flex-start;gap:var(--agd-space-1);color:var(--agd-color-danger-text);font-size:var(--agd-font-size-xs)}.agd-field__error svg{flex:none;margin-top:-.1em}.agd-input{width:100%;min-height:var(--agd-control-h);padding:0 var(--agd-space-3);border:1px solid var(--agd-color-border-strong);border-radius:var(--agd-radius-md);background:var(--agd-color-surface);color:var(--agd-color-text);font:inherit}.agd-input::placeholder{color:var(--agd-color-text-muted);opacity:1}.agd-input:hover:not(:disabled){background:var(--agd-color-surface-sunken)}.agd-input[aria-invalid=true]{border-color:var(--agd-color-danger);box-shadow:inset 0 0 0 1px var(--agd-color-danger)}.agd-input:disabled{background:var(--agd-color-surface-sunken);border-color:var(--agd-color-border);color:var(--agd-color-text-muted);cursor:not-allowed}.agd-textarea{min-height:5rem;padding:var(--agd-space-2) var(--agd-space-3);resize:vertical}.agd-select{position:relative;display:block}.agd-select select{appearance:none;padding-inline-end:var(--agd-space-8);cursor:pointer}.agd-select:after{content:"";position:absolute;inset-inline-end:var(--agd-space-3);inset-block-start:50%;width:.45rem;height:.45rem;border:solid var(--agd-color-text-muted);border-width:0 2px 2px 0;transform:translateY(-75%) rotate(45deg);pointer-events:none}.agd-toggle{display:grid;gap:var(--agd-space-1)}.agd-toggle__row{display:flex;align-items:center;gap:var(--agd-space-3);min-height:var(--agd-control-h);cursor:pointer}.agd-checkbox,.agd-switch{appearance:none;flex:none;margin:0;border:1px solid var(--agd-color-border-strong);background:var(--agd-color-surface);cursor:pointer;transition:background-color var(--agd-duration-fast) var(--agd-easing-out)}.agd-checkbox{display:grid;place-items:center;width:1.25rem;height:1.25rem;border-radius:var(--agd-radius-sm)}.agd-checkbox:before{content:"";width:.75rem;height:.75rem;background:var(--agd-color-text-on-accent);clip-path:polygon(14% 52%,0 66%,38% 100%,100% 20%,86% 8%,38% 72%);transform:scale(0);transition:transform var(--agd-duration-fast) var(--agd-easing-out)}.agd-checkbox:checked{background:var(--agd-color-accent);border-color:var(--agd-color-accent)}.agd-checkbox:checked:before{transform:scale(1)}.agd-switch{position:relative;width:2.25rem;height:1.375rem;border-radius:var(--agd-radius-full);background:var(--agd-color-surface-sunken)}.agd-switch:before{content:"";position:absolute;inset-block-start:50%;inset-inline-start:.2rem;width:.875rem;height:.875rem;border-radius:var(--agd-radius-full);background:var(--agd-color-text-muted);transform:translateY(-50%);transition:inset-inline-start var(--agd-duration-base) var(--agd-easing-out)}.agd-switch:checked{background:var(--agd-color-accent);border-color:var(--agd-color-accent)}.agd-switch:checked:before{background:var(--agd-color-text-on-accent);inset-inline-start:calc(100% - 1.075rem)}.agd-checkbox:disabled,.agd-switch:disabled{background:var(--agd-color-surface-sunken);border-color:var(--agd-color-border);cursor:not-allowed}.agd-checkbox:disabled:before{background:var(--agd-color-text-muted)}.agd-switch:disabled:before{background:var(--agd-color-border)}@keyframes agd-fade-in{0%{opacity:0}}@keyframes agd-pop-in{0%{opacity:0;scale:.97}}.agd-overlay{position:fixed;z-index:50;inset:0;background:var(--agd-color-scrim);animation:agd-fade-in var(--agd-duration-base) var(--agd-easing-out)}.agd-dialog{position:fixed;z-index:50;inset:0;margin:auto;width:min(32rem,calc(100vw - 2rem));height:fit-content;max-height:calc(100vh - 2rem);overflow:auto;padding:var(--agd-space-8);border:1px solid var(--agd-color-border);border-radius:var(--agd-radius-lg);background:var(--agd-color-surface-raised);box-shadow:var(--agd-shadow-floating);animation:agd-pop-in var(--agd-duration-base) var(--agd-easing-out)}.agd-dialog__title{padding-inline-end:var(--agd-space-8);font-size:var(--agd-font-size-lg)}.agd-dialog__description{margin-top:var(--agd-space-2);color:var(--agd-color-text-muted)}.agd-dialog__body{margin-top:var(--agd-space-4)}.agd-dialog__footer{display:flex;justify-content:flex-end;gap:var(--agd-space-2);margin-top:var(--agd-space-8)}.agd-dialog__close{position:absolute;inset-block-start:var(--agd-space-3);inset-inline-end:var(--agd-space-3)}.agd-tooltip{z-index:60;max-width:16rem;padding:var(--agd-space-1) var(--agd-space-2);border-radius:var(--agd-radius-sm);background:var(--agd-color-text);color:var(--agd-color-bg);font-size:var(--agd-font-size-xs);animation:agd-fade-in var(--agd-duration-fast) var(--agd-easing-out)}.agd-menu{z-index:60;min-width:11rem;padding:var(--agd-space-2);border:1px solid var(--agd-color-border);border-radius:var(--agd-radius-lg);background:var(--agd-color-surface-raised);box-shadow:var(--agd-shadow-floating);animation:agd-pop-in var(--agd-duration-fast) var(--agd-easing-out)}.agd-menu__item{display:flex;align-items:center;gap:var(--agd-space-2);min-height:var(--agd-control-h);padding:0 var(--agd-space-3);border-radius:var(--agd-radius-md);color:var(--agd-color-text);cursor:pointer;outline:none;-webkit-user-select:none;user-select:none}.agd-menu__item[data-highlighted]{background:var(--agd-color-surface-hover)}.agd-menu__item[data-highlighted]:focus-visible,.agd-menu__item:focus-visible{outline:2px solid var(--agd-color-focus);outline-offset:-2px}.agd-menu__item[data-disabled]{color:var(--agd-color-text-muted);cursor:not-allowed}.agd-menu__item--danger{color:var(--agd-color-danger-text)}.agd-menu__shortcut{margin-inline-start:auto;color:var(--agd-color-text-muted);font-size:var(--agd-font-size-xs)}.agd-menu__separator{height:1px;margin:var(--agd-space-1) 0;background:var(--agd-color-border)}.agd-toast-viewport{position:fixed;inset-block-end:var(--agd-space-4);inset-inline-end:var(--agd-space-4);z-index:70;display:grid;gap:var(--agd-space-2);width:min(24rem,calc(100vw - 2rem));margin:0;padding:0;list-style:none}.agd-toast{display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:var(--agd-space-3);padding:var(--agd-space-3) var(--agd-space-3) var(--agd-space-3) var(--agd-space-4);border:1px solid var(--agd-color-border);border-radius:var(--agd-radius-md);background:var(--agd-color-surface-raised);box-shadow:var(--agd-shadow-floating)}.agd-toast[data-state=open]{animation:agd-pop-in var(--agd-duration-base) var(--agd-easing-out)}.agd-toast__icon{margin-top:var(--agd-space-1)}.agd-toast--info .agd-toast__icon{color:var(--agd-color-accent)}.agd-toast--success .agd-toast__icon{color:var(--agd-color-success)}.agd-toast--warning .agd-toast__icon{color:var(--agd-color-warning)}.agd-toast--danger .agd-toast__icon{color:var(--agd-color-danger)}.agd-toast__title{font-weight:var(--agd-font-weight-medium)}.agd-toast__description{margin-top:var(--agd-space-1);color:var(--agd-color-text-muted)}.agd-tabs__list{display:flex;gap:var(--agd-space-1);border-bottom:1px solid var(--agd-color-border)}.agd-tabs__trigger{position:relative;min-height:var(--agd-control-h);padding:0 var(--agd-space-3);border:0;background:transparent;color:var(--agd-color-text-muted);font:inherit;cursor:pointer}.agd-tabs__trigger:hover{color:var(--agd-color-text)}.agd-tabs__trigger[data-state=active]{color:var(--agd-color-text);font-weight:var(--agd-font-weight-semibold)}.agd-tabs__trigger[data-state=active]:after{content:"";position:absolute;inset:auto var(--agd-space-3) -1px;height:2px;background:var(--agd-color-accent)}.agd-tabs__panel{padding-top:var(--agd-space-4)}.agd-shell{display:grid;grid-template-columns:var(--agd-size-sidebar) minmax(0,1fr);grid-template-rows:auto 1fr;grid-template-areas:"sidebar topbar" "sidebar content";min-height:100vh}.agd-shell__sidebar{grid-area:sidebar;display:flex;flex-direction:column;gap:var(--agd-space-4);padding:var(--agd-space-4) var(--agd-space-3);border-inline-end:1px solid var(--agd-color-border);background:var(--agd-color-surface-sunken)}.agd-shell__brand{margin:0;font-weight:var(--agd-font-weight-semibold)}.agd-shell__topbar{grid-area:topbar;display:flex;align-items:center;gap:var(--agd-space-3);min-height:var(--agd-size-topbar);padding:0 var(--agd-space-6);border-bottom:1px solid var(--agd-color-border);background:var(--agd-color-bg)}.agd-shell__title{min-width:0;flex:0 1 auto}.agd-shell__actions,.agd-shell__secondary{display:flex;align-items:center;gap:var(--agd-space-4)}.agd-shell__actions{margin-inline-start:auto}.agd-shell__more{display:none}.agd-shell__content{grid-area:content;min-width:0;padding:var(--agd-space-8) var(--agd-space-6) var(--agd-space-24);outline:none}.agd-shell__menu{display:none}.agd-shell[data-panel]{grid-template-rows:auto 1fr auto;grid-template-areas:"sidebar topbar" "sidebar content" "sidebar panel"}@media(min-width:64rem){.agd-shell[data-panel]{grid-template-columns:var(--agd-size-sidebar) minmax(0,1fr) var(--agd-size-panel);grid-template-rows:auto 1fr;grid-template-areas:"sidebar topbar topbar" "sidebar content panel"}}.agd-shell__panel{grid-area:panel;min-width:0;padding:var(--agd-space-6) var(--agd-space-4);border-block-start:1px solid var(--agd-color-border);background:var(--agd-color-surface-sunken)}@media(min-width:64rem){.agd-shell__panel{border-block-start:0;border-inline-start:1px solid var(--agd-color-border)}}@media(max-width:47.99rem){.agd-shell{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto 1fr;grid-template-areas:"topbar" "sidebar" "content"}.agd-shell__menu{display:inline-flex}.agd-shell[data-panel]{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto 1fr auto;grid-template-areas:"topbar" "sidebar" "content" "panel"}.agd-shell__sidebar[data-open=false]{display:none}.agd-shell__sidebar{border-inline-end:0;border-bottom:1px solid var(--agd-color-border)}.agd-shell__topbar,.agd-shell__content{padding-inline:var(--agd-space-4)}.agd-shell__topbar{flex-wrap:wrap;gap:var(--agd-space-2) var(--agd-space-3);padding-block:var(--agd-space-2)}.agd-shell__brand{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:var(--agd-space-1);margin:calc(var(--agd-space-1) * -1)}.agd-shell__title{flex:1 1 8rem;overflow-wrap:anywhere}.agd-shell__actions{flex-wrap:wrap;gap:var(--agd-space-2) var(--agd-space-3);min-width:0}.agd-shell__more{display:inline-flex}.agd-shell__secondary{flex:1 0 100%;justify-content:flex-end}.agd-shell__secondary[data-open=false]:not(:focus-within){display:none}}.agd-sidebar-nav{display:grid;gap:var(--agd-space-1);margin:0;padding:0;list-style:none}.agd-sidebar-nav__link{display:flex;align-items:center;gap:var(--agd-space-2);min-height:var(--agd-control-h);padding:0 var(--agd-space-3);border-radius:var(--agd-radius-md);color:var(--agd-color-text);text-decoration:none}.agd-sidebar-nav__link:hover{background:var(--agd-color-surface-hover)}.agd-sidebar-nav__link[aria-current=page]{background:var(--agd-color-accent-subtle);color:var(--agd-color-accent-text);font-weight:var(--agd-font-weight-semibold)}.agd-toolbar{display:inline-flex;align-items:center;gap:var(--agd-space-1);padding:var(--agd-space-1);border:1px solid var(--agd-color-border);border-radius:var(--agd-radius-md);background:var(--agd-color-surface)}.agd-toolbar__separator{align-self:stretch;width:1px;margin:var(--agd-space-1);background:var(--agd-color-border)}.agd-toolbar__group{display:inline-flex;align-items:center;gap:var(--agd-space-1)}.agd-button[aria-pressed=true]{box-shadow:inset 0 0 0 1px var(--button-border);font-weight:var(--agd-font-weight-semibold);--button-bg: var(--agd-color-accent-subtle);--button-bg-hover: var(--agd-color-accent-subtle);--button-fg: var(--agd-color-accent-text);--button-border: var(--agd-color-accent)}.agd-empty{display:grid;justify-items:center;gap:var(--agd-space-3);padding:var(--agd-space-12) var(--agd-space-6);text-align:center}.agd-empty__title{font-size:var(--agd-font-size-lg)}.agd-empty__description{max-width:28rem;color:var(--agd-color-text-muted)}.agd-files{margin:0;padding:0;list-style:none;border-top:1px solid var(--agd-color-border)}.agd-file-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto auto;align-items:center;gap:var(--agd-space-4);min-height:3rem;padding:var(--agd-space-1) var(--agd-space-2);border-bottom:1px solid var(--agd-color-border)}.agd-file-row:hover{background:var(--agd-color-surface-sunken)}.agd-file-row__icon{display:inline-flex;color:var(--agd-color-text-muted)}.agd-file-row__name{min-height:1.5rem;overflow:hidden;color:var(--agd-color-text);font-weight:var(--agd-font-weight-medium);text-overflow:ellipsis;white-space:nowrap}.agd-file-row__meta,.agd-file-row__time{display:inline-flex;align-items:center;gap:var(--agd-space-2);color:var(--agd-color-text-muted);font-size:var(--agd-font-size-xs)}.agd-file-row__actions{display:inline-flex}@media(max-width:47.99rem){.agd-file-row{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"icon name actions" ". meta meta" ". time time"}.agd-file-row__icon{grid-area:icon}.agd-file-row__name{grid-area:name}.agd-file-row__meta{grid-area:meta}.agd-file-row__time{grid-area:time}.agd-file-row__actions{grid-area:actions}}.agd-filetable{width:100%;table-layout:fixed;border-collapse:collapse;border-top:1px solid var(--agd-color-border)}.agd-filetable th,.agd-filetable td{padding:var(--agd-space-1) var(--agd-space-3);border-bottom:1px solid var(--agd-color-border);text-align:start;vertical-align:middle}.agd-filetable th{color:var(--agd-color-text-muted);font-size:var(--agd-font-size-xs);font-weight:var(--agd-font-weight-semibold)}.agd-filetable th:nth-child(1){width:36%}.agd-filetable th:nth-child(2){width:36%}.agd-filetable th:nth-child(3){width:16%}.agd-filetable th:nth-child(4){width:12%}.agd-filetable td{height:3rem}.agd-filetable td:first-child{overflow:hidden}.agd-filetable .agd-chip{flex-wrap:wrap;row-gap:0}.agd-filetable tbody tr:hover{background:var(--agd-color-surface-sunken)}.agd-filetable__sort{display:inline-flex;align-items:center;gap:var(--agd-space-1);min-height:var(--agd-control-h);padding:0 var(--agd-space-2);border:0;border-radius:var(--agd-radius-md);background:none;color:inherit;font:inherit;cursor:pointer}.agd-filetable__sort:hover{background:var(--agd-color-surface-hover)}.agd-filetable__arrow{display:inline-block;min-width:1ch}.agd-filetable__name{display:flex;align-items:center;gap:var(--agd-space-3);min-width:0}.agd-filetable__name .agd-file-row__name{min-width:0;flex:1 1 auto}.agd-filetable td:has(.agd-skeleton){padding-block:var(--agd-space-3)}.agd-filegrid-wrap{display:grid;gap:var(--agd-space-4)}.agd-filegrid-wrap>.agd-field{max-width:16rem}.agd-filegrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:var(--agd-space-4);margin:0;padding:0;list-style:none}.agd-filegrid__item{display:grid;align-content:start;gap:var(--agd-space-2);min-height:7rem;padding:var(--agd-space-3);border:1px solid var(--agd-color-border);border-radius:var(--agd-radius-md);background:var(--agd-color-surface)}.agd-filegrid__head{display:flex;align-items:center;gap:var(--agd-space-2);min-width:0}.agd-filegrid__item .agd-file-row__actions{justify-self:end}.agd-skeleton{display:block;height:1rem;border-radius:var(--agd-radius-sm);background:var(--agd-color-surface-hover);animation:agd-pulse 1.4s ease-in-out infinite}.agd-filegrid__item.agd-skeleton{height:auto;min-height:7rem;border:1px solid var(--agd-color-border);border-radius:var(--agd-radius-md)}@keyframes agd-pulse{50%{opacity:.5}}@media(max-width:47.99rem){.agd-filetable,.agd-filetable tbody,.agd-filetable tr,.agd-filetable thead{display:block}.agd-filetable thead tr{display:flex;flex-wrap:wrap}.agd-filetable thead th:last-child{display:none}.agd-filetable thead th{width:auto}.agd-filetable tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name actions" "owner owner" "time time";padding-block:var(--agd-space-1);border-bottom:1px solid var(--agd-color-border)}.agd-filetable tbody td{padding:var(--agd-space-1) var(--agd-space-3);border-bottom:0}.agd-filetable tbody td:nth-child(1){grid-area:name}.agd-filetable tbody td:nth-child(2){grid-area:owner}.agd-filetable tbody td:nth-child(3){grid-area:time}.agd-filetable tbody td:nth-child(4){grid-area:actions}}.agd-avatar{display:inline-grid;flex:none;place-items:center;width:1.5rem;height:1.5rem;border:1px solid var(--agd-color-border-strong);background:var(--agd-color-surface-sunken);color:var(--agd-color-text);font-size:var(--agd-font-size-xs);font-weight:var(--agd-font-weight-medium);line-height:1}.agd-avatar svg{width:.9rem;height:.9rem}.agd-avatar--person{border-radius:var(--agd-radius-full)}.agd-avatar--agent{border-color:var(--agd-color-agent);border-radius:var(--agd-radius-sm);background:var(--agd-color-agent-subtle);color:var(--agd-color-agent-text)}.agd-avatar--more{border-radius:var(--agd-radius-full);background:var(--agd-color-surface);color:var(--agd-color-text-muted)}.agd-chip{display:inline-flex;align-items:center;gap:var(--agd-space-2);max-width:100%;min-width:0}.agd-chip__name{overflow:hidden;color:var(--agd-color-text);font-weight:var(--agd-font-weight-medium);text-overflow:ellipsis;white-space:nowrap}.agd-chip__meta{color:var(--agd-color-text-muted);font-size:var(--agd-font-size-xs);min-width:0;overflow-wrap:anywhere}.agd-pill{flex:none;padding:.125rem var(--agd-space-2);border:1px solid var(--agd-color-agent);border-radius:var(--agd-radius-full);color:var(--agd-color-agent-text);font-size:var(--agd-font-size-xs);font-weight:var(--agd-font-weight-semibold);letter-spacing:.02em;line-height:1.2;text-transform:uppercase}.agd-agent-badge{display:inline-flex;align-items:center;gap:var(--agd-space-2);max-width:100%;padding:.125rem var(--agd-space-2) .125rem .125rem;border:1px solid var(--agd-color-agent);border-radius:var(--agd-radius-md);background:var(--agd-color-agent-subtle);color:var(--agd-color-agent-text);font-size:var(--agd-font-size-xs)}.agd-agent-badge--compact{padding:0;border:0;background:none}.agd-agent-badge__label{font-weight:var(--agd-font-weight-semibold);white-space:nowrap}.agd-agent-badge__meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agd-title{display:inline-grid;min-width:0;max-width:100%}.agd-title__button,.agd-title__input,.agd-title__text{min-width:0;padding:var(--agd-space-1) var(--agd-space-2);font:inherit;font-size:var(--agd-font-size-lg);font-weight:var(--agd-font-weight-semibold)}.agd-title__button{border:1px solid transparent;border-radius:var(--agd-radius-md);background:none;color:var(--agd-color-text);cursor:text;text-align:start}.agd-title__button:hover{border-color:var(--agd-color-border-strong)}.agd-title__text{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agd-title__input{width:min(28rem,100%);border:1px solid var(--agd-color-border-strong);border-radius:var(--agd-radius-md);background:var(--agd-color-surface-raised);color:var(--agd-color-text)}.agd-title__input[aria-invalid=true]{border-color:var(--agd-color-danger-text)}.agd-title__error{padding-inline:var(--agd-space-2);color:var(--agd-color-danger-text);font-size:var(--agd-font-size-xs)}.agd-stack{display:inline-flex;align-items:center;gap:var(--agd-space-3)}.agd-stack__list{display:flex;margin:0;padding:0;list-style:none}.agd-stack__list li+li{margin-inline-start:-.25rem}.agd-stack__list .agd-avatar{width:1.75rem;height:1.75rem;box-shadow:0 0 0 2px var(--agd-color-bg)}.agd-stack__summary{color:var(--agd-color-text-muted);font-size:var(--agd-font-size-xs);white-space:nowrap}@media(forced-colors:active){.agd-checkbox:checked,.agd-switch:checked{background:Highlight;border-color:Highlight}.agd-checkbox:before{background:HighlightText}.agd-switch{background:Canvas;border-color:ButtonText}.agd-switch:before{background:ButtonText}.agd-switch:checked:before{background:HighlightText}.agd-button[aria-busy=true]{border-style:dashed}.agd-button[aria-pressed=true]{background:Highlight;color:HighlightText;border-color:Highlight}.agd-tabs__trigger[data-state=active]:after{background:Highlight}.agd-skeleton{background:GrayText}.agd-filegrid__item,.agd-agent-badge,.agd-title__button:hover,.agd-title__input{border-color:CanvasText}.agd-agent-badge--compact{border:0}.agd-menu__item[data-highlighted]{outline:2px solid Highlight;outline-offset:-2px}}.agd-dialog:has(.agd-share){width:min(36rem,calc(100vw - 2rem))}.agd-share{display:grid;gap:var(--agd-space-4)}.agd-share__invite{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:start;gap:var(--agd-space-3)}.agd-share__invite .agd-field:first-child{grid-column:1 / -1}.agd-share__invite .agd-button{align-self:end}.agd-share__sent{color:var(--agd-color-success-text);font-size:var(--agd-font-size-xs)}.agd-share__people{display:grid;margin:0;padding:0;list-style:none;border-top:1px solid var(--agd-color-border)}.agd-share__people li{display:flex;align-items:center;justify-content:space-between;gap:var(--agd-space-3);padding:var(--agd-space-2) 0;border-bottom:1px solid var(--agd-color-border)}.agd-share__people .agd-field{min-width:9rem}.agd-share__controls{display:inline-flex;align-items:center;gap:var(--agd-space-2)}.agd-share__owner{padding-inline:var(--agd-space-3);color:var(--agd-color-text-muted)}.agd-share__row{display:grid;grid-template-columns:1fr 1fr;gap:var(--agd-space-3)}.agd-share__copy{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:var(--agd-space-3)}@media(max-width:30rem){.agd-share__invite,.agd-share__row,.agd-share__copy{grid-template-columns:1fr}}.agd-cursor{position:relative;display:inline-block;width:0;vertical-align:baseline;-webkit-user-select:none;user-select:none}.agd-cursor__caret{position:absolute;inset-block:-.2em -.15em;inset-inline-start:0;width:2px;background:var(--agd-color-accent)}.agd-cursor__tag{position:absolute;inset-block-end:1.45em;inset-inline-start:var(--agd-cursor-shift, 0px);padding:.0625rem var(--agd-space-2);border:1px solid var(--agd-color-accent);border-radius:var(--agd-radius-sm) var(--agd-radius-sm) var(--agd-radius-sm) 0;background:var(--agd-color-accent);color:var(--agd-color-text-on-accent);font-size:var(--agd-font-size-xs);font-weight:var(--agd-font-weight-medium);line-height:1.3;width:max-content;max-inline-size:calc(100vw - 1rem);overflow-wrap:anywhere}.agd-cursor--agent .agd-cursor__caret{background:var(--agd-color-agent)}.agd-cursor--agent .agd-cursor__tag{border-color:var(--agd-color-agent);border-radius:var(--agd-radius-sm);background:var(--agd-color-agent-subtle);color:var(--agd-color-agent-text)}.agd-datatable{display:grid;gap:var(--agd-space-3);min-width:0}.agd-datatable__frame{position:relative;border:1px solid var(--agd-color-border);border-radius:var(--agd-radius-md);background:var(--agd-color-surface);overflow:hidden}.agd-datatable__scroller{height:var(--agd-dt-height);overflow:auto;overscroll-behavior:contain}.agd-datatable__inner{min-width:var(--agd-dt-min)}.agd-datatable__head{position:sticky;top:0;z-index:1;background:var(--agd-color-surface-sunken)}.agd-datatable__head .agd-datatable__row{border-bottom:1px solid var(--agd-color-border)}.agd-datatable__row{box-sizing:border-box;display:grid;grid-template-columns:var(--agd-dt-cols);align-items:center;height:var(--agd-dt-row)}.agd-datatable__body{position:relative}.agd-datatable__row--body{position:absolute;inset-inline:0;border-bottom:1px solid var(--agd-color-border)}.agd-datatable__row--body:hover{background:var(--agd-color-surface-sunken)}.agd-datatable__row--body.agd-datatable__row--selected{background:var(--agd-color-accent-subtle)}.agd-datatable__row--body:focus-visible{outline:2px solid var(--agd-color-focus);outline-offset:-2px}.agd-datatable__cell{min-width:0;padding:0 var(--agd-space-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--agd-font-size-sm)}.agd-datatable__head .agd-datatable__cell{color:var(--agd-color-text-muted);font-size:var(--agd-font-size-xs);font-weight:var(--agd-font-weight-semibold)}.agd-datatable__cell--check{display:grid;place-items:center;padding:0}.agd-datatable__cell .agd-skeleton{width:70%}.agd-datatable__state{position:absolute;inset:var(--agd-dt-row) 0 0;display:grid;place-items:center}.agd-datatable__bar{position:absolute;inset-inline:var(--agd-space-3);inset-block-end:var(--agd-space-3);display:flex;flex-wrap:wrap;align-items:center;gap:var(--agd-space-3);padding:var(--agd-space-2) var(--agd-space-3);border:1px solid var(--agd-color-border);border-radius:var(--agd-radius-md);background:var(--agd-color-surface-raised);box-shadow:var(--agd-shadow-floating)}.agd-datatable__bar-count{font-size:var(--agd-font-size-sm);font-weight:var(--agd-font-weight-medium)}.agd-datatable__bar-actions{display:flex;flex:1;flex-wrap:wrap;gap:var(--agd-space-2)}@media(forced-colors:active){.agd-datatable__row--body.agd-datatable__row--selected{border-inline-start:.25rem solid Highlight}}.agd-datatable__group{position:absolute;inset-inline:0;display:grid;align-items:center;height:var(--agd-dt-row);background:var(--agd-color-surface-sunken);border-bottom:1px solid var(--agd-color-border);box-sizing:border-box}.agd-datatable__group-cell{padding:0 var(--agd-space-3);font-size:var(--agd-font-size-xs);font-weight:var(--agd-font-weight-semibold)}.agd-datatable__group-count{margin-inline-start:var(--agd-space-1);color:var(--agd-color-text-muted);font-weight:var(--agd-font-weight-regular)}.agd-datatoolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--agd-space-2)}.agd-datatoolbar__start,.agd-datatoolbar__end{display:flex;flex-wrap:wrap;align-items:center;gap:var(--agd-space-2);min-width:0}.agd-tablesearch{position:relative;display:flex;align-items:center}.agd-tablesearch__icon{position:absolute;inset-inline-start:var(--agd-space-3);color:var(--agd-color-text-muted);pointer-events:none}.agd-tablesearch__input{width:min(16rem,60vw);padding-inline-start:var(--agd-space-8);animation:agd-fade-in var(--agd-duration-base) var(--agd-easing-out)}.agd-filterchips,.agd-filterchips__list{display:flex;flex-wrap:wrap;align-items:center;gap:var(--agd-space-2);margin:0;padding:0;list-style:none}.agd-filterchip{display:inline-flex;align-items:center;gap:var(--agd-space-1);padding-inline-start:var(--agd-space-3);border:1px solid var(--agd-color-border-strong);border-radius:var(--agd-radius-full);background:var(--agd-color-surface);font-size:var(--agd-font-size-sm)}.agd-filterchip__label{padding-block:var(--agd-space-1)}.agd-filterchip__remove{border-radius:var(--agd-radius-full)}.agd-popover{z-index:60;padding:var(--agd-space-3);border:1px solid var(--agd-color-border);border-radius:var(--agd-radius-md);background:var(--agd-color-surface-raised);box-shadow:var(--agd-shadow-floating);animation:agd-pop-in var(--agd-duration-fast) var(--agd-easing-out)}.agd-display{display:grid;gap:var(--agd-space-3);width:min(20rem,calc(100vw - 2rem))}.agd-display__order{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--agd-space-2)}.agd-display__columns{display:grid;gap:var(--agd-space-1);margin:0;padding:0;border:0}.agd-display__columns legend{padding:0;margin-block-end:var(--agd-space-1);font-weight:var(--agd-font-weight-medium)}.agd-display .agd-button[aria-disabled=true]{--button-bg: var(--agd-color-surface-sunken);--button-bg-hover: var(--agd-color-surface-sunken);--button-fg: var(--agd-color-text-muted);--button-border: var(--agd-color-border);border-style:dashed;cursor:not-allowed}.agd-appsidebar{display:flex;flex-direction:column;gap:var(--agd-space-2);flex:none;box-sizing:border-box;width:var(--agd-size-sidebar);padding:var(--agd-space-2);border-inline-end:1px solid var(--agd-color-border);background:var(--agd-color-surface-sunken)}.agd-appsidebar[data-ready]{transition:width var(--agd-duration-base) var(--agd-easing-out)}@media(max-width:47.99rem){.agd-appsidebar:not([data-collapsed=true]){max-width:60vw}}.agd-appsidebar[data-collapsed=true]{width:var(--agd-size-sidebar-rail);align-items:center;padding-inline:var(--agd-space-1)}.agd-appsidebar__toggle{align-self:flex-start}.agd-appsidebar[data-collapsed=true] .agd-appsidebar__toggle{align-self:center}.agd-appsidebar__content{flex:1;box-sizing:border-box;padding:var(--agd-space-1);min-width:0;min-height:0;width:100%;overflow-x:hidden;overflow-y:auto}.agd-appsidebar__content[hidden]{display:none}.drive-main{max-width:72rem}.drive-muted{color:var(--agd-color-text-muted)}.drive-status{display:flex;align-items:center;gap:var(--agd-space-2);color:var(--agd-color-text-muted)}.drive-signin{display:grid;gap:var(--agd-space-4);max-width:24rem}.drive-form{display:grid;gap:var(--agd-space-4)}.drive-form__actions{display:flex;justify-content:flex-end;gap:var(--agd-space-2)}.drive-drop{min-height:60vh;border:2px dashed transparent;border-radius:var(--agd-radius-md);padding:var(--agd-space-2)}.drive-drop--over{border-color:var(--agd-color-accent);background:var(--agd-color-accent-subtle)}.drive-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--agd-space-4);flex-wrap:wrap;margin-bottom:var(--agd-space-4)}.drive-bar h1{margin:0;font-size:var(--agd-font-size-xl);overflow-wrap:anywhere}.drive-crumbs ol{display:flex;flex-wrap:wrap;gap:var(--agd-space-2);list-style:none;margin:0 0 var(--agd-space-2);padding:0;color:var(--agd-color-text-muted)}.drive-crumbs li+li:before{content:"/";margin-right:var(--agd-space-2)}.drive-crumbs [aria-current=page]{color:var(--agd-color-text);font-weight:var(--agd-font-weight-semibold)}.drive-split{display:grid;grid-template-columns:14rem minmax(0,1fr);gap:var(--agd-space-6)}@media(max-width:48rem){.drive-split{grid-template-columns:1fr}}.drive-tree{list-style:none;margin:0;padding:0}.drive-tree .drive-tree{padding-left:var(--agd-space-4)}.drive-tree a{display:flex;align-items:center;gap:var(--agd-space-2);padding:var(--agd-space-1) var(--agd-space-2);border-radius:var(--agd-radius-sm);color:var(--agd-color-text);text-decoration:none}.drive-tree a:hover{background:var(--agd-color-surface-hover)}.drive-tree a[aria-current=page]{background:var(--agd-color-accent-subtle);color:var(--agd-color-accent-text);font-weight:var(--agd-font-weight-semibold)}.drive-tree svg{width:1rem;height:1rem;flex:none}.drive-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));gap:var(--agd-space-4);list-style:none;margin:0;padding:0}.drive-card{position:relative;display:grid;gap:var(--agd-space-2);padding:var(--agd-space-4);border:1px solid var(--agd-color-border);border-radius:var(--agd-radius-md);background:var(--agd-color-surface)}.drive-card__icon svg{width:2rem;height:2rem}.drive-card__name{overflow-wrap:anywhere;font-weight:var(--agd-font-weight-medium);color:var(--agd-color-text)}.drive-card__meta{font-size:var(--agd-font-size-sm);color:var(--agd-color-text-muted)}.drive-card__actions{display:flex;align-items:center;justify-content:space-between;gap:var(--agd-space-2)}.drive-root{display:grid;grid-template-columns:12rem minmax(0,1fr);gap:var(--agd-space-6);color:var(--agd-color-text)}@media(max-width:48rem){.drive-root{grid-template-columns:1fr}}.drive-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.drive-tools{display:flex;justify-content:flex-end;margin-bottom:var(--agd-space-2)}.drive-search{display:flex;align-items:center;gap:var(--agd-space-2)}.drive-search__input{min-width:14rem;min-height:2.25rem;padding:0 var(--agd-space-3);border:1px solid var(--agd-color-border);border-radius:var(--agd-radius-md);background:var(--agd-color-surface);color:var(--agd-color-text);font:inherit}.drive-search__input:focus-visible,.drive-sort:focus-visible{outline:2px solid var(--agd-color-accent);outline-offset:2px}.drive-table{width:100%;border-collapse:collapse}.drive-table th{padding:var(--agd-space-2) var(--agd-space-3);text-align:left;font-size:var(--agd-font-size-sm);font-weight:var(--agd-font-weight-medium);color:var(--agd-color-text-muted);border-bottom:1px solid var(--agd-color-border)}.drive-table td{padding:var(--agd-space-2) var(--agd-space-3);border-bottom:1px solid var(--agd-color-border);vertical-align:middle}.drive-table .drive-table__date{color:var(--agd-color-text-muted);white-space:nowrap}.drive-table__check{width:2.5rem}.drive-table__name{display:flex;align-items:center;gap:var(--agd-space-2);overflow-wrap:anywhere}.drive-table__name a{color:var(--agd-color-text);font-weight:var(--agd-font-weight-medium);text-decoration:none}.drive-table__name a:hover{text-decoration:underline}.drive-table__icon svg{width:1.25rem;height:1.25rem;color:var(--agd-color-text-muted)}.drive-table__actions>*{vertical-align:middle}.drive-table__actions{text-align:right;white-space:nowrap}.drive-row:hover,.drive-row[data-selected]{background:var(--agd-color-surface-sunken)}.drive-sort{all:unset;cursor:pointer;border-radius:var(--agd-radius-sm)}.drive-bulk{position:fixed;inset:auto 0 var(--agd-space-4);margin-inline:auto;width:max-content;max-width:calc(100vw - 2rem);display:flex;align-items:center;gap:var(--agd-space-3);padding:var(--agd-space-2) var(--agd-space-4);border:1px solid var(--agd-color-border);border-radius:var(--agd-radius-md);background:var(--agd-color-surface);box-shadow:0 4px 16px #00000029;z-index:20}@media(max-width:40rem){.drive-table .drive-table__who{display:none}}.drive-title{display:flex;align-items:center;gap:var(--agd-space-3);flex-wrap:wrap;min-width:0}.drive-title h1{margin:0}.drive-drop--bulk{padding-bottom:6rem}html:has(.drive-bulk){scroll-padding-bottom:6rem}.agd-checkbox:indeterminate{background-color:var(--agd-color-accent);border-color:var(--agd-color-accent);background-image:linear-gradient(var(--agd-color-surface),var(--agd-color-surface));background-size:60% 2px;background-repeat:no-repeat;background-position:center}.drive-activity{list-style:none;margin:0;padding:0;display:grid;gap:var(--agd-space-2)}.drive-activity li{padding:var(--agd-space-2) 0;border-bottom:1px solid var(--agd-color-border)}.drive-activity time{color:var(--agd-color-text-muted);font-size:.875em}
1
+ @font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root,[data-theme=light]{color-scheme:light;--agd-color-bg: #FAFAFA;--agd-color-surface: #FFFFFF;--agd-color-surface-raised: #FFFFFF;--agd-color-surface-sunken: #F4F4F5;--agd-color-surface-hover: #ECECEE;--agd-color-text: #1D1D20;--agd-color-text-muted: #52525B;--agd-color-text-on-accent: #FFFFFF;--agd-color-border: #E4E4E7;--agd-color-border-strong: #82828B;--agd-color-accent: #4F46E5;--agd-color-accent-hover: #4338CA;--agd-color-accent-subtle: #EEF0FF;--agd-color-accent-text: #4338CA;--agd-color-agent: #8E2C86;--agd-color-agent-subtle: #F7E8F5;--agd-color-agent-text: #7A2273;--agd-color-danger: #B42318;--agd-color-danger-subtle: #FDECEA;--agd-color-danger-text: #A11D14;--agd-color-warning: #92520A;--agd-color-warning-subtle: #FDF1DC;--agd-color-warning-text: #7A4208;--agd-color-success: #1B6B3A;--agd-color-success-subtle: #E6F5EC;--agd-color-success-text: #175C32;--agd-color-focus: #4F46E5;--agd-color-scrim: rgb(24 24 27 / .32);--agd-shadow-raised: 0 1px 2px rgb(24 24 27 / .04), 0 2px 8px rgb(24 24 27 / .05);--agd-shadow-floating: 0 2px 4px rgb(24 24 27 / .04), 0 8px 24px rgb(24 24 27 / .1)}:root{--agd-space-1: .25rem;--agd-space-2: .5rem;--agd-space-3: .75rem;--agd-space-4: 1rem;--agd-space-6: 1.5rem;--agd-space-8: 2rem;--agd-space-12: 3rem;--agd-space-16: 4rem;--agd-space-24: 6rem;--agd-radius-sm: .25rem;--agd-radius-md: .5rem;--agd-radius-lg: 1rem;--agd-radius-full: 9999px;--agd-font-family-sans: "Inter Variable", ui-sans-serif, system-ui, sans-serif;--agd-font-family-mono: "JetBrains Mono Variable", ui-monospace, "SF Mono", Menlo, monospace;--agd-font-size-xs: .75rem;--agd-font-size-sm: .875rem;--agd-font-size-md: 1rem;--agd-font-size-lg: 1.125rem;--agd-font-size-xl: 1.375rem;--agd-font-size-2xl: 1.75rem;--agd-line-height-tight: 1.25;--agd-line-height-snug: 1.4;--agd-line-height-normal: 1.55;--agd-font-weight-regular: 400;--agd-font-weight-medium: 500;--agd-font-weight-semibold: 600;--agd-duration-fast: .1s;--agd-duration-base: .16s;--agd-duration-slow: .24s;--agd-easing-out: cubic-bezier(.16, 1, .3, 1);--agd-size-control: 2.25rem;--agd-size-control-touch: 2.75rem;--agd-size-sidebar: 16rem;--agd-size-sidebar-rail: 3.5rem;--agd-size-panel: 20rem;--agd-size-topbar: 3rem;--agd-size-content: 46rem}@media(prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--agd-color-bg: #151517;--agd-color-surface: #1B1B1E;--agd-color-surface-raised: #232326;--agd-color-surface-sunken: #101012;--agd-color-surface-hover: #2C2C31;--agd-color-text: #ECECEE;--agd-color-text-muted: #A1A1AA;--agd-color-text-on-accent: #14142E;--agd-color-border: #2C2C31;--agd-color-border-strong: #7E7E88;--agd-color-accent: #90A4FF;--agd-color-accent-hover: #A9B8FF;--agd-color-accent-subtle: #26264F;--agd-color-accent-text: #C3CDFF;--agd-color-agent: #E49BDC;--agd-color-agent-subtle: #3A1F37;--agd-color-agent-text: #F0B8E9;--agd-color-danger: #F2877D;--agd-color-danger-subtle: #3B1A17;--agd-color-danger-text: #F8A39B;--agd-color-warning: #E8B04A;--agd-color-warning-subtle: #3A2A0F;--agd-color-warning-text: #F0C677;--agd-color-success: #6FCF97;--agd-color-success-subtle: #14301F;--agd-color-success-text: #8BDBAC;--agd-color-focus: #A9B8FF;--agd-color-scrim: rgb(0 0 0 / .6);--agd-shadow-raised: 0 1px 2px rgb(0 0 0 / .3), 0 2px 16px rgb(0 0 0 / .3);--agd-shadow-floating: 0 2px 6px rgb(0 0 0 / .3), 0 8px 40px rgb(0 0 0 / .5)}}[data-theme=dark]{color-scheme:dark;--agd-color-bg: #151517;--agd-color-surface: #1B1B1E;--agd-color-surface-raised: #232326;--agd-color-surface-sunken: #101012;--agd-color-surface-hover: #2C2C31;--agd-color-text: #ECECEE;--agd-color-text-muted: #A1A1AA;--agd-color-text-on-accent: #14142E;--agd-color-border: #2C2C31;--agd-color-border-strong: #7E7E88;--agd-color-accent: #90A4FF;--agd-color-accent-hover: #A9B8FF;--agd-color-accent-subtle: #26264F;--agd-color-accent-text: #C3CDFF;--agd-color-agent: #E49BDC;--agd-color-agent-subtle: #3A1F37;--agd-color-agent-text: #F0B8E9;--agd-color-danger: #F2877D;--agd-color-danger-subtle: #3B1A17;--agd-color-danger-text: #F8A39B;--agd-color-warning: #E8B04A;--agd-color-warning-subtle: #3A2A0F;--agd-color-warning-text: #F0C677;--agd-color-success: #6FCF97;--agd-color-success-subtle: #14301F;--agd-color-success-text: #8BDBAC;--agd-color-focus: #A9B8FF;--agd-color-scrim: rgb(0 0 0 / .6);--agd-shadow-raised: 0 1px 2px rgb(0 0 0 / .3), 0 2px 16px rgb(0 0 0 / .3);--agd-shadow-floating: 0 2px 6px rgb(0 0 0 / .3), 0 8px 40px rgb(0 0 0 / .5)}@media(prefers-reduced-motion:reduce){:root{--agd-duration-fast: .01ms;--agd-duration-base: .01ms;--agd-duration-slow: .01ms}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;background:var(--agd-color-bg);color:var(--agd-color-text);font-family:var(--agd-font-family-sans);font-size:var(--agd-font-size-sm);line-height:var(--agd-line-height-normal);font-feature-settings:"cv11","ss03";-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;line-height:var(--agd-line-height-tight);font-weight:var(--agd-font-weight-semibold);text-wrap:balance}h1{font-size:var(--agd-font-size-2xl);letter-spacing:-.015em}h2{font-size:var(--agd-font-size-xl);letter-spacing:-.01em}h3{font-size:var(--agd-font-size-lg)}h4{font-size:var(--agd-font-size-md)}p{margin:0;text-wrap:pretty}a{color:var(--agd-color-accent-text);text-underline-offset:.2em}code,kbd,pre{font-family:var(--agd-font-family-mono);font-size:.9em}:focus-visible{outline:2px solid var(--agd-color-focus);outline-offset:2px}::selection{background:var(--agd-color-accent-subtle);color:var(--agd-color-accent-text)}.agd-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.agd-skip-link{position:absolute;inset-block-start:var(--agd-space-2);inset-inline-start:var(--agd-space-2);z-index:100;padding:var(--agd-space-2) var(--agd-space-4);border-radius:var(--agd-radius-md);background:var(--agd-color-surface-raised);color:var(--agd-color-text);box-shadow:var(--agd-shadow-floating);transform:translateY(-200%)}.agd-skip-link:focus{transform:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}:root{--agd-control-h: var(--agd-size-control)}@media(pointer:coarse){:root{--agd-control-h: var(--agd-size-control-touch)}}.agd-button{--button-bg: var(--agd-color-surface);--button-bg-hover: var(--agd-color-surface-hover);--button-bg-active: var(--agd-color-surface-sunken);--button-fg: var(--agd-color-text);--button-border: var(--agd-color-border);display:inline-flex;align-items:center;justify-content:center;gap:var(--agd-space-2);min-height:var(--agd-control-h);padding:0 var(--agd-space-4);border:1px solid var(--button-border);border-radius:var(--agd-radius-md);background:var(--button-bg);color:var(--button-fg);font:inherit;font-weight:var(--agd-font-weight-medium);line-height:1;white-space:nowrap;cursor:pointer;transition:background-color var(--agd-duration-fast) var(--agd-easing-out)}.agd-button:hover{background:var(--button-bg-hover)}.agd-button:active{background:var(--button-bg-active)}.agd-button--sm{min-height:1.75rem;padding:0 var(--agd-space-3);font-size:var(--agd-font-size-xs)}@media(pointer:coarse){.agd-button--sm{min-height:var(--agd-control-h)}}.agd-button--primary{--button-bg: var(--agd-color-accent);--button-bg-hover: var(--agd-color-accent-hover);--button-bg-active: var(--agd-color-accent-hover);--button-fg: var(--agd-color-text-on-accent);--button-border: transparent}.agd-button--ghost{--button-bg: transparent;--button-border: transparent}.agd-button--danger{--button-bg-hover: var(--agd-color-danger-subtle);--button-bg-active: var(--agd-color-danger-subtle);--button-fg: var(--agd-color-danger-text);--button-border: var(--agd-color-border)}.agd-button:disabled{--button-bg: var(--agd-color-surface-sunken);--button-bg-hover: var(--agd-color-surface-sunken);--button-fg: var(--agd-color-text-muted);--button-border: var(--agd-color-border);border-style:dashed;cursor:not-allowed}.agd-button[aria-busy=true]{cursor:progress}.agd-icon-button{width:var(--agd-control-h);padding:0}.agd-icon-button.agd-button--sm{width:1.75rem}@media(pointer:coarse){.agd-icon-button.agd-button--sm{width:var(--agd-control-h)}}.agd-spinner{width:1em;height:1em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:agd-spin .7s linear infinite}@keyframes agd-spin{to{transform:rotate(360deg)}}.agd-field{display:grid;gap:var(--agd-space-1)}.agd-field__label{font-weight:var(--agd-font-weight-medium)}.agd-field__hint{color:var(--agd-color-text-muted);font-size:var(--agd-font-size-xs)}.agd-field__error{display:flex;align-items:flex-start;gap:var(--agd-space-1);color:var(--agd-color-danger-text);font-size:var(--agd-font-size-xs)}.agd-field__error svg{flex:none;margin-top:-.1em}.agd-input{width:100%;min-height:var(--agd-control-h);padding:0 var(--agd-space-3);border:1px solid var(--agd-color-border-strong);border-radius:var(--agd-radius-md);background:var(--agd-color-surface);color:var(--agd-color-text);font:inherit}.agd-input::placeholder{color:var(--agd-color-text-muted);opacity:1}.agd-input:hover:not(:disabled){background:var(--agd-color-surface-sunken)}.agd-input[aria-invalid=true]{border-color:var(--agd-color-danger);box-shadow:inset 0 0 0 1px var(--agd-color-danger)}.agd-input:disabled{background:var(--agd-color-surface-sunken);border-color:var(--agd-color-border);color:var(--agd-color-text-muted);cursor:not-allowed}.agd-textarea{min-height:5rem;padding:var(--agd-space-2) var(--agd-space-3);resize:vertical}.agd-select{position:relative;display:block}.agd-select select{appearance:none;padding-inline-end:var(--agd-space-8);cursor:pointer}.agd-select:after{content:"";position:absolute;inset-inline-end:var(--agd-space-3);inset-block-start:50%;width:.45rem;height:.45rem;border:solid var(--agd-color-text-muted);border-width:0 2px 2px 0;transform:translateY(-75%) rotate(45deg);pointer-events:none}.agd-toggle{display:grid;gap:var(--agd-space-1)}.agd-toggle__row{display:flex;align-items:center;gap:var(--agd-space-3);min-height:var(--agd-control-h);cursor:pointer}.agd-checkbox,.agd-switch{appearance:none;flex:none;margin:0;border:1px solid var(--agd-color-border-strong);background:var(--agd-color-surface);cursor:pointer;transition:background-color var(--agd-duration-fast) var(--agd-easing-out)}.agd-checkbox{display:grid;place-items:center;width:1.25rem;height:1.25rem;border-radius:var(--agd-radius-sm)}.agd-checkbox:before{content:"";width:.75rem;height:.75rem;background:var(--agd-color-text-on-accent);clip-path:polygon(14% 52%,0 66%,38% 100%,100% 20%,86% 8%,38% 72%);transform:scale(0);transition:transform var(--agd-duration-fast) var(--agd-easing-out)}.agd-checkbox:checked{background:var(--agd-color-accent);border-color:var(--agd-color-accent)}.agd-checkbox:checked:before{transform:scale(1)}.agd-switch{position:relative;width:2.25rem;height:1.375rem;border-radius:var(--agd-radius-full);background:var(--agd-color-surface-sunken)}.agd-switch:before{content:"";position:absolute;inset-block-start:50%;inset-inline-start:.2rem;width:.875rem;height:.875rem;border-radius:var(--agd-radius-full);background:var(--agd-color-text-muted);transform:translateY(-50%);transition:inset-inline-start var(--agd-duration-base) var(--agd-easing-out)}.agd-switch:checked{background:var(--agd-color-accent);border-color:var(--agd-color-accent)}.agd-switch:checked:before{background:var(--agd-color-text-on-accent);inset-inline-start:calc(100% - 1.075rem)}.agd-checkbox:disabled,.agd-switch:disabled{background:var(--agd-color-surface-sunken);border-color:var(--agd-color-border);cursor:not-allowed}.agd-checkbox:disabled:before{background:var(--agd-color-text-muted)}.agd-switch:disabled:before{background:var(--agd-color-border)}@keyframes agd-fade-in{0%{opacity:0}}@keyframes agd-pop-in{0%{opacity:0;scale:.97}}.agd-overlay{position:fixed;z-index:50;inset:0;background:var(--agd-color-scrim);animation:agd-fade-in var(--agd-duration-base) var(--agd-easing-out)}.agd-dialog{position:fixed;z-index:50;inset:0;margin:auto;width:min(32rem,calc(100vw - 2rem));height:fit-content;max-height:calc(100vh - 2rem);overflow:auto;padding:var(--agd-space-8);border:1px solid var(--agd-color-border);border-radius:var(--agd-radius-lg);background:var(--agd-color-surface-raised);box-shadow:var(--agd-shadow-floating);animation:agd-pop-in var(--agd-duration-base) var(--agd-easing-out)}.agd-dialog__title{padding-inline-end:var(--agd-space-8);font-size:var(--agd-font-size-lg)}.agd-dialog__description{margin-top:var(--agd-space-2);color:var(--agd-color-text-muted)}.agd-dialog__body{margin-top:var(--agd-space-4)}.agd-dialog__footer{display:flex;justify-content:flex-end;gap:var(--agd-space-2);margin-top:var(--agd-space-8)}.agd-dialog__close{position:absolute;inset-block-start:var(--agd-space-3);inset-inline-end:var(--agd-space-3)}.agd-tooltip{z-index:60;max-width:16rem;padding:var(--agd-space-1) var(--agd-space-2);border-radius:var(--agd-radius-sm);background:var(--agd-color-text);color:var(--agd-color-bg);font-size:var(--agd-font-size-xs);animation:agd-fade-in var(--agd-duration-fast) var(--agd-easing-out)}.agd-menu{z-index:60;min-width:11rem;padding:var(--agd-space-2);border:1px solid var(--agd-color-border);border-radius:var(--agd-radius-lg);background:var(--agd-color-surface-raised);box-shadow:var(--agd-shadow-floating);animation:agd-pop-in var(--agd-duration-fast) var(--agd-easing-out)}.agd-menu__item{display:flex;align-items:center;gap:var(--agd-space-2);min-height:var(--agd-control-h);padding:0 var(--agd-space-3);border-radius:var(--agd-radius-md);color:var(--agd-color-text);cursor:pointer;outline:none;-webkit-user-select:none;user-select:none}.agd-menu__item[data-highlighted]{background:var(--agd-color-surface-hover)}.agd-menu__item[data-highlighted]:focus-visible,.agd-menu__item:focus-visible{outline:2px solid var(--agd-color-focus);outline-offset:-2px}.agd-menu__item[data-disabled]{color:var(--agd-color-text-muted);cursor:not-allowed}.agd-menu__item--danger{color:var(--agd-color-danger-text)}.agd-menu__shortcut{margin-inline-start:auto;color:var(--agd-color-text-muted);font-size:var(--agd-font-size-xs)}.agd-menu__separator{height:1px;margin:var(--agd-space-1) 0;background:var(--agd-color-border)}.agd-toast-viewport{position:fixed;inset-block-end:var(--agd-space-4);inset-inline-end:var(--agd-space-4);z-index:70;display:grid;gap:var(--agd-space-2);width:min(24rem,calc(100vw - 2rem));margin:0;padding:0;list-style:none}.agd-toast{display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:var(--agd-space-3);padding:var(--agd-space-3) var(--agd-space-3) var(--agd-space-3) var(--agd-space-4);border:1px solid var(--agd-color-border);border-radius:var(--agd-radius-md);background:var(--agd-color-surface-raised);box-shadow:var(--agd-shadow-floating)}.agd-toast[data-state=open]{animation:agd-pop-in var(--agd-duration-base) var(--agd-easing-out)}.agd-toast__icon{margin-top:var(--agd-space-1)}.agd-toast--info .agd-toast__icon{color:var(--agd-color-accent)}.agd-toast--success .agd-toast__icon{color:var(--agd-color-success)}.agd-toast--warning .agd-toast__icon{color:var(--agd-color-warning)}.agd-toast--danger .agd-toast__icon{color:var(--agd-color-danger)}.agd-toast__title{font-weight:var(--agd-font-weight-medium)}.agd-toast__description{margin-top:var(--agd-space-1);color:var(--agd-color-text-muted)}.agd-tabs__list{display:flex;gap:var(--agd-space-1);border-bottom:1px solid var(--agd-color-border)}.agd-tabs__trigger{position:relative;min-height:var(--agd-control-h);padding:0 var(--agd-space-3);border:0;background:transparent;color:var(--agd-color-text-muted);font:inherit;cursor:pointer}.agd-tabs__trigger:hover{color:var(--agd-color-text)}.agd-tabs__trigger[data-state=active]{color:var(--agd-color-text);font-weight:var(--agd-font-weight-semibold)}.agd-tabs__trigger[data-state=active]:after{content:"";position:absolute;inset:auto var(--agd-space-3) -1px;height:2px;background:var(--agd-color-accent)}.agd-tabs__panel{padding-top:var(--agd-space-4)}.agd-shell{display:grid;grid-template-columns:var(--agd-size-sidebar) minmax(0,1fr);grid-template-rows:auto 1fr;grid-template-areas:"sidebar topbar" "sidebar content";min-height:100vh}.agd-shell__sidebar{grid-area:sidebar;display:flex;flex-direction:column;gap:var(--agd-space-4);padding:var(--agd-space-4) var(--agd-space-3);border-inline-end:1px solid var(--agd-color-border);background:var(--agd-color-surface-sunken)}.agd-shell__brand{margin:0;font-weight:var(--agd-font-weight-semibold)}.agd-shell__topbar{grid-area:topbar;display:flex;align-items:center;gap:var(--agd-space-3);min-height:var(--agd-size-topbar);padding:0 var(--agd-space-6);border-bottom:1px solid var(--agd-color-border);background:var(--agd-color-bg)}.agd-shell__title{min-width:0;flex:0 1 auto}.agd-shell__actions,.agd-shell__secondary{display:flex;align-items:center;gap:var(--agd-space-4)}.agd-shell__actions{margin-inline-start:auto}.agd-shell__more{display:none}.agd-shell__content{grid-area:content;min-width:0;padding:var(--agd-space-8) var(--agd-space-6) var(--agd-space-24);outline:none}.agd-shell__menu{display:none}.agd-shell[data-panel]{grid-template-rows:auto 1fr auto;grid-template-areas:"sidebar topbar" "sidebar content" "sidebar panel"}@media(min-width:64rem){.agd-shell[data-panel]{grid-template-columns:var(--agd-size-sidebar) minmax(0,1fr) var(--agd-size-panel);grid-template-rows:auto 1fr;grid-template-areas:"sidebar topbar topbar" "sidebar content panel"}}.agd-shell__panel{grid-area:panel;min-width:0;padding:var(--agd-space-6) var(--agd-space-4);border-block-start:1px solid var(--agd-color-border);background:var(--agd-color-surface-sunken)}@media(min-width:64rem){.agd-shell__panel{border-block-start:0;border-inline-start:1px solid var(--agd-color-border)}}@media(max-width:47.99rem){.agd-shell{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto 1fr;grid-template-areas:"topbar" "sidebar" "content"}.agd-shell__menu{display:inline-flex}.agd-shell[data-panel]{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto 1fr auto;grid-template-areas:"topbar" "sidebar" "content" "panel"}.agd-shell__sidebar[data-open=false]{display:none}.agd-shell__sidebar{border-inline-end:0;border-bottom:1px solid var(--agd-color-border)}.agd-shell__topbar,.agd-shell__content{padding-inline:var(--agd-space-4)}.agd-shell__topbar{flex-wrap:wrap;gap:var(--agd-space-2) var(--agd-space-3);padding-block:var(--agd-space-2)}.agd-shell__brand{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:var(--agd-space-1);margin:calc(var(--agd-space-1) * -1)}.agd-shell__title{flex:1 1 8rem;overflow-wrap:anywhere}.agd-shell__actions{flex-wrap:wrap;gap:var(--agd-space-2) var(--agd-space-3);min-width:0}.agd-shell__more{display:inline-flex}.agd-shell__secondary{flex:1 0 100%;justify-content:flex-end}.agd-shell__secondary[data-open=false]:not(:focus-within){display:none}}.agd-sidebar-nav{display:grid;gap:var(--agd-space-1);margin:0;padding:0;list-style:none}.agd-sidebar-nav__link{display:flex;align-items:center;gap:var(--agd-space-2);min-height:var(--agd-control-h);padding:0 var(--agd-space-3);border-radius:var(--agd-radius-md);color:var(--agd-color-text);text-decoration:none}.agd-sidebar-nav__link:hover{background:var(--agd-color-surface-hover)}.agd-sidebar-nav__link[aria-current=page]{background:var(--agd-color-accent-subtle);color:var(--agd-color-accent-text);font-weight:var(--agd-font-weight-semibold)}.agd-toolbar{display:inline-flex;align-items:center;gap:var(--agd-space-1);padding:var(--agd-space-1);border:1px solid var(--agd-color-border);border-radius:var(--agd-radius-md);background:var(--agd-color-surface)}.agd-toolbar__separator{align-self:stretch;width:1px;margin:var(--agd-space-1);background:var(--agd-color-border)}.agd-toolbar__group{display:inline-flex;align-items:center;gap:var(--agd-space-1)}.agd-button[aria-pressed=true]{box-shadow:inset 0 0 0 1px var(--button-border);font-weight:var(--agd-font-weight-semibold);--button-bg: var(--agd-color-accent-subtle);--button-bg-hover: var(--agd-color-accent-subtle);--button-fg: var(--agd-color-accent-text);--button-border: var(--agd-color-accent)}.agd-empty{display:grid;justify-items:center;gap:var(--agd-space-3);padding:var(--agd-space-12) var(--agd-space-6);text-align:center}.agd-empty__title{font-size:var(--agd-font-size-lg)}.agd-empty__description{max-width:28rem;color:var(--agd-color-text-muted)}.agd-files{margin:0;padding:0;list-style:none;border-top:1px solid var(--agd-color-border)}.agd-file-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto auto;align-items:center;gap:var(--agd-space-4);min-height:3rem;padding:var(--agd-space-1) var(--agd-space-2);border-bottom:1px solid var(--agd-color-border)}.agd-file-row:hover{background:var(--agd-color-surface-sunken)}.agd-file-row__icon{display:inline-flex;color:var(--agd-color-text-muted)}.agd-file-row__name{min-height:1.5rem;overflow:hidden;color:var(--agd-color-text);font-weight:var(--agd-font-weight-medium);text-overflow:ellipsis;white-space:nowrap}.agd-file-row__meta,.agd-file-row__time{display:inline-flex;align-items:center;gap:var(--agd-space-2);color:var(--agd-color-text-muted);font-size:var(--agd-font-size-xs)}.agd-file-row__actions{display:inline-flex}@media(max-width:47.99rem){.agd-file-row{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"icon name actions" ". meta meta" ". time time"}.agd-file-row__icon{grid-area:icon}.agd-file-row__name{grid-area:name}.agd-file-row__meta{grid-area:meta}.agd-file-row__time{grid-area:time}.agd-file-row__actions{grid-area:actions}}.agd-filetable{width:100%;table-layout:fixed;border-collapse:collapse;border-top:1px solid var(--agd-color-border)}.agd-filetable th,.agd-filetable td{padding:var(--agd-space-1) var(--agd-space-3);border-bottom:1px solid var(--agd-color-border);text-align:start;vertical-align:middle}.agd-filetable th{color:var(--agd-color-text-muted);font-size:var(--agd-font-size-xs);font-weight:var(--agd-font-weight-semibold)}.agd-filetable th:nth-child(1){width:36%}.agd-filetable th:nth-child(2){width:36%}.agd-filetable th:nth-child(3){width:16%}.agd-filetable th:nth-child(4){width:12%}.agd-filetable td{height:3rem}.agd-filetable td:first-child{overflow:hidden}.agd-filetable .agd-chip{flex-wrap:wrap;row-gap:0}.agd-filetable tbody tr:hover{background:var(--agd-color-surface-sunken)}.agd-filetable__sort{display:inline-flex;align-items:center;gap:var(--agd-space-1);min-height:var(--agd-control-h);padding:0 var(--agd-space-2);border:0;border-radius:var(--agd-radius-md);background:none;color:inherit;font:inherit;cursor:pointer}.agd-filetable__sort:hover{background:var(--agd-color-surface-hover)}.agd-filetable__arrow{display:inline-block;min-width:1ch}.agd-filetable__name{display:flex;align-items:center;gap:var(--agd-space-3);min-width:0}.agd-filetable__name .agd-file-row__name{min-width:0;flex:1 1 auto}.agd-filetable td:has(.agd-skeleton){padding-block:var(--agd-space-3)}.agd-filegrid-wrap{display:grid;gap:var(--agd-space-4)}.agd-filegrid-wrap>.agd-field{max-width:16rem}.agd-filegrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:var(--agd-space-4);margin:0;padding:0;list-style:none}.agd-filegrid__item{display:grid;align-content:start;gap:var(--agd-space-2);min-height:7rem;padding:var(--agd-space-3);border:1px solid var(--agd-color-border);border-radius:var(--agd-radius-md);background:var(--agd-color-surface)}.agd-filegrid__head{display:flex;align-items:center;gap:var(--agd-space-2);min-width:0}.agd-filegrid__item .agd-file-row__actions{justify-self:end}.agd-skeleton{display:block;height:1rem;border-radius:var(--agd-radius-sm);background:var(--agd-color-surface-hover);animation:agd-pulse 1.4s ease-in-out infinite}.agd-filegrid__item.agd-skeleton{height:auto;min-height:7rem;border:1px solid var(--agd-color-border);border-radius:var(--agd-radius-md)}@keyframes agd-pulse{50%{opacity:.5}}@media(max-width:47.99rem){.agd-filetable,.agd-filetable tbody,.agd-filetable tr,.agd-filetable thead{display:block}.agd-filetable thead tr{display:flex;flex-wrap:wrap}.agd-filetable thead th:last-child{display:none}.agd-filetable thead th{width:auto}.agd-filetable tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name actions" "owner owner" "time time";padding-block:var(--agd-space-1);border-bottom:1px solid var(--agd-color-border)}.agd-filetable tbody td{padding:var(--agd-space-1) var(--agd-space-3);border-bottom:0}.agd-filetable tbody td:nth-child(1){grid-area:name}.agd-filetable tbody td:nth-child(2){grid-area:owner}.agd-filetable tbody td:nth-child(3){grid-area:time}.agd-filetable tbody td:nth-child(4){grid-area:actions}}.agd-avatar{display:inline-grid;flex:none;place-items:center;width:1.5rem;height:1.5rem;border:1px solid var(--agd-color-border-strong);background:var(--agd-color-surface-sunken);color:var(--agd-color-text);font-size:var(--agd-font-size-xs);font-weight:var(--agd-font-weight-medium);line-height:1}.agd-avatar svg{width:.9rem;height:.9rem}.agd-avatar--person{border-radius:var(--agd-radius-full)}.agd-avatar--agent{border-color:var(--agd-color-agent);border-radius:var(--agd-radius-sm);background:var(--agd-color-agent-subtle);color:var(--agd-color-agent-text)}.agd-avatar--more{border-radius:var(--agd-radius-full);background:var(--agd-color-surface);color:var(--agd-color-text-muted)}.agd-chip{display:inline-flex;align-items:center;gap:var(--agd-space-2);max-width:100%;min-width:0}.agd-chip__name{overflow:hidden;color:var(--agd-color-text);font-weight:var(--agd-font-weight-medium);text-overflow:ellipsis;white-space:nowrap}.agd-chip__meta{color:var(--agd-color-text-muted);font-size:var(--agd-font-size-xs);min-width:0;overflow-wrap:anywhere}.agd-pill{flex:none;padding:.125rem var(--agd-space-2);border:1px solid var(--agd-color-agent);border-radius:var(--agd-radius-full);color:var(--agd-color-agent-text);font-size:var(--agd-font-size-xs);font-weight:var(--agd-font-weight-semibold);letter-spacing:.02em;line-height:1.2;text-transform:uppercase}.agd-agent-badge{display:inline-flex;align-items:center;gap:var(--agd-space-2);max-width:100%;padding:.125rem var(--agd-space-2) .125rem .125rem;border:1px solid var(--agd-color-agent);border-radius:var(--agd-radius-md);background:var(--agd-color-agent-subtle);color:var(--agd-color-agent-text);font-size:var(--agd-font-size-xs)}.agd-agent-badge--compact{padding:0;border:0;background:none}.agd-agent-badge__label{font-weight:var(--agd-font-weight-semibold);white-space:nowrap}.agd-agent-badge__meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agd-title{display:inline-grid;min-width:0;max-width:100%}.agd-title__button,.agd-title__input,.agd-title__text{min-width:0;padding:var(--agd-space-1) var(--agd-space-2);font:inherit;font-size:var(--agd-font-size-lg);font-weight:var(--agd-font-weight-semibold)}.agd-title__button{border:1px solid transparent;border-radius:var(--agd-radius-md);background:none;color:var(--agd-color-text);cursor:text;text-align:start}.agd-title__button:hover{border-color:var(--agd-color-border-strong)}.agd-title__text{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agd-title__input{width:min(28rem,100%);border:1px solid var(--agd-color-border-strong);border-radius:var(--agd-radius-md);background:var(--agd-color-surface-raised);color:var(--agd-color-text)}.agd-title__input[aria-invalid=true]{border-color:var(--agd-color-danger-text)}.agd-title__error{padding-inline:var(--agd-space-2);color:var(--agd-color-danger-text);font-size:var(--agd-font-size-xs)}.agd-stack{display:inline-flex;align-items:center;gap:var(--agd-space-3)}.agd-stack__list{display:flex;margin:0;padding:0;list-style:none}.agd-stack__list li+li{margin-inline-start:-.25rem}.agd-stack__list .agd-avatar{width:1.75rem;height:1.75rem;box-shadow:0 0 0 2px var(--agd-color-bg)}.agd-stack__summary{color:var(--agd-color-text-muted);font-size:var(--agd-font-size-xs);white-space:nowrap}@media(forced-colors:active){.agd-checkbox:checked,.agd-switch:checked{background:Highlight;border-color:Highlight}.agd-checkbox:before{background:HighlightText}.agd-switch{background:Canvas;border-color:ButtonText}.agd-switch:before{background:ButtonText}.agd-switch:checked:before{background:HighlightText}.agd-button[aria-busy=true]{border-style:dashed}.agd-button[aria-pressed=true]{background:Highlight;color:HighlightText;border-color:Highlight}.agd-tabs__trigger[data-state=active]:after{background:Highlight}.agd-skeleton{background:GrayText}.agd-filegrid__item,.agd-agent-badge,.agd-title__button:hover,.agd-title__input{border-color:CanvasText}.agd-agent-badge--compact{border:0}.agd-menu__item[data-highlighted]{outline:2px solid Highlight;outline-offset:-2px}}.agd-dialog:has(.agd-share){width:min(36rem,calc(100vw - 2rem))}.agd-share{display:grid;gap:var(--agd-space-4)}.agd-share__invite{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:start;gap:var(--agd-space-3)}.agd-share__invite .agd-field:first-child{grid-column:1 / -1}.agd-share__invite .agd-button{align-self:end}.agd-share__sent{color:var(--agd-color-success-text);font-size:var(--agd-font-size-xs)}.agd-share__people{display:grid;margin:0;padding:0;list-style:none;border-top:1px solid var(--agd-color-border)}.agd-share__people li{display:flex;align-items:center;justify-content:space-between;gap:var(--agd-space-3);padding:var(--agd-space-2) 0;border-bottom:1px solid var(--agd-color-border)}.agd-share__people .agd-field{min-width:9rem}.agd-share__controls{display:inline-flex;align-items:center;gap:var(--agd-space-2)}.agd-share__owner{padding-inline:var(--agd-space-3);color:var(--agd-color-text-muted)}.agd-share__row{display:grid;grid-template-columns:1fr 1fr;gap:var(--agd-space-3)}.agd-share__copy{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:var(--agd-space-3)}@media(max-width:30rem){.agd-share__invite,.agd-share__row,.agd-share__copy{grid-template-columns:1fr}}.agd-cursor{position:relative;display:inline-block;width:0;vertical-align:baseline;-webkit-user-select:none;user-select:none}.agd-cursor__caret{position:absolute;inset-block:-.2em -.15em;inset-inline-start:0;width:2px;background:var(--agd-color-accent)}.agd-cursor__tag{position:absolute;inset-block-end:1.45em;inset-inline-start:var(--agd-cursor-shift, 0px);padding:.0625rem var(--agd-space-2);border:1px solid var(--agd-color-accent);border-radius:var(--agd-radius-sm) var(--agd-radius-sm) var(--agd-radius-sm) 0;background:var(--agd-color-accent);color:var(--agd-color-text-on-accent);font-size:var(--agd-font-size-xs);font-weight:var(--agd-font-weight-medium);line-height:1.3;width:max-content;max-inline-size:calc(100vw - 1rem);overflow-wrap:anywhere}.agd-cursor--agent .agd-cursor__caret{background:var(--agd-color-agent)}.agd-cursor--agent .agd-cursor__tag{border-color:var(--agd-color-agent);border-radius:var(--agd-radius-sm);background:var(--agd-color-agent-subtle);color:var(--agd-color-agent-text)}.agd-datatable{display:grid;gap:var(--agd-space-3);min-width:0}.agd-datatable__frame{position:relative;border:1px solid var(--agd-color-border);border-radius:var(--agd-radius-md);background:var(--agd-color-surface);overflow:hidden}.agd-datatable__scroller{height:var(--agd-dt-height);overflow:auto;overscroll-behavior:contain}.agd-datatable__inner{min-width:var(--agd-dt-min)}.agd-datatable__head{position:sticky;top:0;z-index:1;background:var(--agd-color-surface-sunken)}.agd-datatable__head .agd-datatable__row{border-bottom:1px solid var(--agd-color-border)}.agd-datatable__row{box-sizing:border-box;display:grid;grid-template-columns:var(--agd-dt-cols);align-items:center;height:var(--agd-dt-row)}.agd-datatable__body{position:relative}.agd-datatable__row--body{position:absolute;inset-inline:0;border-bottom:1px solid var(--agd-color-border)}.agd-datatable__row--body:hover{background:var(--agd-color-surface-sunken)}.agd-datatable__row--body.agd-datatable__row--selected{background:var(--agd-color-accent-subtle)}.agd-datatable__row--body:focus-visible{outline:2px solid var(--agd-color-focus);outline-offset:-2px}.agd-datatable__cell{min-width:0;padding:0 var(--agd-space-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--agd-font-size-sm)}.agd-datatable__head .agd-datatable__cell{color:var(--agd-color-text-muted);font-size:var(--agd-font-size-xs);font-weight:var(--agd-font-weight-semibold)}.agd-datatable__cell--check{display:grid;place-items:center;padding:0}.agd-datatable__cell .agd-skeleton{width:70%}.agd-datatable__state{position:absolute;inset:var(--agd-dt-row) 0 0;display:grid;place-items:center}.agd-datatable__bar{position:absolute;inset-inline:var(--agd-space-3);inset-block-end:var(--agd-space-3);display:flex;flex-wrap:wrap;align-items:center;gap:var(--agd-space-3);padding:var(--agd-space-2) var(--agd-space-3);border:1px solid var(--agd-color-border);border-radius:var(--agd-radius-md);background:var(--agd-color-surface-raised);box-shadow:var(--agd-shadow-floating)}.agd-datatable__bar-count{font-size:var(--agd-font-size-sm);font-weight:var(--agd-font-weight-medium)}.agd-datatable__bar-actions{display:flex;flex:1;flex-wrap:wrap;gap:var(--agd-space-2)}@media(forced-colors:active){.agd-datatable__row--body.agd-datatable__row--selected{border-inline-start:.25rem solid Highlight}}.agd-datatable__group{position:absolute;inset-inline:0;display:grid;align-items:center;height:var(--agd-dt-row);background:var(--agd-color-surface-sunken);border-bottom:1px solid var(--agd-color-border);box-sizing:border-box}.agd-datatable__group-cell{padding:0 var(--agd-space-3);font-size:var(--agd-font-size-xs);font-weight:var(--agd-font-weight-semibold)}.agd-datatable__group-count{margin-inline-start:var(--agd-space-1);color:var(--agd-color-text-muted);font-weight:var(--agd-font-weight-regular)}.agd-datatoolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--agd-space-2)}.agd-datatoolbar__start,.agd-datatoolbar__end{display:flex;flex-wrap:wrap;align-items:center;gap:var(--agd-space-2);min-width:0}.agd-tablesearch{position:relative;display:flex;align-items:center}.agd-tablesearch__icon{position:absolute;inset-inline-start:var(--agd-space-3);color:var(--agd-color-text-muted);pointer-events:none}.agd-tablesearch__input{width:min(16rem,60vw);padding-inline-start:var(--agd-space-8);animation:agd-fade-in var(--agd-duration-base) var(--agd-easing-out)}.agd-filterchips,.agd-filterchips__list{display:flex;flex-wrap:wrap;align-items:center;gap:var(--agd-space-2);margin:0;padding:0;list-style:none}.agd-filterchip{display:inline-flex;align-items:center;gap:var(--agd-space-1);padding-inline-start:var(--agd-space-3);border:1px solid var(--agd-color-border-strong);border-radius:var(--agd-radius-full);background:var(--agd-color-surface);font-size:var(--agd-font-size-sm)}.agd-filterchip__label{padding-block:var(--agd-space-1)}.agd-filterchip__remove{border-radius:var(--agd-radius-full)}.agd-popover{z-index:60;padding:var(--agd-space-3);border:1px solid var(--agd-color-border);border-radius:var(--agd-radius-md);background:var(--agd-color-surface-raised);box-shadow:var(--agd-shadow-floating);animation:agd-pop-in var(--agd-duration-fast) var(--agd-easing-out)}.agd-display{display:grid;gap:var(--agd-space-3);width:min(20rem,calc(100vw - 2rem))}.agd-display__order{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--agd-space-2)}.agd-display__columns{display:grid;gap:var(--agd-space-1);margin:0;padding:0;border:0}.agd-display__columns legend{padding:0;margin-block-end:var(--agd-space-1);font-weight:var(--agd-font-weight-medium)}.agd-display .agd-button[aria-disabled=true]{--button-bg: var(--agd-color-surface-sunken);--button-bg-hover: var(--agd-color-surface-sunken);--button-fg: var(--agd-color-text-muted);--button-border: var(--agd-color-border);border-style:dashed;cursor:not-allowed}.agd-appsidebar{display:flex;flex-direction:column;gap:var(--agd-space-2);flex:none;box-sizing:border-box;width:var(--agd-size-sidebar);padding:var(--agd-space-2);border-inline-end:1px solid var(--agd-color-border);background:var(--agd-color-surface-sunken)}.agd-appsidebar[data-ready]{transition:width var(--agd-duration-base) var(--agd-easing-out)}@media(max-width:47.99rem){.agd-appsidebar:not([data-collapsed=true]){max-width:60vw}}.agd-appsidebar[data-collapsed=true]{width:var(--agd-size-sidebar-rail);align-items:center;padding-inline:var(--agd-space-1)}.agd-appsidebar__toggle{align-self:flex-start}.agd-appsidebar[data-collapsed=true] .agd-appsidebar__toggle{align-self:center}.agd-appsidebar__content{flex:1;box-sizing:border-box;padding:var(--agd-space-1);min-width:0;min-height:0;width:100%;overflow-x:hidden;overflow-y:auto}.agd-appsidebar__content[hidden]{display:none}.agd-item-header{display:flex;align-items:center;flex-wrap:wrap;gap:var(--agd-space-3);padding:var(--agd-space-3);background:var(--agd-color-bg);color:var(--agd-color-text)}.agd-item-header__title{flex:1 1 12rem;min-inline-size:0}.agd-item-header__title .agd-title{width:100%}.agd-title__status{color:var(--agd-color-text-muted);font-size:var(--agd-font-size-xs)}.drive-main{max-width:72rem}.drive-muted{color:var(--agd-color-text-muted)}.drive-status{display:flex;align-items:center;gap:var(--agd-space-2);color:var(--agd-color-text-muted)}.drive-signin{display:grid;gap:var(--agd-space-4);max-width:24rem}.drive-form{display:grid;gap:var(--agd-space-4)}.drive-form__actions{display:flex;justify-content:flex-end;gap:var(--agd-space-2)}.drive-drop{min-height:60vh;border:2px dashed transparent;border-radius:var(--agd-radius-md);padding:var(--agd-space-2)}.drive-drop--over{border-color:var(--agd-color-accent);background:var(--agd-color-accent-subtle)}.drive-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--agd-space-4);flex-wrap:wrap;margin-bottom:var(--agd-space-4)}.drive-bar h1{margin:0;font-size:var(--agd-font-size-xl);overflow-wrap:anywhere}.drive-crumbs ol{display:flex;flex-wrap:wrap;gap:var(--agd-space-2);list-style:none;margin:0 0 var(--agd-space-2);padding:0;color:var(--agd-color-text-muted)}.drive-crumbs li+li:before{content:"/";margin-right:var(--agd-space-2)}.drive-crumbs [aria-current=page]{color:var(--agd-color-text);font-weight:var(--agd-font-weight-semibold)}.drive-split{display:grid;grid-template-columns:14rem minmax(0,1fr);gap:var(--agd-space-6)}@media(max-width:48rem){.drive-split{grid-template-columns:1fr}}.drive-tree{list-style:none;margin:0;padding:0}.drive-tree .drive-tree{padding-left:var(--agd-space-4)}.drive-tree a{display:flex;align-items:center;gap:var(--agd-space-2);padding:var(--agd-space-1) var(--agd-space-2);border-radius:var(--agd-radius-sm);color:var(--agd-color-text);text-decoration:none}.drive-tree a:hover{background:var(--agd-color-surface-hover)}.drive-tree a[aria-current=page]{background:var(--agd-color-accent-subtle);color:var(--agd-color-accent-text);font-weight:var(--agd-font-weight-semibold)}.drive-tree svg{width:1rem;height:1rem;flex:none}.drive-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));gap:var(--agd-space-4);list-style:none;margin:0;padding:0}.drive-card{position:relative;display:grid;gap:var(--agd-space-2);padding:var(--agd-space-4);border:1px solid var(--agd-color-border);border-radius:var(--agd-radius-md);background:var(--agd-color-surface)}.drive-card__icon svg{width:2rem;height:2rem}.drive-card__name{overflow-wrap:anywhere;font-weight:var(--agd-font-weight-medium);color:var(--agd-color-text)}.drive-card__meta{font-size:var(--agd-font-size-sm);color:var(--agd-color-text-muted)}.drive-card__actions{display:flex;align-items:center;justify-content:space-between;gap:var(--agd-space-2)}.drive-root{display:grid;grid-template-columns:12rem minmax(0,1fr);gap:var(--agd-space-6);color:var(--agd-color-text)}@media(max-width:48rem){.drive-root{grid-template-columns:1fr}}.drive-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.drive-tools{display:flex;justify-content:flex-end;margin-bottom:var(--agd-space-2)}.drive-search{display:flex;align-items:center;gap:var(--agd-space-2)}.drive-search__input{min-width:14rem;min-height:2.25rem;padding:0 var(--agd-space-3);border:1px solid var(--agd-color-border);border-radius:var(--agd-radius-md);background:var(--agd-color-surface);color:var(--agd-color-text);font:inherit}.drive-search__input:focus-visible,.drive-sort:focus-visible{outline:2px solid var(--agd-color-accent);outline-offset:2px}.drive-table{width:100%;border-collapse:collapse}.drive-table th{padding:var(--agd-space-2) var(--agd-space-3);text-align:left;font-size:var(--agd-font-size-sm);font-weight:var(--agd-font-weight-medium);color:var(--agd-color-text-muted);border-bottom:1px solid var(--agd-color-border)}.drive-table td{padding:var(--agd-space-2) var(--agd-space-3);border-bottom:1px solid var(--agd-color-border);vertical-align:middle}.drive-table .drive-table__date{color:var(--agd-color-text-muted);white-space:nowrap}.drive-table__check{width:2.5rem}.drive-table__name{display:flex;align-items:center;gap:var(--agd-space-2);overflow-wrap:anywhere}.drive-table__name a{color:var(--agd-color-text);font-weight:var(--agd-font-weight-medium);text-decoration:none}.drive-table__name a:hover{text-decoration:underline}.drive-table__icon svg{width:1.25rem;height:1.25rem;color:var(--agd-color-text-muted)}.drive-table__actions>*{vertical-align:middle}.drive-table__actions{text-align:right;white-space:nowrap}.drive-row:hover,.drive-row[data-selected]{background:var(--agd-color-surface-sunken)}.drive-sort{all:unset;cursor:pointer;border-radius:var(--agd-radius-sm)}.drive-bulk{position:fixed;inset:auto 0 var(--agd-space-4);margin-inline:auto;width:max-content;max-width:calc(100vw - 2rem);display:flex;align-items:center;gap:var(--agd-space-3);padding:var(--agd-space-2) var(--agd-space-4);border:1px solid var(--agd-color-border);border-radius:var(--agd-radius-md);background:var(--agd-color-surface);box-shadow:0 4px 16px #00000029;z-index:20}@media(max-width:40rem){.drive-table .drive-table__who{display:none}}.drive-title{display:flex;align-items:center;gap:var(--agd-space-3);flex-wrap:wrap;min-width:0}.drive-title h1{margin:0}.drive-drop--bulk{padding-bottom:6rem}html:has(.drive-bulk){scroll-padding-bottom:6rem}.agd-checkbox:indeterminate{background-color:var(--agd-color-accent);border-color:var(--agd-color-accent);background-image:linear-gradient(var(--agd-color-surface),var(--agd-color-surface));background-size:60% 2px;background-repeat:no-repeat;background-position:center}.drive-activity{list-style:none;margin:0;padding:0;display:grid;gap:var(--agd-space-2)}.drive-activity li{padding:var(--agd-space-2) 0;border-bottom:1px solid var(--agd-color-border)}.drive-activity time{color:var(--agd-color-text-muted);font-size:.875em}