nx-kv 0.11.2 → 0.11.3

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.
@@ -6,6 +6,7 @@ import { useStore } from '../../web/frontend/store.jsx';
6
6
  import { useToast, useGuard, useDialog, Modal, Copyable } from '../../web/frontend/components/ui.jsx';
7
7
  import { CliHints } from '../../web/frontend/components/CliHints.jsx';
8
8
  import TaskEditor from './editor.jsx';
9
+ import GroupPopup from './group-popup.jsx';
9
10
  import { AttachmentText } from './markdown.jsx';
10
11
  import { clipboardFiles, snippetsOf, uploadMany } from './upload.js';
11
12
 
@@ -67,6 +68,8 @@ export default function TodoView() {
67
68
  const [busy, setBusy] = useState(false);
68
69
  const [form, setForm] = useState({ topic: '', text: '' });
69
70
  const [modal, setModal] = useState(null);
71
+ // 工作空间弹窗(清单的设置,不再是独立 tab)
72
+ const [showGroup, setShowGroup] = useState(false);
70
73
  // 已完成常常上百条,默认只展示前 N 条,避免整页全是历史噪音
71
74
  const [expanded, setExpanded] = useState({});
72
75
  // 正在编辑的那一条:{ task, pick }。pick 是消歧下标,必须原样回传后端。
@@ -267,7 +270,15 @@ export default function TodoView() {
267
270
  <>
268
271
  <div className="toolbar">
269
272
  <label>工作空间</label>
270
- <span className="pill on">{groupName}</span>
273
+ {/* 工作空间是**清单的设置**,不是独立功能域:点这颗药丸弹出子弹窗,
274
+ 里面切换 / 看成员 / 改名 / 解散 / 新建都在那儿。 */}
275
+ <button
276
+ className="pill on rp-ws-trigger"
277
+ title="切换工作空间 / 管理(清单按工作空间隔离)"
278
+ onClick={() => setShowGroup(true)}
279
+ >
280
+ {groupName} <span className="rp-caret">▾</span>
281
+ </button>
271
282
  <span className="sep"></span>
272
283
  <label>主题</label>
273
284
  <select value={ui.topic} onChange={(e) => patchUi({ topic: e.target.value })}>
@@ -336,6 +347,8 @@ export default function TodoView() {
336
347
  </div>
337
348
 
338
349
  <CliHints module="todo" />
350
+ {/* 工作空间弹窗:清单的设置入口(切换 / 成员 / 改名 / 解散 / 新建) */}
351
+ {showGroup ? <GroupPopup onClose={() => setShowGroup(false)} /> : null}
339
352
  {editing ? (
340
353
  <Modal title="编辑任务" onClose={() => setEditing(null)}>
341
354
  <TaskEditor
@@ -12,7 +12,6 @@ import { cliPathsOf } from './spec.js';
12
12
  import system from '../modules/system/index.js';
13
13
  import setting from '../modules/setting/index.js';
14
14
  import auth from '../modules/auth/index.js';
15
- import group from '../modules/group/index.js';
16
15
  import localtask from '../modules/localtask/index.js';
17
16
  import timegoal from '../modules/timegoal/index.js';
18
17
  import todo from '../modules/todo/index.js';
@@ -20,7 +19,9 @@ import repos from '../modules/repos/index.js';
20
19
  import file from '../modules/file/index.js';
21
20
  import bundled from '../modules/bundled/index.js';
22
21
 
23
- export const MODULES = [system, setting, auth, group, localtask, timegoal, todo, repos, file, bundled].sort(
22
+ // 工作空间(group)已于 2026-10-23 并入 todo 模块:它是**清单的设置**,
23
+ // 不该单独占一个模块/一个 tab。命令与路由一字未改。
24
+ export const MODULES = [system, setting, auth, localtask, timegoal, todo, repos, file, bundled].sort(
24
25
  (a, b) => (a.order ?? 100) - (b.order ?? 100)
25
26
  );
26
27
 
@@ -8,7 +8,8 @@ import { lazy } from 'react';
8
8
  export const VIEWS = [
9
9
  { id: 'localtask', title: '本地任务', component: lazy(() => import('../../modules/localtask/view.jsx')) },
10
10
  { id: 'todo', title: '清单', component: lazy(() => import('../../modules/todo/view.jsx')) },
11
- { id: 'group', title: '工作空间', component: lazy(() => import('../../modules/group/view.jsx')) },
11
+ // 「工作空间」已于 2026-10-23 并入清单:它是清单的设置,
12
+ // 入口是清单页工具栏里的「工作空间」弹窗,不再单独占一个 tab。
12
13
  { id: 'repos', title: '仓库', component: lazy(() => import('../../modules/repos/view.jsx')) },
13
14
  { id: 'auth', title: '登录', component: lazy(() => import('../../modules/auth/view.jsx')) },
14
15
  ];
@@ -787,6 +787,8 @@ h3 { font-size: 13px; margin: 0; font-weight: 700; }
787
787
  }
788
788
  .pill:hover { background: var(--soft-2); color: var(--ink); }
789
789
  .pill.on { background: var(--ink); color: var(--paper); font-weight: 600; }
790
+ /* 清单页的「工作空间」触发器:点开是子弹窗(工作空间是清单的设置,不是独立 tab) */
791
+ .rp-ws-trigger .rp-caret { font-size: 9px; opacity: 0.75; margin-left: 3px; }
790
792
  /* 形态区分:实体 = 实心(默认 on 样式);软链接 = 虚线描边 */
791
793
  .pill.on.lnk {
792
794
  background: var(--paper);
@@ -1 +1 @@
1
- import{o as e,s as t,t as n}from"./index-gEMHU8gc.js";var r=t();function i({module:t}){let{boot:i}=e(),a=(i?.commands||[]).filter(e=>e.module===t);return a.length?(0,r.jsxs)(`div`,{className:`cli-hint`,children:[(0,r.jsx)(`span`,{className:`cli-hint-label`,children:`CLI 等价(同构命令,加 --json 得机器可读输出):`}),a.map(e=>(0,r.jsx)(n,{className:`cli-cmd`,text:e.command,title:`点击复制:${e.usage}`,children:e.command},e.id))]}):null}export{i as t};
1
+ import{o as e,s as t,t as n}from"./index-Da2WAZF_.js";var r=t();function i({module:t}){let{boot:i}=e(),a=(i?.commands||[]).filter(e=>e.module===t);return a.length?(0,r.jsxs)(`div`,{className:`cli-hint`,children:[(0,r.jsx)(`span`,{className:`cli-hint-label`,children:`CLI 等价(同构命令,加 --json 得机器可读输出):`}),a.map(e=>(0,r.jsx)(n,{className:`cli-cmd`,text:e.command,title:`点击复制:${e.usage}`,children:e.command},e.id))]}):null}export{i as t};
@@ -1 +1 @@
1
- :root{--ink:#16181c;--ink-2:#4b515a;--mid:#838a93;--paper:#fff;--canvas:#f7f6f3;--soft:#f2f1ed;--soft-2:#e5e3de;--line:#e7e5e0;--live:#1f7a4d;--warn:#99690f;--danger:#b3261e;--radius:10px;--radius-sm:7px;--shadow-sm:0 1px 2px #16181c0d;--shadow:0 1px 2px #16181c0d, 0 10px 28px -16px #16181c2e;--label:"Bahnschrift", "Segoe UI Variable Display", "Segoe UI", system-ui, sans-serif;--mono:ui-monospace, "Cascadia Mono", "JetBrains Mono", "SF Mono", Menlo, Consolas, "Liberation Mono", "Courier New", monospace}*{box-sizing:border-box}body{color:var(--ink);background:var(--canvas);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;margin:0;font-family:Segoe UI Variable Text,Segoe UI,system-ui,-apple-system,PingFang SC,Microsoft YaHei,sans-serif;font-size:13px;line-height:1.5}:focus-visible{outline:2px solid var(--ink);outline-offset:1px;border-radius:4px}header{background:var(--paper);box-shadow:0 1px 0 var(--soft-2);z-index:5;align-items:center;gap:20px;padding:12px 20px;display:flex;position:sticky;top:0}.brand{letter-spacing:.4px;align-items:center;gap:7px;font-weight:800;display:inline-flex}.brand img{border-radius:5px;width:20px;height:20px;display:block}.brand .sub{color:var(--mid);margin-left:8px;font-size:12px;font-weight:400}nav{gap:2px;display:inline-flex}.tab{font:inherit;color:var(--mid);cursor:pointer;background:0 0;border:0;border-radius:7px 7px 0 0;padding:7px 12px 8px;font-size:12.5px;transition:color .15s,background .15s;position:relative}.tab:hover{color:var(--ink);background:var(--soft)}.tab.active{color:var(--ink);font-weight:600}.tab.active:after{content:"";background:var(--ink);border-radius:2px 2px 0 0;height:2px;position:absolute;bottom:0;left:10px;right:10px}.meta{color:var(--mid);margin-left:auto;font-family:ui-monospace,Consolas,monospace;font-size:11.5px}#root{flex-direction:column;min-height:100vh;display:flex}main{flex:1 0 auto;width:100%;max-width:1240px;margin:0 auto;padding:18px 20px 28px}.panel{display:none}.panel.active{display:block}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.toolbar label{color:var(--mid);font-size:12px}.sep{background:var(--soft-2);width:1px;height:20px;margin:0 4px}.grow{max-width:340px}.compose-toolbar{align-items:center}.compose-label{color:var(--mid);white-space:nowrap;font-size:12px}.compose-bar{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);min-width:0;box-shadow:var(--shadow-sm);flex:auto;align-items:stretch;transition:border-color .15s,box-shadow .15s;display:flex;overflow:hidden}.compose-bar:focus-within{border-color:var(--ink);box-shadow:0 0 0 3px #16181c0f}.compose-bar select,.compose-bar textarea{box-shadow:none;background-color:#0000;border:0;border-radius:0;padding:8px 10px}.compose-bar select:hover,.compose-bar textarea:hover{border-color:#0000}.compose-bar select{border-right:1px solid var(--line);background-color:var(--soft);flex:0 0 232px;font-size:12.5px}.compose-bar textarea{resize:vertical;flex:auto;min-width:180px;min-height:38px;line-height:1.5}.compose-bar .btn{border-radius:var(--radius-sm);flex:none;align-self:center;margin:3px}.compose-bar textarea::placeholder{color:#b3b8bd;font-size:12.5px}@media (width<=820px){.compose-toolbar{flex-direction:column;align-items:stretch;gap:6px}.compose-bar{flex-wrap:wrap}.compose-bar select{border-right:0;border-bottom:1px solid var(--line);flex:100%}.compose-bar textarea{flex:160px}.compose-bar .btn{margin:3px 3px 3px 0}table.directory-board{min-width:620px}.directory-board .board-ops{width:150px}.directory-board .board-directory{width:34%;min-width:200px}.directory-board .board-task-state{width:19%}.directory-board .board-goal-state{width:25%}.board-goal-label,.board-deadline{white-space:nowrap}}input,select,textarea{font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);padding:6px 10px;transition:border-color .15s,box-shadow .15s}input::placeholder,textarea::placeholder{color:#b3b8bd}input:focus,select:focus,textarea:focus{border-color:var(--ink);outline:none;box-shadow:0 0 0 3px #16181c12}select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--mid) 50%), linear-gradient(135deg, var(--mid) 50%, transparent 50%);cursor:pointer;background-position:calc(100% - 14px) 52%,calc(100% - 9px) 52%;background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:26px}.goal-form{flex-direction:column;gap:12px;display:flex}.goal-form-section{font-size:12px}.goal-form-title{margin-bottom:4px;font-weight:700}.goal-cwd-input{width:100%}.goal-dur-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.goal-dur-input{width:96px}.goal-dur-unit{width:92px}.goal-prompt{resize:vertical;width:100%;line-height:1.55}.goal-hint{color:var(--mid);font-size:11px}.goal-reset{cursor:pointer;align-items:center;gap:6px;font-size:12px;display:flex}.goal-presets{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.goal-actions{align-items:center;gap:8px;margin-top:12px;display:flex}.btn{font:inherit;cursor:pointer;border-radius:var(--radius-sm);background:var(--ink);color:var(--paper);border:0;padding:6px 12px;transition:opacity .15s,background .15s,color .15s}.btn:hover{opacity:.86}.btn.ghost{background:var(--soft);color:var(--ink)}.btn.ghost:hover{background:var(--soft-2);opacity:1}.btn.ghost.danger{color:var(--danger);background:0 0;border:1px solid #b3261e4d}.btn.ghost.danger:hover{opacity:1;background:#b3261e12}.btn.small{border-radius:7px;padding:3px 9px;font-size:12px}.btn:disabled{opacity:.4;cursor:default}.btn.danger{color:#fff;background:#b3261e}.toast-stack{z-index:60;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}.toast{background:var(--ink);color:var(--paper);white-space:pre-wrap;word-break:break-all;border-radius:10px;max-width:72vw;padding:9px 16px;font-size:12.5px;box-shadow:0 8px 24px #14161a40}.dlg{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:50;background:#fbfbfcdb;justify-content:center;align-items:flex-start;padding:96px 16px;display:flex;position:fixed;inset:0}.dlg-box{background:var(--paper);border-radius:var(--radius);width:min(460px,94vw);padding:16px 18px;box-shadow:0 12px 40px #14161a29}.dlg-title{margin-bottom:6px;font-weight:700}.dlg-msg{color:var(--ink);white-space:pre-wrap;word-break:break-all;margin-bottom:6px}.dlg-input{width:100%;margin:8px 0 4px;font-family:ui-monospace,Consolas,monospace;font-size:12.5px}.dlg-acts{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.card{background:var(--paper);border-radius:var(--radius);margin-bottom:12px;padding:10px 12px;box-shadow:0 0 0 1px #16181c12}.card.hidden{display:none}.fold-row{border-top:1px solid var(--line);margin-top:8px;padding-top:2px}.fold-row>summary{cursor:pointer;color:var(--ink-2);align-items:center;gap:7px;padding:7px 2px;font-size:12.5px;font-weight:600;list-style:none;display:flex}.fold-row>summary::-webkit-details-marker{display:none}.fold-row>summary:before{content:"▸";color:var(--mid);font-size:10px}.fold-row[open]>summary:before{content:"▾"}.fold-row>summary:hover{color:var(--ink)}.fold-row table{margin-top:4px}.localtask-cli-reference{margin-top:10px}.localtask-cli-reference>details>summary{cursor:pointer;color:var(--ink-2);align-items:center;gap:7px;padding:7px 2px;font-size:12.5px;font-weight:600;list-style:none;display:flex}.localtask-cli-reference>details>summary::-webkit-details-marker{display:none}.localtask-cli-reference>details>summary:before{content:"▸";color:var(--mid);font-size:10px}.localtask-cli-reference>details[open]>summary:before{content:"▾"}.localtask-cli-reference>details>summary:hover{color:var(--ink)}.import-remote-entry{flex-wrap:wrap;align-items:center;gap:8px;margin:-2px 0 8px;font-size:11.5px;display:flex}.import-remote-bar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:10px;display:flex}.import-remote-bar label{color:var(--mid);align-items:center;gap:6px;font-size:12px;display:inline-flex}.import-remote-err{border-radius:var(--radius-sm);color:var(--danger);border:1px solid #b3261e4d;margin-bottom:10px;padding:8px 10px;font-size:12px}.import-remote-list{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);max-height:46vh;overflow:auto}.import-remote-item{border-bottom:1px solid var(--line);cursor:pointer;align-items:baseline;gap:8px;padding:7px 10px;font-size:12.5px;display:flex}.import-remote-item:last-child{border-bottom:0}.import-remote-item:hover{background:var(--soft)}.import-remote-item input{flex:none;align-self:center}.import-remote-topic{font-family:var(--mono);color:var(--mid);background:var(--soft);text-overflow:ellipsis;white-space:nowrap;border-radius:4px;flex:none;max-width:120px;padding:1px 6px;font-size:10.5px;overflow:hidden}.import-remote-text{min-width:0;color:var(--ink);flex:auto}.import-remote-actions{align-items:center;gap:8px;margin-top:12px;font-size:11.5px;display:flex}.repo-boards{text-overflow:ellipsis;max-width:220px;overflow:hidden}.compose-context{background:var(--soft);border-radius:var(--radius-sm);color:var(--ink-2);flex-wrap:wrap;align-items:baseline;gap:8px;margin:0 0 6px;padding:5px 10px;font-size:11.5px;display:flex}.compose-context .repo-name{color:var(--ink);font-weight:700}.compose-context .repo-desc{color:var(--ink-2)}.compose-context .repo-boards-list{color:var(--mid);margin-left:auto}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:14px;margin:4px 0 14px;display:flex}.page-head .title-block{min-width:0}.page-head h2{letter-spacing:.2px;margin:0;font-size:16px;font-weight:700}.page-head .page-desc{color:var(--mid);max-width:760px;margin-top:3px;font-size:12px}.page-head .page-desc strong{color:var(--ink-2)}.page-head .acts{flex-shrink:0;align-items:center;gap:8px;display:flex}.form-grid{flex-direction:column;gap:13px;display:flex}.form-field{flex-direction:column;gap:5px;display:flex}.form-field>label{color:var(--mid);font-size:11px;font-weight:600}.form-field input,.form-field select{width:100%}.form-field textarea{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);width:100%;min-height:96px;color:var(--ink);font:inherit;resize:vertical;padding:8px 10px;line-height:1.5}.form-acts{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:2px;display:flex}.rp-filters{flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 10px;display:flex}.rp-chip{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--paper);color:var(--ink-2);border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:12px;display:inline-flex}.rp-chip b{font-family:var(--mono);color:var(--ink);font-weight:650}.rp-chip:hover{border-color:var(--mid)}.rp-chip.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}.rp-chip.on b{color:var(--paper)}.rp-chip-manage{color:var(--mid);margin-left:auto}.rp-table-wrap{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow-x:auto}.rp-table{border-collapse:collapse;width:100%}.rp-table th{text-align:left;font-family:var(--label);letter-spacing:.04em;text-transform:uppercase;color:var(--mid);background:var(--soft);border-bottom:1px solid var(--line);white-space:nowrap;padding:8px 12px;font-size:10.5px;font-weight:600}.rp-table td{border-bottom:1px solid var(--line);vertical-align:top;padding:8px 12px;font-size:12.5px}.rp-table tbody tr:last-child td{border-bottom:0}.rp-table tbody tr:hover td{background:#faf9f6}.rp-name strong{color:var(--ink);font-size:13px;font-weight:650}.rp-desc{text-overflow:ellipsis;white-space:nowrap;max-width:42ch;margin-top:2px;font-size:11px;overflow:hidden}.rp-path{color:var(--mid);word-break:break-all;max-width:34ch;font-size:11px}.rp-tags{white-space:nowrap}.rp-tags .tag{margin-right:4px}.rp-boards{white-space:nowrap}.rp-board{align-items:center;gap:3px;margin-right:4px;padding-right:3px;display:inline-flex}.rp-x{font:inherit;cursor:pointer;color:var(--mid);background:0 0;border:0;border-radius:3px;padding:0 2px;font-size:12px;line-height:1}.rp-x:hover{color:var(--danger);background:#b3261e14}.rp-add{font:inherit;border:1px dashed var(--soft-2);color:var(--mid);cursor:pointer;background:0 0;border-radius:4px;padding:1px 4px;font-size:11px}.rp-add:hover{border-color:var(--mid);color:var(--ink-2)}.rp-acts{white-space:nowrap}.rp-acts .btn{margin:0 3px 0 0}.rp-empty{text-align:center;padding:22px 12px}.rp-boards-manage{margin-bottom:10px}.rp-board-list{flex-direction:column;gap:4px;display:flex}.rp-board-item{align-items:baseline;gap:10px;padding:4px 0;font-size:12.5px;display:flex}.rp-board-name{color:var(--ink);font-weight:650}.rp-board-desc{font-size:11.5px}.rp-board-item .acts{white-space:nowrap;margin-left:auto}.bd-workbench{flex-direction:column;gap:12px;display:flex}.bd-board{padding:0 0 10px}.bd-board.drop{outline:1px dashed var(--ink);outline-offset:-1px}.bd-board .colhead{border-bottom:1px solid var(--line);margin:0;padding:8px 12px}.bd-head h3{margin:0;font-size:13px}.bd-head .bd-count{margin-left:auto;font-size:11px}.bd-grid{grid-template-columns:repeat(auto-fill,118px);justify-content:start;gap:8px;padding:10px 12px 0;display:grid}.bd-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);cursor:grab;text-align:center;flex-direction:column;align-items:center;gap:4px;padding:12px 8px 8px;display:flex;position:relative}.bd-card:hover{border-color:var(--mid);box-shadow:var(--shadow-sm)}.bd-card.dragging{opacity:.45}.bd-card.drop{outline:1px dashed var(--ink);outline-offset:-1px}.bd-card .glyph{background:var(--ink);color:#fff;border-radius:10px;place-items:center;width:38px;height:38px;font-size:16px;font-weight:700;display:grid}.bd-card .nm{text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:var(--ink);font-size:12px;font-weight:600;overflow:hidden}.bd-card .ds{-webkit-line-clamp:2;min-height:28px;color:var(--mid);-webkit-box-orient:vertical;font-size:11px;line-height:14px;display:-webkit-box;overflow:hidden}.bd-card .acts{gap:2px;display:none;position:absolute;top:4px;right:4px}.bd-card:hover .acts{display:inline-flex}.bd-card .acts .btn{padding:1px 4px;font-size:10px}.bd-empty{text-align:center;grid-column:1/-1;padding:14px 0;font-size:11px}.bd-exp{width:100%;font-family:var(--mono);font-size:11px}.colhead{align-items:baseline;gap:8px;margin:2px 2px 8px;display:flex}h3{margin:0;font-size:13px;font-weight:700}.cols{align-items:flex-start;gap:14px;display:flex}.col{flex:1;min-width:0}@media (width<=900px){.cols{flex-direction:column}.col{width:100%}}.list{padding:4px}.row{border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:8px 10px;transition:background .12s;display:flex}.row:hover{background:var(--soft)}.row+.row{margin-top:2px}.row .tid{color:var(--mid);text-align:right;flex-shrink:0;min-width:30px;font-family:ui-monospace,Consolas,monospace;font-size:11.5px}.row .topic{background:var(--soft-2);white-space:nowrap;border-radius:5px;flex-shrink:0;padding:1px 6px;font-size:12px;font-weight:600}.row .text{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.row .time{color:var(--mid);white-space:nowrap;flex-shrink:0;font-size:11.5px}.row .note{color:var(--mid);word-break:break-word;-webkit-line-clamp:2;-webkit-box-orient:vertical;flex-basis:100%;padding-left:40px;font-size:11.5px;line-height:1.4;display:-webkit-box;overflow:hidden}.row-inline{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row .name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.row .desc{color:var(--mid);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;overflow:hidden}.row .acts{flex-shrink:0;align-items:center;gap:6px;margin-left:auto;display:flex}.plats{flex-wrap:wrap;gap:4px;display:flex}.pill{font:inherit;cursor:pointer;background:var(--soft);color:var(--mid);border:0;border-radius:999px;padding:5px 8px;font-size:11px;line-height:1;transition:background .12s,color .12s}.pill:hover{background:var(--soft-2);color:var(--ink)}.pill.on{background:var(--ink);color:var(--paper);font-weight:600}.pill.on.lnk{background:var(--paper);color:var(--ink);border:1.5px dashed var(--ink);padding:4px 6.5px}.tag{border:1px solid var(--soft-2);color:var(--mid);white-space:nowrap;letter-spacing:0;background:0 0;border-radius:4px;padding:1px 6px;font-size:10.5px;font-weight:600}.tag.strong{background:var(--ink);color:var(--paper)}.tag.badge{color:var(--ink-2);border:1px solid var(--soft-2);letter-spacing:.02em;background:0 0;font-weight:600}table{border-collapse:collapse;width:100%}th,td{text-align:left;vertical-align:top;padding:9px 10px}th{color:var(--mid);font-family:var(--label);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;font-size:10.5px;font-weight:600}tbody tr:hover{background:var(--soft)}tbody tr+tr td{box-shadow:inset 0 1px 0 var(--soft)}.mono,td.path{font-family:var(--mono);word-break:break-all;font-size:11.5px}td.ops{white-space:nowrap}td.ops .btn{margin:0 3px 3px 0}.muted{color:var(--mid)}.bad{font-weight:700}.queue-table{table-layout:fixed}.queue-table .c-drag{width:30px}.queue-table .c-id{width:46px}.queue-table .c-status{width:104px}.queue-table .c-time{width:150px}.queue-table .c-ops{width:196px}.queue-wrap{overflow-x:auto}.queue-table td.task-text{white-space:pre-wrap;word-break:break-word;font-size:12.5px;line-height:1.45}.queue-table .c-time{font-family:var(--mono);color:var(--mid);font-size:11px}.queue-table thead th{background:var(--soft);border-bottom:1px solid var(--line);color:var(--mid);font-family:var(--label);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;vertical-align:middle;padding:7px 10px;font-size:10.5px;font-weight:600}.queue-table tbody td{vertical-align:middle;padding:8px 10px}.queue-table .board-status{color:var(--ink-2);font-size:11.5px}.queue-table .board-status.done:before{background:var(--soft-2);box-shadow:inset 0 0 0 1.5px var(--soft-2)}.queue-table .board-status.pend:before{background:var(--live);box-shadow:0 0 0 3px #1f7a4d1f}.board-toolbar{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;margin-bottom:10px;padding:10px 12px;display:flex}.board-heading,.board-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.board-heading strong{font-family:var(--label);font-size:13.5px;font-weight:600}.board-heading .muted{font-size:11.5px}.board-live{color:var(--mid);align-items:center;gap:6px;font-size:11px;display:inline-flex}.board-live-dot{background:var(--mid);border-radius:50%;flex:none;width:6px;height:6px}.board-live-dot.ok{background:var(--live);animation:2.4s ease-in-out infinite board-pulse}.board-live-dot.reconnecting{background:var(--danger)}.board-live-dot.connecting{background:var(--mid)}@keyframes board-pulse{0%,to{box-shadow:0 0 #1f7a4d59}50%{box-shadow:0 0 0 3px #1f7a4d00}}@media (prefers-reduced-motion:reduce){.board-live-dot.ok{animation:none}}.board-table-wrap{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);width:100%;box-shadow:var(--shadow-sm);margin-bottom:12px;overflow-x:auto}table.directory-board{table-layout:fixed;border-collapse:separate;border-spacing:0;min-width:780px}.directory-board thead th{font-family:var(--label);letter-spacing:.04em;text-transform:uppercase;color:var(--mid);text-align:left;background:var(--soft);border-bottom:1px solid var(--line);white-space:nowrap;padding:7px 12px;font-size:10.5px;font-weight:600}.directory-board td{border-bottom:1px solid var(--line);vertical-align:top;padding:8px 12px}.directory-board tbody tr:last-child td{border-bottom:0}.directory-board tbody tr{cursor:pointer;--rail:var(--soft-2);transition:background .12s}.directory-board tbody tr:hover{background:#faf9f6}.directory-board tbody tr td:first-child{box-shadow:inset 2px 0 0 var(--rail)}.directory-board tbody tr[data-state=live]{--rail:var(--live)}.directory-board tbody tr[data-state=stale]{--rail:var(--warn)}.directory-board tbody tr[data-state=pool]{--rail:var(--ink-2)}.directory-board tbody tr.is-active{background:var(--soft);--rail:var(--ink)}.directory-board .board-check{text-align:center;width:34px}.directory-board thead .board-check input{vertical-align:middle;cursor:pointer}.directory-board thead .board-check input:disabled{cursor:default;opacity:.35}.directory-board .board-directory{width:36%;min-width:240px}.directory-board .board-task-state,.directory-board .board-goal-state{width:17%}.directory-board .board-ops{width:290px}.directory-board .board-ops .btn{opacity:.7;transition:opacity .12s,background .12s}.directory-board tbody tr:hover .board-ops .btn,.directory-board tbody tr.is-active .board-ops .btn,.directory-board tbody tr:focus-within .board-ops .btn{opacity:1}.board-name-line{align-items:baseline;gap:7px;min-width:0;display:flex}.board-name-line strong{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;font-size:13.5px;font-weight:650;overflow:hidden}.board-cwd{font-family:var(--mono);color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;flex:0 auto;min-width:0;font-size:10.5px;line-height:1.4;overflow:hidden}.board-cwd .anc{color:var(--mid)}.board-summary-line{align-items:baseline;gap:6px;min-width:0;margin-top:1px;display:flex}.board-summary{min-width:0;color:var(--ink-2);font:inherit;text-align:left;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;background:0 0;border:0;flex:auto;padding:0;font-size:11.5px;line-height:1.4;display:block;overflow:hidden}.board-summary:hover{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.board-summary.muted{color:var(--mid)}.board-submit{min-width:0;max-width:46%;color:var(--mid);font:inherit;text-align:left;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;background:0 0;border:0;flex:0 auto;padding:0;font-size:11.5px;line-height:1.4;overflow:hidden}.board-submit:hover{color:var(--ink-2);-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.board-count,.board-deadline{font-family:var(--mono);color:var(--mid);letter-spacing:-.01em;margin-top:4px;font-size:10.5px;display:block}.board-count b{color:var(--ink);font-weight:650}.board-count .sep-dot{color:var(--soft-2);margin:0 2px}.board-deadline{font-size:10px}.board-goal-label{color:var(--live);font-family:var(--mono);cursor:pointer;letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;max-width:100%;padding:0;font-size:11px;font-weight:650;display:block;overflow:hidden}.board-goal-gone{display:block}.board-goal-label:hover{text-underline-offset:2px;text-decoration:underline}.board-ops{white-space:nowrap}.board-ops .btn{margin:0 3px 2px 0}.board-status-row{align-items:center;gap:8px;min-width:0;display:flex}.board-status-row .board-status{flex:0 auto;min-width:0}.board-wait-stop{flex:none}.board-pickup{font-family:var(--mono);color:var(--mid);white-space:nowrap;margin-top:2px;font-size:10.5px}.board-status{color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;vertical-align:bottom;align-items:center;gap:7px;max-width:100%;font-size:12px;display:inline-flex;overflow:hidden}.board-status:before{content:"";background:var(--soft-2);border-radius:50%;flex:none;width:6px;height:6px}.board-status.live:before{background:var(--live);box-shadow:0 0 0 3px #1f7a4d1f}.board-status.busy:before{background:var(--warn);box-shadow:0 0 0 3px #99690f21}.board-status.pool:before{background:var(--ink)}.board-status.stale:before{box-shadow:inset 0 0 0 1.5px var(--soft-2);background:0 0}.board-empty{text-align:center;padding:30px 16px}.board-empty-mark{border:1.5px dashed var(--soft-2);border-radius:50%;width:26px;height:26px;margin:0 auto 10px}.board-empty-title{color:var(--ink-2);font-size:12.5px;font-weight:600}.board-empty-sub{color:var(--mid);margin-top:3px;font-size:11.5px}.localtask-topic-cards-legacy{display:none}.board-settings-dialog{gap:14px;display:grid}.board-setting-section{border-bottom:1px solid var(--soft-2);padding-bottom:12px}.board-setting-section:last-child{border-bottom:0;padding-bottom:0}.board-setting-title{align-items:center;gap:8px;margin-bottom:6px;font-size:13px;font-weight:700;display:flex}.board-setting-control{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.board-setting-control select{min-width:170px;padding:6px 8px}.board-setting-help{margin:0 0 8px;font-size:11px;line-height:1.4}.board-settings-dialog textarea{box-sizing:border-box;resize:vertical;width:100%;font:inherit;font-size:12px}.board-setting-actions{flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;display:flex}.board-add-directory label{margin-bottom:5px;font-size:12px;font-weight:700;display:block}.board-add-directory input{box-sizing:border-box;width:100%;font:inherit;padding:8px}.board-add-directory p{margin:6px 0 0;font-size:11px}.copyable{cursor:copy;border-bottom:1px dashed #0000;transition:border-color .12s,color .12s}.copyable:hover{border-bottom-color:var(--mid)}.copyable:active{color:var(--ink)}dd .adapter-dir{margin-right:14px;display:inline-block}.settings{grid-template-columns:120px 1fr;align-items:center;gap:10px 16px;display:grid}.settings dt{color:var(--mid);font-size:12px}.settings dd{margin:0}.row-inline{gap:8px;margin-top:8px;display:flex}.row-inline input{flex:1}.cli-hint{color:var(--mid);flex-wrap:wrap;align-items:baseline;gap:4px 8px;padding:6px 4px 2px;font-size:11.5px;display:flex}.cli-hint-label{flex-basis:100%}.cli-cmd{background:var(--soft);white-space:nowrap;border-radius:5px;padding:1px 6px}.modal{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:20;background:#fbfbfcdb;justify-content:center;align-items:flex-start;padding:48px 16px;display:flex;position:fixed;inset:0}.modal.hidden{display:none}.modal-box{background:var(--paper);border-radius:var(--radius);flex-direction:column;width:min(880px,96vw);max-height:84vh;display:flex;overflow:hidden;box-shadow:0 12px 40px #14161a29}.modal-title{box-shadow:0 1px 0 var(--soft);justify-content:space-between;align-items:center;padding:12px 14px;font-weight:700;display:flex}.modal-body{padding:14px;overflow:auto}pre{white-space:pre-wrap;word-break:break-all;margin:0;font-family:ui-monospace,Consolas,monospace;font-size:12px;line-height:1.6}.d-add{background:var(--soft-2);font-weight:600}.d-del{color:var(--mid);text-decoration:line-through}.conflict-file{background:var(--soft);border-radius:10px;margin-bottom:10px;overflow:hidden}.conflict-file .cf-head{justify-content:space-between;align-items:center;padding:8px 12px;font-family:ui-monospace,Consolas,monospace;font-size:12px;display:flex}.conflict-file pre{background:var(--paper);padding:10px 12px}footer{color:var(--mid);text-align:center;padding:14px 20px 24px;font-size:11.5px}footer code{background:var(--soft);border-radius:6px;padding:1px 6px;font-family:ui-monospace,Consolas,monospace}.mdtext,.mdtext-plain{white-space:pre-wrap}.embed-image{vertical-align:middle;margin:0 2px;line-height:0;display:inline-block}.embed-image img{border-radius:var(--radius-sm);background:var(--soft);max-width:100%;max-height:220px;display:block}.embed-image.compact img{max-height:28px;box-shadow:0 0 0 1px var(--soft-2);border-radius:6px}.embed-file{background:var(--soft);color:var(--ink);vertical-align:middle;border-radius:7px;margin:0 2px;padding:1px 8px;font-size:12px;text-decoration:none;display:inline-block}.embed-file:hover{background:var(--soft-2)}.editor{border-radius:var(--radius);flex-direction:column;gap:12px;min-width:min(600px,80vw);display:flex;position:relative}.editor.drag{box-shadow:0 0 0 2px var(--ink)}.editor.drag:after{content:"松手即上传";border-radius:var(--radius);pointer-events:none;background:#ffffffdb;justify-content:center;align-items:center;font-weight:700;display:flex;position:absolute;inset:0}.ed-tip{color:var(--mid);font-size:11.5px;line-height:1.8}.ed-link{font:inherit;color:var(--ink);text-underline-offset:2px;cursor:pointer;background:0 0;border:0;padding:0 2px;font-weight:600;text-decoration:underline}.ed-link:disabled{color:var(--mid);cursor:default;text-decoration:none}.ed-field{flex-direction:column;gap:4px;display:flex}.ed-label{color:var(--mid);letter-spacing:.3px;font-size:11.5px;font-weight:600}.ed-textarea{width:100%;font:inherit;border-radius:var(--radius-sm);background:var(--soft);color:var(--ink);resize:vertical;border:0;padding:9px 11px}.ed-textarea:focus{outline:2px solid var(--soft-2)}.ed-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.ed-acts{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.ed-foot{box-shadow:0 -1px 0 var(--soft) inset;justify-content:space-between;align-items:center;gap:10px;padding-top:10px;display:flex}.preview{border-radius:var(--radius-sm);background:var(--soft);max-height:340px;padding:10px;overflow:auto}.hint{color:var(--mid);font-size:11.5px}.hint code,.ed-tip code,kbd{background:var(--soft-2);border-radius:5px;padding:0 4px;font-family:ui-monospace,Consolas,monospace;font-size:11px}.toggle{background:var(--soft);color:var(--mid);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 11px;font-size:12px;display:inline-flex;position:relative}.toggle:hover{background:var(--soft-2)}.toggle:focus-within{outline:2px solid var(--soft-2)}.toggle input{opacity:0;width:1px;height:1px;position:absolute}.toggle .dot{background:var(--mid);border-radius:50%;width:7px;height:7px}.toggle.on{background:var(--ink);color:var(--paper)}.toggle.on .dot{background:var(--paper)}
1
+ :root{--ink:#16181c;--ink-2:#4b515a;--mid:#838a93;--paper:#fff;--canvas:#f7f6f3;--soft:#f2f1ed;--soft-2:#e5e3de;--line:#e7e5e0;--live:#1f7a4d;--warn:#99690f;--danger:#b3261e;--radius:10px;--radius-sm:7px;--shadow-sm:0 1px 2px #16181c0d;--shadow:0 1px 2px #16181c0d, 0 10px 28px -16px #16181c2e;--label:"Bahnschrift", "Segoe UI Variable Display", "Segoe UI", system-ui, sans-serif;--mono:ui-monospace, "Cascadia Mono", "JetBrains Mono", "SF Mono", Menlo, Consolas, "Liberation Mono", "Courier New", monospace}*{box-sizing:border-box}body{color:var(--ink);background:var(--canvas);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;margin:0;font-family:Segoe UI Variable Text,Segoe UI,system-ui,-apple-system,PingFang SC,Microsoft YaHei,sans-serif;font-size:13px;line-height:1.5}:focus-visible{outline:2px solid var(--ink);outline-offset:1px;border-radius:4px}header{background:var(--paper);box-shadow:0 1px 0 var(--soft-2);z-index:5;align-items:center;gap:20px;padding:12px 20px;display:flex;position:sticky;top:0}.brand{letter-spacing:.4px;align-items:center;gap:7px;font-weight:800;display:inline-flex}.brand img{border-radius:5px;width:20px;height:20px;display:block}.brand .sub{color:var(--mid);margin-left:8px;font-size:12px;font-weight:400}nav{gap:2px;display:inline-flex}.tab{font:inherit;color:var(--mid);cursor:pointer;background:0 0;border:0;border-radius:7px 7px 0 0;padding:7px 12px 8px;font-size:12.5px;transition:color .15s,background .15s;position:relative}.tab:hover{color:var(--ink);background:var(--soft)}.tab.active{color:var(--ink);font-weight:600}.tab.active:after{content:"";background:var(--ink);border-radius:2px 2px 0 0;height:2px;position:absolute;bottom:0;left:10px;right:10px}.meta{color:var(--mid);margin-left:auto;font-family:ui-monospace,Consolas,monospace;font-size:11.5px}#root{flex-direction:column;min-height:100vh;display:flex}main{flex:1 0 auto;width:100%;max-width:1240px;margin:0 auto;padding:18px 20px 28px}.panel{display:none}.panel.active{display:block}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.toolbar label{color:var(--mid);font-size:12px}.sep{background:var(--soft-2);width:1px;height:20px;margin:0 4px}.grow{max-width:340px}.compose-toolbar{align-items:center}.compose-label{color:var(--mid);white-space:nowrap;font-size:12px}.compose-bar{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);min-width:0;box-shadow:var(--shadow-sm);flex:auto;align-items:stretch;transition:border-color .15s,box-shadow .15s;display:flex;overflow:hidden}.compose-bar:focus-within{border-color:var(--ink);box-shadow:0 0 0 3px #16181c0f}.compose-bar select,.compose-bar textarea{box-shadow:none;background-color:#0000;border:0;border-radius:0;padding:8px 10px}.compose-bar select:hover,.compose-bar textarea:hover{border-color:#0000}.compose-bar select{border-right:1px solid var(--line);background-color:var(--soft);flex:0 0 232px;font-size:12.5px}.compose-bar textarea{resize:vertical;flex:auto;min-width:180px;min-height:38px;line-height:1.5}.compose-bar .btn{border-radius:var(--radius-sm);flex:none;align-self:center;margin:3px}.compose-bar textarea::placeholder{color:#b3b8bd;font-size:12.5px}@media (width<=820px){.compose-toolbar{flex-direction:column;align-items:stretch;gap:6px}.compose-bar{flex-wrap:wrap}.compose-bar select{border-right:0;border-bottom:1px solid var(--line);flex:100%}.compose-bar textarea{flex:160px}.compose-bar .btn{margin:3px 3px 3px 0}table.directory-board{min-width:620px}.directory-board .board-ops{width:150px}.directory-board .board-directory{width:34%;min-width:200px}.directory-board .board-task-state{width:19%}.directory-board .board-goal-state{width:25%}.board-goal-label,.board-deadline{white-space:nowrap}}input,select,textarea{font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);padding:6px 10px;transition:border-color .15s,box-shadow .15s}input::placeholder,textarea::placeholder{color:#b3b8bd}input:focus,select:focus,textarea:focus{border-color:var(--ink);outline:none;box-shadow:0 0 0 3px #16181c12}select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--mid) 50%), linear-gradient(135deg, var(--mid) 50%, transparent 50%);cursor:pointer;background-position:calc(100% - 14px) 52%,calc(100% - 9px) 52%;background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:26px}.goal-form{flex-direction:column;gap:12px;display:flex}.goal-form-section{font-size:12px}.goal-form-title{margin-bottom:4px;font-weight:700}.goal-cwd-input{width:100%}.goal-dur-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.goal-dur-input{width:96px}.goal-dur-unit{width:92px}.goal-prompt{resize:vertical;width:100%;line-height:1.55}.goal-hint{color:var(--mid);font-size:11px}.goal-reset{cursor:pointer;align-items:center;gap:6px;font-size:12px;display:flex}.goal-presets{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.goal-actions{align-items:center;gap:8px;margin-top:12px;display:flex}.btn{font:inherit;cursor:pointer;border-radius:var(--radius-sm);background:var(--ink);color:var(--paper);border:0;padding:6px 12px;transition:opacity .15s,background .15s,color .15s}.btn:hover{opacity:.86}.btn.ghost{background:var(--soft);color:var(--ink)}.btn.ghost:hover{background:var(--soft-2);opacity:1}.btn.ghost.danger{color:var(--danger);background:0 0;border:1px solid #b3261e4d}.btn.ghost.danger:hover{opacity:1;background:#b3261e12}.btn.small{border-radius:7px;padding:3px 9px;font-size:12px}.btn:disabled{opacity:.4;cursor:default}.btn.danger{color:#fff;background:#b3261e}.toast-stack{z-index:60;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}.toast{background:var(--ink);color:var(--paper);white-space:pre-wrap;word-break:break-all;border-radius:10px;max-width:72vw;padding:9px 16px;font-size:12.5px;box-shadow:0 8px 24px #14161a40}.dlg{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:50;background:#fbfbfcdb;justify-content:center;align-items:flex-start;padding:96px 16px;display:flex;position:fixed;inset:0}.dlg-box{background:var(--paper);border-radius:var(--radius);width:min(460px,94vw);padding:16px 18px;box-shadow:0 12px 40px #14161a29}.dlg-title{margin-bottom:6px;font-weight:700}.dlg-msg{color:var(--ink);white-space:pre-wrap;word-break:break-all;margin-bottom:6px}.dlg-input{width:100%;margin:8px 0 4px;font-family:ui-monospace,Consolas,monospace;font-size:12.5px}.dlg-acts{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.card{background:var(--paper);border-radius:var(--radius);margin-bottom:12px;padding:10px 12px;box-shadow:0 0 0 1px #16181c12}.card.hidden{display:none}.fold-row{border-top:1px solid var(--line);margin-top:8px;padding-top:2px}.fold-row>summary{cursor:pointer;color:var(--ink-2);align-items:center;gap:7px;padding:7px 2px;font-size:12.5px;font-weight:600;list-style:none;display:flex}.fold-row>summary::-webkit-details-marker{display:none}.fold-row>summary:before{content:"▸";color:var(--mid);font-size:10px}.fold-row[open]>summary:before{content:"▾"}.fold-row>summary:hover{color:var(--ink)}.fold-row table{margin-top:4px}.localtask-cli-reference{margin-top:10px}.localtask-cli-reference>details>summary{cursor:pointer;color:var(--ink-2);align-items:center;gap:7px;padding:7px 2px;font-size:12.5px;font-weight:600;list-style:none;display:flex}.localtask-cli-reference>details>summary::-webkit-details-marker{display:none}.localtask-cli-reference>details>summary:before{content:"▸";color:var(--mid);font-size:10px}.localtask-cli-reference>details[open]>summary:before{content:"▾"}.localtask-cli-reference>details>summary:hover{color:var(--ink)}.import-remote-entry{flex-wrap:wrap;align-items:center;gap:8px;margin:-2px 0 8px;font-size:11.5px;display:flex}.import-remote-bar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:10px;display:flex}.import-remote-bar label{color:var(--mid);align-items:center;gap:6px;font-size:12px;display:inline-flex}.import-remote-err{border-radius:var(--radius-sm);color:var(--danger);border:1px solid #b3261e4d;margin-bottom:10px;padding:8px 10px;font-size:12px}.import-remote-list{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);max-height:46vh;overflow:auto}.import-remote-item{border-bottom:1px solid var(--line);cursor:pointer;align-items:baseline;gap:8px;padding:7px 10px;font-size:12.5px;display:flex}.import-remote-item:last-child{border-bottom:0}.import-remote-item:hover{background:var(--soft)}.import-remote-item input{flex:none;align-self:center}.import-remote-topic{font-family:var(--mono);color:var(--mid);background:var(--soft);text-overflow:ellipsis;white-space:nowrap;border-radius:4px;flex:none;max-width:120px;padding:1px 6px;font-size:10.5px;overflow:hidden}.import-remote-text{min-width:0;color:var(--ink);flex:auto}.import-remote-actions{align-items:center;gap:8px;margin-top:12px;font-size:11.5px;display:flex}.repo-boards{text-overflow:ellipsis;max-width:220px;overflow:hidden}.compose-context{background:var(--soft);border-radius:var(--radius-sm);color:var(--ink-2);flex-wrap:wrap;align-items:baseline;gap:8px;margin:0 0 6px;padding:5px 10px;font-size:11.5px;display:flex}.compose-context .repo-name{color:var(--ink);font-weight:700}.compose-context .repo-desc{color:var(--ink-2)}.compose-context .repo-boards-list{color:var(--mid);margin-left:auto}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:14px;margin:4px 0 14px;display:flex}.page-head .title-block{min-width:0}.page-head h2{letter-spacing:.2px;margin:0;font-size:16px;font-weight:700}.page-head .page-desc{color:var(--mid);max-width:760px;margin-top:3px;font-size:12px}.page-head .page-desc strong{color:var(--ink-2)}.page-head .acts{flex-shrink:0;align-items:center;gap:8px;display:flex}.form-grid{flex-direction:column;gap:13px;display:flex}.form-field{flex-direction:column;gap:5px;display:flex}.form-field>label{color:var(--mid);font-size:11px;font-weight:600}.form-field input,.form-field select{width:100%}.form-field textarea{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);width:100%;min-height:96px;color:var(--ink);font:inherit;resize:vertical;padding:8px 10px;line-height:1.5}.form-acts{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:2px;display:flex}.rp-filters{flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 10px;display:flex}.rp-chip{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--paper);color:var(--ink-2);border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:12px;display:inline-flex}.rp-chip b{font-family:var(--mono);color:var(--ink);font-weight:650}.rp-chip:hover{border-color:var(--mid)}.rp-chip.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}.rp-chip.on b{color:var(--paper)}.rp-chip-manage{color:var(--mid);margin-left:auto}.rp-table-wrap{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow-x:auto}.rp-table{border-collapse:collapse;width:100%}.rp-table th{text-align:left;font-family:var(--label);letter-spacing:.04em;text-transform:uppercase;color:var(--mid);background:var(--soft);border-bottom:1px solid var(--line);white-space:nowrap;padding:8px 12px;font-size:10.5px;font-weight:600}.rp-table td{border-bottom:1px solid var(--line);vertical-align:top;padding:8px 12px;font-size:12.5px}.rp-table tbody tr:last-child td{border-bottom:0}.rp-table tbody tr:hover td{background:#faf9f6}.rp-name strong{color:var(--ink);font-size:13px;font-weight:650}.rp-desc{text-overflow:ellipsis;white-space:nowrap;max-width:42ch;margin-top:2px;font-size:11px;overflow:hidden}.rp-path{color:var(--mid);word-break:break-all;max-width:34ch;font-size:11px}.rp-tags{white-space:nowrap}.rp-tags .tag{margin-right:4px}.rp-boards{white-space:nowrap}.rp-board{align-items:center;gap:3px;margin-right:4px;padding-right:3px;display:inline-flex}.rp-x{font:inherit;cursor:pointer;color:var(--mid);background:0 0;border:0;border-radius:3px;padding:0 2px;font-size:12px;line-height:1}.rp-x:hover{color:var(--danger);background:#b3261e14}.rp-add{font:inherit;border:1px dashed var(--soft-2);color:var(--mid);cursor:pointer;background:0 0;border-radius:4px;padding:1px 4px;font-size:11px}.rp-add:hover{border-color:var(--mid);color:var(--ink-2)}.rp-acts{white-space:nowrap}.rp-acts .btn{margin:0 3px 0 0}.rp-empty{text-align:center;padding:22px 12px}.rp-boards-manage{margin-bottom:10px}.rp-board-list{flex-direction:column;gap:4px;display:flex}.rp-board-item{align-items:baseline;gap:10px;padding:4px 0;font-size:12.5px;display:flex}.rp-board-name{color:var(--ink);font-weight:650}.rp-board-desc{font-size:11.5px}.rp-board-item .acts{white-space:nowrap;margin-left:auto}.bd-workbench{flex-direction:column;gap:12px;display:flex}.bd-board{padding:0 0 10px}.bd-board.drop{outline:1px dashed var(--ink);outline-offset:-1px}.bd-board .colhead{border-bottom:1px solid var(--line);margin:0;padding:8px 12px}.bd-head h3{margin:0;font-size:13px}.bd-head .bd-count{margin-left:auto;font-size:11px}.bd-grid{grid-template-columns:repeat(auto-fill,118px);justify-content:start;gap:8px;padding:10px 12px 0;display:grid}.bd-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);cursor:grab;text-align:center;flex-direction:column;align-items:center;gap:4px;padding:12px 8px 8px;display:flex;position:relative}.bd-card:hover{border-color:var(--mid);box-shadow:var(--shadow-sm)}.bd-card.dragging{opacity:.45}.bd-card.drop{outline:1px dashed var(--ink);outline-offset:-1px}.bd-card .glyph{background:var(--ink);color:#fff;border-radius:10px;place-items:center;width:38px;height:38px;font-size:16px;font-weight:700;display:grid}.bd-card .nm{text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:var(--ink);font-size:12px;font-weight:600;overflow:hidden}.bd-card .ds{-webkit-line-clamp:2;min-height:28px;color:var(--mid);-webkit-box-orient:vertical;font-size:11px;line-height:14px;display:-webkit-box;overflow:hidden}.bd-card .acts{gap:2px;display:none;position:absolute;top:4px;right:4px}.bd-card:hover .acts{display:inline-flex}.bd-card .acts .btn{padding:1px 4px;font-size:10px}.bd-empty{text-align:center;grid-column:1/-1;padding:14px 0;font-size:11px}.bd-exp{width:100%;font-family:var(--mono);font-size:11px}.colhead{align-items:baseline;gap:8px;margin:2px 2px 8px;display:flex}h3{margin:0;font-size:13px;font-weight:700}.cols{align-items:flex-start;gap:14px;display:flex}.col{flex:1;min-width:0}@media (width<=900px){.cols{flex-direction:column}.col{width:100%}}.list{padding:4px}.row{border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:8px 10px;transition:background .12s;display:flex}.row:hover{background:var(--soft)}.row+.row{margin-top:2px}.row .tid{color:var(--mid);text-align:right;flex-shrink:0;min-width:30px;font-family:ui-monospace,Consolas,monospace;font-size:11.5px}.row .topic{background:var(--soft-2);white-space:nowrap;border-radius:5px;flex-shrink:0;padding:1px 6px;font-size:12px;font-weight:600}.row .text{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.row .time{color:var(--mid);white-space:nowrap;flex-shrink:0;font-size:11.5px}.row .note{color:var(--mid);word-break:break-word;-webkit-line-clamp:2;-webkit-box-orient:vertical;flex-basis:100%;padding-left:40px;font-size:11.5px;line-height:1.4;display:-webkit-box;overflow:hidden}.row-inline{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row .name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.row .desc{color:var(--mid);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;overflow:hidden}.row .acts{flex-shrink:0;align-items:center;gap:6px;margin-left:auto;display:flex}.plats{flex-wrap:wrap;gap:4px;display:flex}.pill{font:inherit;cursor:pointer;background:var(--soft);color:var(--mid);border:0;border-radius:999px;padding:5px 8px;font-size:11px;line-height:1;transition:background .12s,color .12s}.pill:hover{background:var(--soft-2);color:var(--ink)}.pill.on{background:var(--ink);color:var(--paper);font-weight:600}.rp-ws-trigger .rp-caret{opacity:.75;margin-left:3px;font-size:9px}.pill.on.lnk{background:var(--paper);color:var(--ink);border:1.5px dashed var(--ink);padding:4px 6.5px}.tag{border:1px solid var(--soft-2);color:var(--mid);white-space:nowrap;letter-spacing:0;background:0 0;border-radius:4px;padding:1px 6px;font-size:10.5px;font-weight:600}.tag.strong{background:var(--ink);color:var(--paper)}.tag.badge{color:var(--ink-2);border:1px solid var(--soft-2);letter-spacing:.02em;background:0 0;font-weight:600}table{border-collapse:collapse;width:100%}th,td{text-align:left;vertical-align:top;padding:9px 10px}th{color:var(--mid);font-family:var(--label);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;font-size:10.5px;font-weight:600}tbody tr:hover{background:var(--soft)}tbody tr+tr td{box-shadow:inset 0 1px 0 var(--soft)}.mono,td.path{font-family:var(--mono);word-break:break-all;font-size:11.5px}td.ops{white-space:nowrap}td.ops .btn{margin:0 3px 3px 0}.muted{color:var(--mid)}.bad{font-weight:700}.queue-table{table-layout:fixed}.queue-table .c-drag{width:30px}.queue-table .c-id{width:46px}.queue-table .c-status{width:104px}.queue-table .c-time{width:150px}.queue-table .c-ops{width:196px}.queue-wrap{overflow-x:auto}.queue-table td.task-text{white-space:pre-wrap;word-break:break-word;font-size:12.5px;line-height:1.45}.queue-table .c-time{font-family:var(--mono);color:var(--mid);font-size:11px}.queue-table thead th{background:var(--soft);border-bottom:1px solid var(--line);color:var(--mid);font-family:var(--label);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;vertical-align:middle;padding:7px 10px;font-size:10.5px;font-weight:600}.queue-table tbody td{vertical-align:middle;padding:8px 10px}.queue-table .board-status{color:var(--ink-2);font-size:11.5px}.queue-table .board-status.done:before{background:var(--soft-2);box-shadow:inset 0 0 0 1.5px var(--soft-2)}.queue-table .board-status.pend:before{background:var(--live);box-shadow:0 0 0 3px #1f7a4d1f}.board-toolbar{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;margin-bottom:10px;padding:10px 12px;display:flex}.board-heading,.board-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.board-heading strong{font-family:var(--label);font-size:13.5px;font-weight:600}.board-heading .muted{font-size:11.5px}.board-live{color:var(--mid);align-items:center;gap:6px;font-size:11px;display:inline-flex}.board-live-dot{background:var(--mid);border-radius:50%;flex:none;width:6px;height:6px}.board-live-dot.ok{background:var(--live);animation:2.4s ease-in-out infinite board-pulse}.board-live-dot.reconnecting{background:var(--danger)}.board-live-dot.connecting{background:var(--mid)}@keyframes board-pulse{0%,to{box-shadow:0 0 #1f7a4d59}50%{box-shadow:0 0 0 3px #1f7a4d00}}@media (prefers-reduced-motion:reduce){.board-live-dot.ok{animation:none}}.board-table-wrap{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);width:100%;box-shadow:var(--shadow-sm);margin-bottom:12px;overflow-x:auto}table.directory-board{table-layout:fixed;border-collapse:separate;border-spacing:0;min-width:780px}.directory-board thead th{font-family:var(--label);letter-spacing:.04em;text-transform:uppercase;color:var(--mid);text-align:left;background:var(--soft);border-bottom:1px solid var(--line);white-space:nowrap;padding:7px 12px;font-size:10.5px;font-weight:600}.directory-board td{border-bottom:1px solid var(--line);vertical-align:top;padding:8px 12px}.directory-board tbody tr:last-child td{border-bottom:0}.directory-board tbody tr{cursor:pointer;--rail:var(--soft-2);transition:background .12s}.directory-board tbody tr:hover{background:#faf9f6}.directory-board tbody tr td:first-child{box-shadow:inset 2px 0 0 var(--rail)}.directory-board tbody tr[data-state=live]{--rail:var(--live)}.directory-board tbody tr[data-state=stale]{--rail:var(--warn)}.directory-board tbody tr[data-state=pool]{--rail:var(--ink-2)}.directory-board tbody tr.is-active{background:var(--soft);--rail:var(--ink)}.directory-board .board-check{text-align:center;width:34px}.directory-board thead .board-check input{vertical-align:middle;cursor:pointer}.directory-board thead .board-check input:disabled{cursor:default;opacity:.35}.directory-board .board-directory{width:36%;min-width:240px}.directory-board .board-task-state,.directory-board .board-goal-state{width:17%}.directory-board .board-ops{width:290px}.directory-board .board-ops .btn{opacity:.7;transition:opacity .12s,background .12s}.directory-board tbody tr:hover .board-ops .btn,.directory-board tbody tr.is-active .board-ops .btn,.directory-board tbody tr:focus-within .board-ops .btn{opacity:1}.board-name-line{align-items:baseline;gap:7px;min-width:0;display:flex}.board-name-line strong{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;font-size:13.5px;font-weight:650;overflow:hidden}.board-cwd{font-family:var(--mono);color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;flex:0 auto;min-width:0;font-size:10.5px;line-height:1.4;overflow:hidden}.board-cwd .anc{color:var(--mid)}.board-summary-line{align-items:baseline;gap:6px;min-width:0;margin-top:1px;display:flex}.board-summary{min-width:0;color:var(--ink-2);font:inherit;text-align:left;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;background:0 0;border:0;flex:auto;padding:0;font-size:11.5px;line-height:1.4;display:block;overflow:hidden}.board-summary:hover{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.board-summary.muted{color:var(--mid)}.board-submit{min-width:0;max-width:46%;color:var(--mid);font:inherit;text-align:left;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;background:0 0;border:0;flex:0 auto;padding:0;font-size:11.5px;line-height:1.4;overflow:hidden}.board-submit:hover{color:var(--ink-2);-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.board-count,.board-deadline{font-family:var(--mono);color:var(--mid);letter-spacing:-.01em;margin-top:4px;font-size:10.5px;display:block}.board-count b{color:var(--ink);font-weight:650}.board-count .sep-dot{color:var(--soft-2);margin:0 2px}.board-deadline{font-size:10px}.board-goal-label{color:var(--live);font-family:var(--mono);cursor:pointer;letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;max-width:100%;padding:0;font-size:11px;font-weight:650;display:block;overflow:hidden}.board-goal-gone{display:block}.board-goal-label:hover{text-underline-offset:2px;text-decoration:underline}.board-ops{white-space:nowrap}.board-ops .btn{margin:0 3px 2px 0}.board-status-row{align-items:center;gap:8px;min-width:0;display:flex}.board-status-row .board-status{flex:0 auto;min-width:0}.board-wait-stop{flex:none}.board-pickup{font-family:var(--mono);color:var(--mid);white-space:nowrap;margin-top:2px;font-size:10.5px}.board-status{color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;vertical-align:bottom;align-items:center;gap:7px;max-width:100%;font-size:12px;display:inline-flex;overflow:hidden}.board-status:before{content:"";background:var(--soft-2);border-radius:50%;flex:none;width:6px;height:6px}.board-status.live:before{background:var(--live);box-shadow:0 0 0 3px #1f7a4d1f}.board-status.busy:before{background:var(--warn);box-shadow:0 0 0 3px #99690f21}.board-status.pool:before{background:var(--ink)}.board-status.stale:before{box-shadow:inset 0 0 0 1.5px var(--soft-2);background:0 0}.board-empty{text-align:center;padding:30px 16px}.board-empty-mark{border:1.5px dashed var(--soft-2);border-radius:50%;width:26px;height:26px;margin:0 auto 10px}.board-empty-title{color:var(--ink-2);font-size:12.5px;font-weight:600}.board-empty-sub{color:var(--mid);margin-top:3px;font-size:11.5px}.localtask-topic-cards-legacy{display:none}.board-settings-dialog{gap:14px;display:grid}.board-setting-section{border-bottom:1px solid var(--soft-2);padding-bottom:12px}.board-setting-section:last-child{border-bottom:0;padding-bottom:0}.board-setting-title{align-items:center;gap:8px;margin-bottom:6px;font-size:13px;font-weight:700;display:flex}.board-setting-control{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.board-setting-control select{min-width:170px;padding:6px 8px}.board-setting-help{margin:0 0 8px;font-size:11px;line-height:1.4}.board-settings-dialog textarea{box-sizing:border-box;resize:vertical;width:100%;font:inherit;font-size:12px}.board-setting-actions{flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;display:flex}.board-add-directory label{margin-bottom:5px;font-size:12px;font-weight:700;display:block}.board-add-directory input{box-sizing:border-box;width:100%;font:inherit;padding:8px}.board-add-directory p{margin:6px 0 0;font-size:11px}.copyable{cursor:copy;border-bottom:1px dashed #0000;transition:border-color .12s,color .12s}.copyable:hover{border-bottom-color:var(--mid)}.copyable:active{color:var(--ink)}dd .adapter-dir{margin-right:14px;display:inline-block}.settings{grid-template-columns:120px 1fr;align-items:center;gap:10px 16px;display:grid}.settings dt{color:var(--mid);font-size:12px}.settings dd{margin:0}.row-inline{gap:8px;margin-top:8px;display:flex}.row-inline input{flex:1}.cli-hint{color:var(--mid);flex-wrap:wrap;align-items:baseline;gap:4px 8px;padding:6px 4px 2px;font-size:11.5px;display:flex}.cli-hint-label{flex-basis:100%}.cli-cmd{background:var(--soft);white-space:nowrap;border-radius:5px;padding:1px 6px}.modal{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:20;background:#fbfbfcdb;justify-content:center;align-items:flex-start;padding:48px 16px;display:flex;position:fixed;inset:0}.modal.hidden{display:none}.modal-box{background:var(--paper);border-radius:var(--radius);flex-direction:column;width:min(880px,96vw);max-height:84vh;display:flex;overflow:hidden;box-shadow:0 12px 40px #14161a29}.modal-title{box-shadow:0 1px 0 var(--soft);justify-content:space-between;align-items:center;padding:12px 14px;font-weight:700;display:flex}.modal-body{padding:14px;overflow:auto}pre{white-space:pre-wrap;word-break:break-all;margin:0;font-family:ui-monospace,Consolas,monospace;font-size:12px;line-height:1.6}.d-add{background:var(--soft-2);font-weight:600}.d-del{color:var(--mid);text-decoration:line-through}.conflict-file{background:var(--soft);border-radius:10px;margin-bottom:10px;overflow:hidden}.conflict-file .cf-head{justify-content:space-between;align-items:center;padding:8px 12px;font-family:ui-monospace,Consolas,monospace;font-size:12px;display:flex}.conflict-file pre{background:var(--paper);padding:10px 12px}footer{color:var(--mid);text-align:center;padding:14px 20px 24px;font-size:11.5px}footer code{background:var(--soft);border-radius:6px;padding:1px 6px;font-family:ui-monospace,Consolas,monospace}.mdtext,.mdtext-plain{white-space:pre-wrap}.embed-image{vertical-align:middle;margin:0 2px;line-height:0;display:inline-block}.embed-image img{border-radius:var(--radius-sm);background:var(--soft);max-width:100%;max-height:220px;display:block}.embed-image.compact img{max-height:28px;box-shadow:0 0 0 1px var(--soft-2);border-radius:6px}.embed-file{background:var(--soft);color:var(--ink);vertical-align:middle;border-radius:7px;margin:0 2px;padding:1px 8px;font-size:12px;text-decoration:none;display:inline-block}.embed-file:hover{background:var(--soft-2)}.editor{border-radius:var(--radius);flex-direction:column;gap:12px;min-width:min(600px,80vw);display:flex;position:relative}.editor.drag{box-shadow:0 0 0 2px var(--ink)}.editor.drag:after{content:"松手即上传";border-radius:var(--radius);pointer-events:none;background:#ffffffdb;justify-content:center;align-items:center;font-weight:700;display:flex;position:absolute;inset:0}.ed-tip{color:var(--mid);font-size:11.5px;line-height:1.8}.ed-link{font:inherit;color:var(--ink);text-underline-offset:2px;cursor:pointer;background:0 0;border:0;padding:0 2px;font-weight:600;text-decoration:underline}.ed-link:disabled{color:var(--mid);cursor:default;text-decoration:none}.ed-field{flex-direction:column;gap:4px;display:flex}.ed-label{color:var(--mid);letter-spacing:.3px;font-size:11.5px;font-weight:600}.ed-textarea{width:100%;font:inherit;border-radius:var(--radius-sm);background:var(--soft);color:var(--ink);resize:vertical;border:0;padding:9px 11px}.ed-textarea:focus{outline:2px solid var(--soft-2)}.ed-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.ed-acts{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.ed-foot{box-shadow:0 -1px 0 var(--soft) inset;justify-content:space-between;align-items:center;gap:10px;padding-top:10px;display:flex}.preview{border-radius:var(--radius-sm);background:var(--soft);max-height:340px;padding:10px;overflow:auto}.hint{color:var(--mid);font-size:11.5px}.hint code,.ed-tip code,kbd{background:var(--soft-2);border-radius:5px;padding:0 4px;font-family:ui-monospace,Consolas,monospace;font-size:11px}.toggle{background:var(--soft);color:var(--mid);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 11px;font-size:12px;display:inline-flex;position:relative}.toggle:hover{background:var(--soft-2)}.toggle:focus-within{outline:2px solid var(--soft-2)}.toggle input{opacity:0;width:1px;height:1px;position:absolute}.toggle .dot{background:var(--mid);border-radius:50%;width:7px;height:7px}.toggle.on{background:var(--ink);color:var(--paper)}.toggle.on .dot{background:var(--paper)}