nx-kv 0.11.0 → 0.11.2

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.
@@ -463,6 +463,164 @@ select {
463
463
  .compose-context .repo-desc { color: var(--ink-2); }
464
464
  .compose-context .repo-boards-list { color: var(--mid); margin-left: auto; }
465
465
 
466
+ /* 仓库页的页头与表单(类名沿用 nx-rh,样式按 nx-kv 的变量重写)——
467
+ 迁移时漏了这几行,仓库页在 nx-kv 里是"裸"的:标题、说明与按钮各占一行。 */
468
+ .page-head {
469
+ display: flex;
470
+ align-items: flex-start;
471
+ justify-content: space-between;
472
+ gap: 14px;
473
+ flex-wrap: wrap;
474
+ margin: 4px 0 14px;
475
+ }
476
+ .page-head .title-block { min-width: 0; }
477
+ .page-head h2 { font-size: 16px; font-weight: 700; margin: 0; letter-spacing: 0.2px; }
478
+ .page-head .page-desc { color: var(--mid); font-size: 12px; margin-top: 3px; max-width: 760px; }
479
+ .page-head .page-desc strong { color: var(--ink-2); }
480
+ .page-head .acts { display: flex; gap: 8px; flex-shrink: 0; align-items: center; }
481
+
482
+ .form-grid { display: flex; flex-direction: column; gap: 13px; }
483
+ .form-field { display: flex; flex-direction: column; gap: 5px; }
484
+ .form-field > label { font-size: 11px; color: var(--mid); font-weight: 600; }
485
+ .form-field input, .form-field select { width: 100%; }
486
+ .form-field textarea {
487
+ width: 100%;
488
+ min-height: 96px;
489
+ padding: 8px 10px;
490
+ border: 1px solid var(--line);
491
+ border-radius: var(--radius-sm);
492
+ background: var(--paper);
493
+ color: var(--ink);
494
+ font: inherit;
495
+ line-height: 1.5;
496
+ resize: vertical;
497
+ }
498
+ .form-acts { display: flex; justify-content: flex-end; gap: 8px; margin-top: 2px; flex-wrap: wrap; }
499
+
500
+ /* ---------- 仓库中心清单:扁平列表 + 看板筛选 ----------
501
+ * 一张中心清单(行 = 一个仓库),看板只作筛选器与行内标签。
502
+ * 加入看板 = 复制一份归属,仓库本体不动 —— 界面要说清这件事,
503
+ * 免得又读成"移动"(之前那套拖拽卡片墙就是这个误导)。 */
504
+ .rp-filters {
505
+ display: flex;
506
+ align-items: center;
507
+ gap: 6px;
508
+ flex-wrap: wrap;
509
+ margin: 0 0 10px;
510
+ }
511
+ .rp-chip {
512
+ font: inherit;
513
+ font-size: 12px;
514
+ cursor: pointer;
515
+ padding: 3px 10px;
516
+ border: 1px solid var(--line);
517
+ border-radius: 999px;
518
+ background: var(--paper);
519
+ color: var(--ink-2);
520
+ display: inline-flex;
521
+ align-items: center;
522
+ gap: 5px;
523
+ }
524
+ .rp-chip b { font-family: var(--mono); font-weight: 650; color: var(--ink); }
525
+ .rp-chip:hover { border-color: var(--mid); }
526
+ .rp-chip.on { background: var(--ink); border-color: var(--ink); color: var(--paper); }
527
+ .rp-chip.on b { color: var(--paper); }
528
+ .rp-chip-manage { margin-left: auto; color: var(--mid); }
529
+
530
+ .rp-table-wrap {
531
+ background: var(--paper);
532
+ border: 1px solid var(--line);
533
+ border-radius: var(--radius);
534
+ box-shadow: var(--shadow-sm);
535
+ overflow-x: auto;
536
+ }
537
+ .rp-table { width: 100%; border-collapse: collapse; }
538
+ .rp-table th {
539
+ text-align: left;
540
+ padding: 8px 12px;
541
+ font-family: var(--label);
542
+ font-size: 10.5px;
543
+ font-weight: 600;
544
+ letter-spacing: 0.04em;
545
+ text-transform: uppercase;
546
+ color: var(--mid);
547
+ background: var(--soft);
548
+ border-bottom: 1px solid var(--line);
549
+ white-space: nowrap;
550
+ }
551
+ .rp-table td {
552
+ padding: 8px 12px;
553
+ border-bottom: 1px solid var(--line);
554
+ vertical-align: top;
555
+ font-size: 12.5px;
556
+ }
557
+ .rp-table tbody tr:last-child td { border-bottom: 0; }
558
+ .rp-table tbody tr:hover td { background: #faf9f6; }
559
+ .rp-name strong { font-size: 13px; font-weight: 650; color: var(--ink); }
560
+ .rp-desc {
561
+ font-size: 11px;
562
+ margin-top: 2px;
563
+ max-width: 42ch;
564
+ overflow: hidden;
565
+ text-overflow: ellipsis;
566
+ white-space: nowrap;
567
+ }
568
+ .rp-path {
569
+ font-size: 11px;
570
+ color: var(--mid);
571
+ word-break: break-all;
572
+ max-width: 34ch;
573
+ }
574
+ .rp-tags { white-space: nowrap; }
575
+ .rp-tags .tag { margin-right: 4px; }
576
+ .rp-boards { white-space: nowrap; }
577
+ .rp-board {
578
+ display: inline-flex;
579
+ align-items: center;
580
+ gap: 3px;
581
+ margin-right: 4px;
582
+ padding-right: 3px;
583
+ }
584
+ .rp-x {
585
+ font: inherit;
586
+ font-size: 12px;
587
+ line-height: 1;
588
+ cursor: pointer;
589
+ border: 0;
590
+ background: transparent;
591
+ color: var(--mid);
592
+ padding: 0 2px;
593
+ border-radius: 3px;
594
+ }
595
+ .rp-x:hover { color: var(--danger); background: rgba(179, 38, 30, 0.08); }
596
+ .rp-add {
597
+ font: inherit;
598
+ font-size: 11px;
599
+ padding: 1px 4px;
600
+ border: 1px dashed var(--soft-2);
601
+ border-radius: 4px;
602
+ background: transparent;
603
+ color: var(--mid);
604
+ cursor: pointer;
605
+ }
606
+ .rp-add:hover { border-color: var(--mid); color: var(--ink-2); }
607
+ .rp-acts { white-space: nowrap; }
608
+ .rp-acts .btn { margin: 0 3px 0 0; }
609
+ .rp-empty { text-align: center; padding: 22px 12px; }
610
+
611
+ .rp-boards-manage { margin-bottom: 10px; }
612
+ .rp-board-list { display: flex; flex-direction: column; gap: 4px; }
613
+ .rp-board-item {
614
+ display: flex;
615
+ align-items: baseline;
616
+ gap: 10px;
617
+ font-size: 12.5px;
618
+ padding: 4px 0;
619
+ }
620
+ .rp-board-name { font-weight: 650; color: var(--ink); }
621
+ .rp-board-desc { font-size: 11.5px; }
622
+ .rp-board-item .acts { margin-left: auto; white-space: nowrap; }
623
+
466
624
  /* ---------- 仓库上下文工作台:主题容器纵向堆叠 + 手机式仓库方格卡片 ----------
467
625
  * 一个看板 = 一个主题容器(card 头 + 卡片网格);卡片可拖拽入板 / 插到某卡前 /
468
626
  * 拖回未分组。落点高亮用 1px 描边(与看板的行选中标记同一套视觉语言)。
@@ -806,10 +964,12 @@ table.directory-board { min-width: 780px; table-layout: fixed; border-collapse:
806
964
  既填上了空位,也让批量删除多一个入口。 */
807
965
  .directory-board thead .board-check input { vertical-align: middle; cursor: pointer; }
808
966
  .directory-board thead .board-check input:disabled { cursor: default; opacity: 0.35; }
809
- .directory-board .board-directory { width: 40%; min-width: 240px; }
810
- .directory-board .board-task-state { width: 18%; }
811
- .directory-board .board-goal-state { width: 19%; }
812
- .directory-board .board-ops { width: 196px; }
967
+ /* 列宽:操作列塞了 4 个按钮(任务 / 目标 / 删除队列 / 导入),要给够宽度,
968
+ 不然最后一个按钮会被挤出格子。目录列相应收窄。 */
969
+ .directory-board .board-directory { width: 36%; min-width: 240px; }
970
+ .directory-board .board-task-state { width: 17%; }
971
+ .directory-board .board-goal-state { width: 17%; }
972
+ .directory-board .board-ops { width: 290px; }
813
973
  /* 行内操作:默认低调,hover/选中时全亮(把"操作"从视觉噪音里挪出去)。
814
974
  常态 0.5 太像 disabled(disabled 才是 0.4),两态分不清 → 抬到 0.7。 */
815
975
  .directory-board .board-ops .btn { opacity: 0.7; transition: opacity 0.12s, background 0.12s; }
@@ -1 +1 @@
1
- import{o as e,s as t,t as n}from"./index-bExI8RZr.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-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};
@@ -0,0 +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)}