@lemoncat7/dsh-knowledge 1.1.1 → 1.1.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.
package/web/styles.css CHANGED
@@ -26,6 +26,8 @@
26
26
  --shadow: 0 18px 48px rgb(30 45 70 / 10%);
27
27
  --radius: 16px;
28
28
  --sidebar-width: 236px;
29
+ --scrollbar-thumb: color-mix(in srgb, var(--text-tertiary) 42%, transparent);
30
+ --scrollbar-thumb-hover: color-mix(in srgb, var(--text-secondary) 58%, transparent);
29
31
  }
30
32
 
31
33
  @media (prefers-color-scheme: dark) {
@@ -71,15 +73,134 @@ body {
71
73
 
72
74
  button, input, select, textarea { font: inherit; }
73
75
 
76
+ button {
77
+ -webkit-appearance: none;
78
+ appearance: none;
79
+ margin: 0;
80
+ }
81
+
82
+ input[type="search"] {
83
+ -webkit-appearance: none;
84
+ appearance: none;
85
+ }
86
+
87
+ input[type="search"]::-webkit-search-cancel-button,
88
+ input[type="search"]::-webkit-search-decoration {
89
+ -webkit-appearance: none;
90
+ appearance: none;
91
+ }
92
+
93
+ input[type="checkbox"],
94
+ input[type="radio"] {
95
+ -webkit-appearance: none;
96
+ appearance: none;
97
+ width: 16px;
98
+ height: 16px;
99
+ display: inline-grid;
100
+ place-content: center;
101
+ flex: none;
102
+ margin: 0;
103
+ border: 1px solid var(--border-strong);
104
+ background: var(--surface);
105
+ color: var(--on-accent);
106
+ transition: border-color .15s ease, background-color .15s ease, box-shadow .15s ease;
107
+ }
108
+
109
+ input[type="checkbox"] { border-radius: 5px; }
110
+ input[type="radio"] { border-radius: 50%; }
111
+
112
+ input[type="checkbox"]::before {
113
+ content: "";
114
+ width: 7px;
115
+ height: 4px;
116
+ border-bottom: 1.7px solid currentColor;
117
+ border-left: 1.7px solid currentColor;
118
+ opacity: 0;
119
+ transform: translateY(-1px) rotate(-45deg) scale(.72);
120
+ transition: opacity .12s ease, transform .15s cubic-bezier(.2, .8, .2, 1);
121
+ }
122
+
123
+ input[type="radio"]::before {
124
+ content: "";
125
+ width: 6px;
126
+ height: 6px;
127
+ border-radius: 50%;
128
+ background: currentColor;
129
+ opacity: 0;
130
+ transform: scale(.55);
131
+ transition: opacity .12s ease, transform .15s cubic-bezier(.2, .8, .2, 1);
132
+ }
133
+
134
+ input[type="checkbox"]:checked,
135
+ input[type="radio"]:checked {
136
+ border-color: var(--accent);
137
+ background: var(--accent);
138
+ }
139
+
140
+ input[type="checkbox"]:checked::before,
141
+ input[type="radio"]:checked::before {
142
+ opacity: 1;
143
+ transform: translateY(-1px) rotate(-45deg) scale(1);
144
+ }
145
+
146
+ input[type="radio"]:checked::before { transform: scale(1); }
147
+ input[type="checkbox"]:hover:not(:disabled),
148
+ input[type="radio"]:hover:not(:disabled) { border-color: var(--accent); }
149
+
74
150
  button, select, input[type="checkbox"], input[type="range"] { cursor: pointer; }
75
151
 
76
- button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible {
152
+ button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible, [tabindex]:focus-visible {
77
153
  outline: 3px solid color-mix(in srgb, var(--accent) 36%, transparent);
78
154
  outline-offset: 2px;
79
155
  }
80
156
 
81
157
  button:disabled { cursor: not-allowed; opacity: .56; }
82
158
 
159
+ ::selection { background: var(--accent-soft); color: var(--text); }
160
+
161
+ input:-webkit-autofill,
162
+ input:-webkit-autofill:hover,
163
+ input:-webkit-autofill:focus {
164
+ -webkit-text-fill-color: var(--text);
165
+ box-shadow: 0 0 0 1000px var(--surface) inset;
166
+ caret-color: var(--text);
167
+ }
168
+
169
+ html,
170
+ .mount-table,
171
+ .note-tree,
172
+ .note-editor-scroll,
173
+ .markdown-preview pre,
174
+ .candidate-comparison pre,
175
+ .dialog-body,
176
+ .textarea {
177
+ scrollbar-width: thin;
178
+ scrollbar-color: var(--scrollbar-thumb) transparent;
179
+ }
180
+
181
+ :where(html, .mount-table, .note-tree, .note-editor-scroll, .markdown-preview pre, .candidate-comparison pre, .dialog-body, .textarea)::-webkit-scrollbar {
182
+ width: 8px;
183
+ height: 8px;
184
+ }
185
+
186
+ :where(html, .mount-table, .note-tree, .note-editor-scroll, .markdown-preview pre, .candidate-comparison pre, .dialog-body, .textarea)::-webkit-scrollbar-track {
187
+ background: transparent;
188
+ }
189
+
190
+ :where(html, .mount-table, .note-tree, .note-editor-scroll, .markdown-preview pre, .candidate-comparison pre, .dialog-body, .textarea)::-webkit-scrollbar-thumb {
191
+ min-width: 28px;
192
+ min-height: 28px;
193
+ border: 2px solid transparent;
194
+ border-radius: 999px;
195
+ background: var(--scrollbar-thumb);
196
+ background-clip: padding-box;
197
+ }
198
+
199
+ :where(html, .mount-table, .note-tree, .note-editor-scroll, .markdown-preview pre, .candidate-comparison pre, .dialog-body, .textarea)::-webkit-scrollbar-thumb:hover {
200
+ background: var(--scrollbar-thumb-hover);
201
+ background-clip: padding-box;
202
+ }
203
+
83
204
  .visually-hidden {
84
205
  position: absolute;
85
206
  width: 1px;
@@ -138,12 +259,26 @@ button:disabled { cursor: not-allowed; opacity: .56; }
138
259
  border: 1px solid var(--border-strong);
139
260
  border-radius: 9px;
140
261
  padding: 9px 11px;
141
- background: var(--surface);
262
+ background-color: var(--surface);
142
263
  color: var(--text);
143
264
  transition: border-color .15s ease, box-shadow .15s ease;
144
265
  }
145
266
 
146
267
  .input, .select { height: 40px; min-height: 40px; font: inherit; line-height: 20px; }
268
+ .select {
269
+ -webkit-appearance: none;
270
+ appearance: none;
271
+ padding-right: 34px;
272
+ background-image:
273
+ linear-gradient(45deg, transparent 50%, var(--text-tertiary) 50%),
274
+ linear-gradient(135deg, var(--text-tertiary) 50%, transparent 50%);
275
+ background-position:
276
+ calc(100% - 15px) calc(50% - 1px),
277
+ calc(100% - 11px) calc(50% - 1px);
278
+ background-size: 4px 4px, 4px 4px;
279
+ background-repeat: no-repeat;
280
+ }
281
+ .select option { background: var(--dialog-surface); color: var(--text); }
147
282
  .textarea { min-height: 132px; resize: vertical; }
148
283
  .input::placeholder, .textarea::placeholder { color: var(--text-tertiary); }
149
284
  .input:focus, .select:focus, .textarea:focus { border-color: var(--accent); }
@@ -227,21 +362,18 @@ button:disabled { cursor: not-allowed; opacity: .56; }
227
362
  .sidebar-footer .button { justify-self: start; }
228
363
 
229
364
  .app-sidebar-resizer {
230
- position: relative;
365
+ position: sticky;
366
+ top: 0;
231
367
  z-index: 12;
232
368
  width: 6px;
233
369
  min-width: 6px;
370
+ height: 100vh;
371
+ height: 100dvh;
234
372
  cursor: col-resize;
235
373
  touch-action: none;
236
374
  background: transparent;
237
375
  outline-offset: -2px;
238
376
  }
239
- .app-sidebar-resizer {
240
- position: sticky;
241
- top: 0;
242
- height: 100vh;
243
- height: 100dvh;
244
- }
245
377
  .app-sidebar-resizer::before {
246
378
  content: "";
247
379
  position: absolute;
@@ -390,6 +522,39 @@ button:disabled { cursor: not-allowed; opacity: .56; }
390
522
  .panel-body { padding: 8px; }
391
523
 
392
524
  .bases-page { display: grid; gap: 26px; }
525
+ .app-shell[data-base-detail="true"] .topbar { min-height: 68px; padding-block: 11px; }
526
+ .app-shell[data-base-detail="true"] .topbar h1 { font-size: 19px; }
527
+ .app-shell[data-base-detail="true"] .page { width: 100%; max-width: none; padding: 16px clamp(14px, 2vw, 24px) 22px; }
528
+ .library-detail { min-width: 0; display: grid; gap: 14px; }
529
+ .library-detail-header {
530
+ min-width: 0;
531
+ display: grid;
532
+ grid-template-columns: auto minmax(0, 1fr) auto;
533
+ align-items: center;
534
+ gap: 12px 16px;
535
+ border: 1px solid var(--border);
536
+ border-radius: 14px;
537
+ padding: 12px 14px;
538
+ background: var(--surface);
539
+ }
540
+ .library-detail-back { align-self: center; gap: 7px; }
541
+ .library-detail-back::before {
542
+ content: "";
543
+ width: 7px;
544
+ height: 7px;
545
+ flex: none;
546
+ border-left: 1.5px solid currentColor;
547
+ border-bottom: 1.5px solid currentColor;
548
+ transform: rotate(45deg);
549
+ }
550
+ .library-detail-identity { min-width: 0; display: flex; align-items: center; gap: 11px; }
551
+ .library-detail-identity > div { min-width: 0; }
552
+ .library-detail-title-line { min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
553
+ .library-detail-title-line h2 { min-width: 0; overflow: hidden; margin: 0; color: var(--text); font-size: 16px; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
554
+ .library-detail-identity p { overflow: hidden; margin: 3px 0 0; color: var(--text-tertiary); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
555
+ .library-detail-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
556
+ .library-detail-notice { border: 1px solid color-mix(in srgb, var(--warning) 28%, var(--border)); border-radius: 10px; padding: 9px 12px; background: var(--warning-soft); color: var(--warning); font-size: 12px; }
557
+ .library-detail .note-workspace { height: calc(100dvh - 246px); min-height: 520px; }
393
558
  .workspace-switcher { display: flex; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--border); padding-bottom: 18px; }
394
559
  .workspace-switcher-leading { min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
395
560
  .workspace-switcher p { max-width: 56ch; margin: 0; color: var(--text-tertiary); font-size: 12px; text-align: right; }
@@ -439,8 +604,11 @@ button:disabled { cursor: not-allowed; opacity: .56; }
439
604
  .base-card-meta strong { display: block; margin-bottom: 1px; color: var(--text-tertiary); font-size: 10px; font-weight: 550; }
440
605
  .base-card-actions { grid-column: 4; grid-row: 1 / span 2; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
441
606
  .archived-bases { margin-top: 18px; }
442
- .archived-bases summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; border-radius: 10px; padding: 9px 12px; background: var(--surface-soft); color: var(--text-secondary); cursor: pointer; font-size: 12px; font-weight: 600; }
443
- .summary-count { min-width: 23px; border-radius: 6px; padding: 1px 7px; background: var(--surface); color: var(--text-tertiary); text-align: center; font-variant-numeric: tabular-nums; }
607
+ .archived-bases summary { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; border-radius: 10px; padding: 9px 12px; background: var(--surface-soft); color: var(--text-secondary); cursor: pointer; font-size: 12px; font-weight: 600; list-style: none; }
608
+ .archived-bases summary::-webkit-details-marker { display: none; }
609
+ .archived-bases summary::after { content: ""; width: 7px; height: 7px; flex: none; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; opacity: .72; transform: rotate(45deg) translate(-1px, -1px); transition: transform .16s ease; }
610
+ .archived-bases[open] summary::after { transform: rotate(225deg) translate(-1px, -1px); }
611
+ .summary-count { min-width: 23px; margin-left: auto; border-radius: 6px; padding: 1px 7px; background: var(--surface); color: var(--text-tertiary); text-align: center; font-variant-numeric: tabular-nums; }
444
612
  .mount-context { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-bottom: 14px; }
445
613
  .context-pill { min-width: 0; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 9px; border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px; background: var(--surface-soft); }
446
614
  .context-pill strong { color: var(--text-secondary); }
@@ -458,7 +626,7 @@ button:disabled { cursor: not-allowed; opacity: .56; }
458
626
  .mount-list-row:hover { background: var(--surface-hover); }
459
627
  .mount-list-row.is-selected { background: var(--accent-soft); box-shadow: inset 3px 0 0 var(--accent); }
460
628
  .mount-select { width: 28px; height: 28px; display: grid; place-items: center; cursor: pointer; }
461
- .mount-select input { width: 16px; height: 16px; accent-color: var(--accent); }
629
+ .mount-select input { width: 16px; height: 16px; }
462
630
  .mount-list-main { min-width: 0; }
463
631
  .mount-list-title { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
464
632
  .mount-list-main p { overflow: hidden; margin: 4px 0 0; color: var(--text-secondary); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
@@ -508,14 +676,35 @@ button:disabled { cursor: not-allowed; opacity: .56; }
508
676
  .note-tree-base:hover, .note-tree-document:hover, .note-tree-new:hover { background: var(--surface-hover); color: var(--text); }
509
677
  .tree-disclosure { width: 7px; height: 7px; flex: none; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(-45deg); transition: transform .16s ease; }
510
678
  .note-tree-group[data-expanded="true"] .tree-disclosure { transform: rotate(45deg) translate(-1px, -1px); }
511
- .tree-folder-icon { position: relative; width: 16px; height: 12px; flex: none; border: 1.4px solid currentColor; border-radius: 3px; opacity: .76; }
512
- .tree-folder-icon::before { content: ""; position: absolute; left: 1px; top: -4px; width: 7px; height: 4px; border: 1.4px solid currentColor; border-bottom: 0; border-radius: 3px 3px 0 0; background: inherit; }
679
+ .tree-folder-icon {
680
+ width: 17px;
681
+ height: 15px;
682
+ flex: none;
683
+ background: currentColor;
684
+ opacity: .54;
685
+ -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 17'%3E%3Cpath d='M1.5 5V3.2c0-.75.6-1.35 1.35-1.35H7c.42 0 .82.2 1.08.53L9.6 4.3h7.55c.75 0 1.35.6 1.35 1.35v7.8c0 .75-.6 1.35-1.35 1.35H2.85c-.75 0-1.35-.6-1.35-1.35V5Zm.35.15h16.3' fill='none' stroke='black' stroke-width='1.45' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
686
+ mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 17'%3E%3Cpath d='M1.5 5V3.2c0-.75.6-1.35 1.35-1.35H7c.42 0 .82.2 1.08.53L9.6 4.3h7.55c.75 0 1.35.6 1.35 1.35v7.8c0 .75-.6 1.35-1.35 1.35H2.85c-.75 0-1.35-.6-1.35-1.35V5Zm.35.15h16.3' fill='none' stroke='black' stroke-width='1.45' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
687
+ transition: color .15s ease, opacity .15s ease;
688
+ }
689
+ .note-tree-base:hover .tree-folder-icon { opacity: .7; }
690
+ .note-tree-group[data-expanded="true"] .tree-folder-icon { color: var(--accent); opacity: .8; }
513
691
  .tree-base-name { min-width: 0; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
514
692
  .tree-count { min-width: 20px; color: var(--text-tertiary); font-size: 10px; font-variant-numeric: tabular-nums; text-align: right; }
515
693
  .note-tree-documents { display: grid; gap: 1px; margin: 1px 0 5px 18px; padding-left: 10px; border-left: 1px solid color-mix(in srgb, var(--border-strong) 55%, transparent); }
516
694
  .note-tree-document { position: relative; min-height: 38px; gap: 8px; border-radius: 7px; padding: 5px 8px; }
517
695
  .note-tree-document[aria-current="page"] { background: color-mix(in srgb, var(--accent) 9%, var(--surface)); color: var(--text); box-shadow: inset 2px 0 0 color-mix(in srgb, var(--accent) 72%, transparent); }
518
- .tree-document-icon { width: 12px; height: 15px; flex: none; border: 1.2px solid currentColor; border-radius: 2px; opacity: .62; }
696
+ .tree-document-icon {
697
+ width: 14px;
698
+ height: 17px;
699
+ flex: none;
700
+ background: currentColor;
701
+ opacity: .52;
702
+ -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 19'%3E%3Cg fill='none' stroke='black' stroke-width='1.45' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.75 1.5h6.5l4 4v12H2.75z'/%3E%3Cpath d='M9.25 1.75v4h3.75M5.25 9h5.25M5.25 12h4.25'/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat;
703
+ mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 19'%3E%3Cg fill='none' stroke='black' stroke-width='1.45' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.75 1.5h6.5l4 4v12H2.75z'/%3E%3Cpath d='M9.25 1.75v4h3.75M5.25 9h5.25M5.25 12h4.25'/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat;
704
+ transition: color .15s ease, opacity .15s ease;
705
+ }
706
+ .note-tree-document:hover .tree-document-icon { opacity: .72; }
707
+ .note-tree-document[aria-current="page"] .tree-document-icon { color: var(--accent); opacity: .88; }
519
708
  .tree-document-copy { min-width: 0; flex: 1; }
520
709
  .note-tree-document > .badge { min-height: 17px; padding: 1px 5px; font-size: 8px; }
521
710
  .tree-document-copy strong, .tree-document-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@@ -594,8 +783,21 @@ button:disabled { cursor: not-allowed; opacity: .56; }
594
783
  .markdown-preview img { max-width: 100%; height: auto; border-radius: 10px; }
595
784
  .note-inspector { min-height: 48px; display: flex; align-items: center; gap: 16px; border-top: 1px solid var(--border); padding: 7px 16px; background: color-mix(in srgb, var(--surface-soft) 35%, var(--surface)); }
596
785
  .note-inspector label { display: flex; align-items: center; gap: 7px; color: var(--text-tertiary); font-size: 10px; }
597
- .note-inspector input, .note-meta-select { height: 30px; border: 1px solid transparent; border-radius: 6px; padding: 4px 7px; background: transparent; color: var(--text-secondary); outline: none; }
598
- .note-inspector input:focus, .note-meta-select:focus { border-color: var(--border-strong); background: var(--surface); }
786
+ .note-inspector input, .note-meta-select { height: 30px; border: 1px solid transparent; border-radius: 6px; padding: 4px 7px; background-color: transparent; color: var(--text-secondary); outline: none; }
787
+ .note-meta-select {
788
+ -webkit-appearance: none;
789
+ appearance: none;
790
+ padding-right: 25px;
791
+ background-image:
792
+ linear-gradient(45deg, transparent 50%, var(--text-tertiary) 50%),
793
+ linear-gradient(135deg, var(--text-tertiary) 50%, transparent 50%);
794
+ background-position:
795
+ calc(100% - 12px) calc(50% - 1px),
796
+ calc(100% - 8px) calc(50% - 1px);
797
+ background-size: 4px 4px, 4px 4px;
798
+ background-repeat: no-repeat;
799
+ }
800
+ .note-inspector input:focus, .note-meta-select:focus { border-color: var(--border-strong); background-color: var(--surface); }
599
801
  .note-tags-field { min-width: 0; flex: 1; }
600
802
  .note-tags-field input { width: min(100%, 360px); }
601
803
  .note-format-hint { margin-left: auto; color: var(--text-tertiary); font-size: 9px; white-space: nowrap; }
@@ -729,6 +931,21 @@ button:disabled { cursor: not-allowed; opacity: .56; }
729
931
  .form-grid .span-2 { grid-column: 1 / -1; }
730
932
  .check-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
731
933
  .check-option { display: flex; align-items: center; gap: 8px; border: 1px solid var(--border); border-radius: 8px; padding: 9px; }
934
+ .range-row { min-height: 30px; display: grid; grid-template-columns: minmax(0, 1fr) 44px; align-items: center; gap: 12px; }
935
+ .range-row input[type="range"] {
936
+ -webkit-appearance: none;
937
+ appearance: none;
938
+ width: 100%;
939
+ height: 20px;
940
+ margin: 0;
941
+ background: transparent;
942
+ }
943
+ .range-row input[type="range"]::-webkit-slider-runnable-track { height: 4px; border-radius: 999px; background: var(--surface-soft); box-shadow: inset 0 0 0 1px var(--border); }
944
+ .range-row input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 16px; height: 16px; margin-top: -6px; border: 2px solid var(--surface-raised); border-radius: 50%; background: var(--accent); box-shadow: 0 1px 4px color-mix(in srgb, var(--text) 18%, transparent); }
945
+ .range-row input[type="range"]::-moz-range-track { height: 4px; border: 0; border-radius: 999px; background: var(--surface-soft); box-shadow: inset 0 0 0 1px var(--border); }
946
+ .range-row input[type="range"]::-moz-range-progress { height: 4px; border-radius: 999px; background: var(--accent); }
947
+ .range-row input[type="range"]::-moz-range-thumb { width: 12px; height: 12px; border: 2px solid var(--surface-raised); border-radius: 50%; background: var(--accent); box-shadow: 0 1px 4px color-mix(in srgb, var(--text) 18%, transparent); }
948
+ .range-value { color: var(--text-secondary); font-size: 12px; font-variant-numeric: tabular-nums; text-align: right; }
732
949
 
733
950
  .history { display: grid; gap: 12px; }
734
951
  .history-item { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; }
@@ -797,6 +1014,10 @@ button:disabled { cursor: not-allowed; opacity: .56; }
797
1014
  .workspace-switcher-leading { align-items: flex-start; }
798
1015
  .workspace-switcher p { text-align: left; }
799
1016
  .workspace-tabs { align-self: flex-start; }
1017
+ .library-detail-header { grid-template-columns: minmax(0, 1fr) auto; align-items: start; }
1018
+ .library-detail-back { grid-column: 1 / -1; justify-self: start; }
1019
+ .library-detail-actions { align-self: center; }
1020
+ .library-detail .note-workspace { height: calc(100dvh - 260px); }
800
1021
  .knowledge-base-toolbar { align-items: stretch; flex-direction: column; gap: 8px; }
801
1022
  .base-search { max-width: none; }
802
1023
  .base-result-summary { margin-left: 0; }
@@ -864,6 +1085,11 @@ button:disabled { cursor: not-allowed; opacity: .56; }
864
1085
  .topbar-actions .button.primary::before { content: "+"; font-size: 18px; }
865
1086
  .workspace-tabs { width: 100%; }
866
1087
  .workspace-tabs .tab { min-width: 0; flex: 1; justify-content: center; padding-inline: 8px; }
1088
+ .library-detail-header { grid-template-columns: minmax(0, 1fr); }
1089
+ .library-detail-back, .library-detail-actions { grid-column: 1; }
1090
+ .library-detail-actions { justify-content: flex-start; }
1091
+ .library-detail-actions .button { flex: 1 1 auto; }
1092
+ .library-detail .note-workspace { height: calc(100dvh - 320px); min-height: 460px; }
867
1093
  .document-toolbar-actions { width: 100%; }
868
1094
  .document-toolbar-actions .button.primary { margin-left: auto; }
869
1095
  .form-grid { grid-template-columns: 1fr; }