gabriel / musehub public
_issues.scss
2,625 lines 61.4 KB
Raw
sha256:9590cee1e0ccd6c76528f005b95d634d80f5019f0dcb7c371e149adc31d1fb65 refactor: enforce gRPC framing on all MWP wire traffic Sonnet 4.6 minor ⚠ breaking 156 days ago
1 // _issues.scss — Issue list page (.isl-* prefix)
2 // Covers: issue_list.html + fragments/issue_rows.html
3
4 // ── Page wrapper ────────────────────────────────────────────────────────────
5 .isl-page {
6 display: flex;
7 flex-direction: column;
8 gap: var(--space-4);
9 }
10
11 // ── Inline stat strip ────────────────────────────────────────────────────────
12 .isl-stat-strip {
13 display: flex;
14 align-items: center;
15 justify-content: space-between;
16 gap: var(--space-3);
17 font-size: 13px;
18 color: var(--text-secondary);
19 flex-wrap: wrap;
20 }
21
22 .isl-stat-counts {
23 display: flex;
24 align-items: center;
25 gap: 6px;
26 flex-wrap: wrap;
27 }
28
29 .isl-strip-filters {
30 display: flex;
31 align-items: center;
32 gap: var(--space-2);
33 flex-shrink: 0;
34 }
35
36 .isl-strip-select {
37 appearance: none;
38 background: var(--bg-surface);
39 border: 1px solid var(--border-default);
40 border-radius: var(--radius-sm);
41 color: var(--text-secondary);
42 font-size: 12px;
43 font-family: var(--font-mono);
44 padding: 3px 22px 3px 8px;
45 cursor: pointer;
46 transition: border-color var(--transition-fast), background var(--transition-fast);
47 background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%236e7681' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
48 background-repeat: no-repeat;
49 background-position: right 6px center;
50
51 &:hover { border-color: var(--border-muted); background-color: var(--bg-overlay); }
52 &:focus { outline: none; border-color: var(--color-accent-link); }
53 }
54
55 .isl-strip-clear {
56 font-size: 11px;
57 color: var(--text-muted);
58 text-decoration: none;
59 padding: 3px 6px;
60 border-radius: var(--radius-sm);
61 border: 1px solid var(--border-default);
62 transition: color var(--transition-fast), border-color var(--transition-fast);
63 &:hover { color: var(--text-primary); border-color: var(--border-muted); }
64 }
65
66 .isl-stat-pill {
67 display: inline-flex;
68 align-items: center;
69 gap: 5px;
70 text-decoration: none;
71 color: var(--text-secondary);
72 border-radius: 20px;
73 padding: 3px 10px;
74 transition: background var(--transition-fast);
75
76 strong {
77 font-weight: var(--font-weight-semibold);
78 color: var(--text-primary);
79 font-family: var(--font-mono);
80 }
81
82 &:hover { background: var(--bg-overlay); text-decoration: none; }
83
84 &--active {
85 background: var(--bg-overlay);
86 strong { color: var(--text-primary); }
87 }
88
89 &--agent {
90 strong { color: #a78bfa; }
91 }
92
93 &--anchored {
94 strong { color: #4f8ef7; }
95 }
96 }
97
98 .isl-pip {
99 width: 7px;
100 height: 7px;
101 border-radius: 50%;
102 flex-shrink: 0;
103 &--open { background: #3fb950; box-shadow: 0 0 5px rgba(#3fb950, 0.6); }
104 &--closed { background: #a78bfa; box-shadow: 0 0 5px rgba(#a78bfa, 0.6); }
105 }
106
107 .isl-stat-sep {
108 color: var(--border-default);
109 font-size: 14px;
110 line-height: 1;
111 user-select: none;
112 }
113
114 // ── 2-column layout ──────────────────────────────────────────────────────────
115 .isl-layout {
116 display: grid;
117 grid-template-columns: 1fr 220px;
118 gap: var(--space-4);
119 align-items: start;
120
121 @media (max-width: 900px) {
122 grid-template-columns: 1fr;
123 }
124 }
125
126 .isl-main { min-width: 0; display: flex; flex-direction: column; gap: var(--space-3); }
127
128 // ── Bulk action toolbar (JS-shown) ───────────────────────────────────────────
129 #bulk-toolbar { display: none; } // shown by issue-list.ts
130 .isl-bulk-toolbar {
131 display: flex;
132 align-items: center;
133 gap: var(--space-2);
134 padding: var(--space-2) var(--space-4);
135 background: var(--bg-overlay);
136 border-bottom: 1px solid var(--border-subtle);
137 font-size: 12px;
138 flex-wrap: wrap;
139 }
140 .isl-bulk-count { color: var(--text-secondary); font-weight: var(--font-weight-semibold); }
141 .isl-bulk-sep { width: 1px; height: 14px; background: var(--border-default); flex-shrink: 0; }
142 .isl-bulk-select {
143 font-size: 12px;
144 background: var(--bg-surface);
145 border: 1px solid var(--border-default);
146 border-radius: var(--radius-sm);
147 color: var(--text-primary);
148 padding: 3px 8px;
149 }
150 .isl-bulk-btn {
151 background: var(--bg-overlay);
152 border: 1px solid var(--border-default);
153 border-radius: var(--radius-sm);
154 color: var(--text-secondary);
155 font-size: 12px;
156 padding: 3px 10px;
157 cursor: pointer;
158 transition: all var(--transition-fast);
159 &:hover { border-color: var(--border-muted); color: var(--text-primary); }
160 &.isl-bulk-btn--deselect { color: var(--text-muted); }
161 }
162
163 // ── Toolbar ──────────────────────────────────────────────────────────────────
164 .isl-toolbar {
165 display: flex;
166 align-items: center;
167 flex-wrap: wrap;
168 gap: 0;
169 padding: 0 var(--space-4);
170 border-bottom: 1px solid var(--border-subtle);
171 min-height: 48px;
172 }
173
174 .isl-tabs {
175 display: flex;
176 align-items: center;
177 }
178
179 .isl-tab {
180 display: inline-flex;
181 align-items: center;
182 gap: 6px;
183 padding: 14px 14px;
184 font-size: 13px;
185 color: var(--text-muted);
186 text-decoration: none;
187 border-bottom: 2px solid transparent;
188 white-space: nowrap;
189 transition: color var(--transition-fast), border-color var(--transition-fast);
190
191 &:hover { color: var(--text-secondary); text-decoration: none; }
192 &.isl-tab--active {
193 color: var(--text-primary);
194 border-bottom-color: var(--color-accent);
195 font-weight: var(--font-weight-semibold);
196 }
197 }
198
199 .isl-tab-dot {
200 width: 7px;
201 height: 7px;
202 border-radius: 50%;
203 flex-shrink: 0;
204 }
205 .isl-tab-dot--open { background: #3fb950; }
206 .isl-tab-dot--closed { background: #a78bfa; }
207
208 .isl-tab-ct {
209 background: var(--bg-overlay);
210 border: 1px solid var(--border-subtle);
211 border-radius: var(--radius-full);
212 font-size: 10px;
213 font-weight: var(--font-weight-semibold);
214 padding: 1px 6px;
215 font-family: var(--font-mono);
216 min-width: 18px;
217 text-align: center;
218 color: var(--text-muted);
219 &.isl-tab-ct--active { color: var(--text-primary); }
220 }
221
222 .isl-filters {
223 display: flex;
224 align-items: center;
225 gap: var(--space-2);
226 margin-left: auto;
227 flex-wrap: wrap;
228 padding: var(--space-2) 0;
229 }
230
231 .isl-filter-select {
232 font-size: 12px;
233 background: var(--bg-surface);
234 border: 1px solid var(--border-subtle);
235 border-radius: var(--radius-sm);
236 color: var(--text-secondary);
237 padding: 4px 8px;
238 cursor: pointer;
239 transition: border-color var(--transition-fast);
240 &:hover { border-color: var(--border-default); color: var(--text-primary); }
241 &:focus { outline: none; border-color: var(--color-accent); }
242 }
243
244 .isl-clear-btn {
245 font-size: 12px;
246 color: var(--text-muted);
247 text-decoration: none;
248 padding: 4px 6px;
249 border-radius: var(--radius-sm);
250 transition: color var(--transition-fast);
251 &:hover { color: var(--color-danger); text-decoration: none; }
252 }
253
254 .isl-result-count {
255 font-size: 12px;
256 color: var(--text-muted);
257 white-space: nowrap;
258 }
259
260 // ── Issue rows ───────────────────────────────────────────────────────────────
261 .isl-list { display: flex; flex-direction: column; }
262
263 .isl-row {
264 display: flex;
265 align-items: flex-start;
266 gap: var(--space-3);
267 padding: var(--space-3) var(--space-4);
268 border-bottom: 1px solid var(--border-subtle);
269 text-decoration: none;
270 transition: background var(--transition-fast);
271 cursor: pointer;
272
273 &:last-child { border-bottom: none; }
274 &:hover { background: var(--bg-overlay); text-decoration: none; }
275 }
276
277 // Checkbox
278 .isl-check {
279 flex-shrink: 0;
280 margin-top: 3px;
281 accent-color: var(--color-accent);
282 cursor: pointer;
283 }
284
285 // State icon
286 .isl-row-icon { flex-shrink: 0; margin-top: 1px; }
287 .isl-icon { display: block; }
288 .isl-icon--open { color: #3fb950; }
289 .isl-icon--closed { color: #a78bfa; }
290
291 // Row body — three-line layout
292 .isl-row-body {
293 flex: 1;
294 min-width: 0;
295 display: flex;
296 flex-direction: column;
297 gap: 5px;
298 }
299
300 // Line 1: title + number
301 .isl-row-title-line {
302 display: flex;
303 align-items: baseline;
304 gap: 8px;
305 }
306
307 .isl-row-title {
308 font-size: 14px;
309 font-weight: var(--font-weight-semibold);
310 color: var(--text-primary);
311 line-height: 1.4;
312 .isl-row:hover & { color: var(--color-accent-link); }
313 }
314
315 .isl-row-num {
316 font-size: 12px;
317 color: var(--text-muted);
318 font-family: var(--font-mono);
319 flex-shrink: 0;
320 }
321
322 // Line 2: author + labels + agent badge
323 .isl-row-meta-line {
324 display: flex;
325 align-items: center;
326 gap: 6px;
327 flex-wrap: wrap;
328 font-size: 11px;
329 color: var(--text-muted);
330 }
331
332 .isl-label-chip {
333 display: inline-block;
334 padding: 1px 7px;
335 border-radius: var(--radius-full);
336 font-size: 11px;
337 font-weight: var(--font-weight-medium);
338 border: 1px solid;
339 white-space: nowrap;
340 }
341
342 .isl-meta-author {
343 display: inline-flex;
344 align-items: center;
345 gap: 4px;
346 color: var(--text-secondary);
347 }
348
349 .isl-meta-agent-icon {
350 color: #a78bfa;
351 display: inline-flex;
352 align-items: center;
353 }
354
355 .isl-mini-avatar {
356 width: 14px;
357 height: 14px;
358 border-radius: 50%;
359 display: inline-flex;
360 align-items: center;
361 justify-content: center;
362 font-size: 7px;
363 font-weight: var(--font-weight-bold);
364 color: #fff;
365 flex-shrink: 0;
366 }
367
368 // Line 3: intel signals (only rendered when issue has anchors)
369 .isl-row-intel-line {
370 display: flex;
371 align-items: center;
372 gap: 6px;
373 flex-wrap: wrap;
374 }
375
376 .isl-intel-chip {
377 display: inline-flex;
378 align-items: center;
379 font-size: 11px;
380 font-family: var(--font-mono);
381 border-radius: 10px;
382 padding: 1px 8px;
383 border: 1px solid;
384 white-space: nowrap;
385 font-weight: var(--font-weight-medium);
386
387 &--anchor {
388 color: #4f8ef7;
389 background: color-mix(in srgb, #4f8ef7 8%, transparent);
390 border-color: color-mix(in srgb, #4f8ef7 25%, transparent);
391 }
392 &--blast-low {
393 color: #4f8ef7;
394 background: color-mix(in srgb, #4f8ef7 8%, transparent);
395 border-color: color-mix(in srgb, #4f8ef7 25%, transparent);
396 }
397 &--blast-mid {
398 color: #f97316;
399 background: color-mix(in srgb, #f97316 8%, transparent);
400 border-color: color-mix(in srgb, #f97316 25%, transparent);
401 }
402 &--blast-high {
403 color: #ef4444;
404 background: color-mix(in srgb, #ef4444 8%, transparent);
405 border-color: color-mix(in srgb, #ef4444 25%, transparent);
406 }
407 }
408
409 .isl-intel-age {
410 font-size: 11px;
411 color: var(--text-muted);
412 font-family: var(--font-mono);
413 }
414 // Right column: comment count + assignee + chevron
415 .isl-row-right {
416 flex-shrink: 0;
417 display: flex;
418 align-items: center;
419 gap: var(--space-2);
420 margin-top: 2px;
421 }
422
423 .isl-comment-ct {
424 display: inline-flex;
425 align-items: center;
426 gap: 3px;
427 font-size: 11px;
428 color: var(--text-muted);
429 font-family: var(--font-mono);
430 white-space: nowrap;
431 }
432
433 .isl-assignee-avatar {
434 width: 20px;
435 height: 20px;
436 border-radius: 50%;
437 display: inline-flex;
438 align-items: center;
439 justify-content: center;
440 font-size: 9px;
441 font-weight: var(--font-weight-bold);
442 color: #fff;
443 flex-shrink: 0;
444 }
445
446 .isl-row-chevron {
447 color: var(--text-muted);
448 opacity: 0;
449 transition: opacity var(--transition-fast);
450 .isl-row:hover & { opacity: 1; }
451 }
452
453 // ── Pagination ───────────────────────────────────────────────────────────────
454 .isl-pagination {
455 padding: var(--space-3) var(--space-4);
456 border-top: 1px solid var(--border-subtle);
457 }
458
459 // ── Empty state ──────────────────────────────────────────────────────────────
460 .isl-empty {
461 display: flex;
462 flex-direction: column;
463 align-items: center;
464 justify-content: center;
465 padding: var(--space-12) var(--space-6);
466 text-align: center;
467 gap: var(--space-3);
468 color: var(--text-muted);
469 }
470 .isl-empty-icon { opacity: 0.3; margin-bottom: var(--space-1); }
471 .isl-empty-title {
472 font-size: 18px;
473 font-weight: var(--font-weight-semibold);
474 color: var(--text-secondary);
475 }
476 .isl-empty-desc { font-size: 14px; max-width: 400px; line-height: 1.6; }
477
478 // ── Template picker panel ────────────────────────────────────────────────────
479 .isl-template-picker {
480 background: var(--bg-surface);
481 border: 1px solid var(--border-default);
482 border-radius: var(--radius-md);
483 overflow: hidden;
484 }
485
486 .isl-tp-header {
487 display: flex;
488 align-items: center;
489 justify-content: space-between;
490 padding: var(--space-4) var(--space-5);
491 border-bottom: 1px solid var(--border-subtle);
492 }
493
494 .isl-tp-title {
495 font-size: 14px;
496 font-weight: var(--font-weight-semibold);
497 color: var(--text-primary);
498 }
499
500 .isl-tp-close {
501 background: none;
502 border: none;
503 color: var(--text-muted);
504 cursor: pointer;
505 padding: 4px;
506 border-radius: var(--radius-sm);
507 display: flex;
508 align-items: center;
509 transition: color var(--transition-fast);
510 &:hover { color: var(--text-primary); }
511 }
512
513 .isl-tp-grid {
514 display: grid;
515 grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
516 gap: var(--space-3);
517 padding: var(--space-4) var(--space-5);
518 }
519
520 .isl-tp-card {
521 display: flex;
522 flex-direction: column;
523 align-items: flex-start;
524 gap: 4px;
525 background: var(--bg-overlay);
526 border: 1px solid var(--border-subtle);
527 border-radius: var(--radius-md);
528 padding: var(--space-4);
529 cursor: pointer;
530 text-align: left;
531 transition: border-color var(--transition-fast), background var(--transition-fast);
532
533 &:hover {
534 border-color: var(--color-accent);
535 background: var(--bg-surface);
536 }
537 }
538
539 .isl-tp-icon {
540 font-size: 20px;
541 margin-bottom: 4px;
542 line-height: 1;
543 }
544
545 .isl-tp-card-title {
546 font-size: 13px;
547 font-weight: var(--font-weight-semibold);
548 color: var(--text-primary);
549 }
550
551 .isl-tp-card-desc {
552 font-size: 11px;
553 color: var(--text-muted);
554 line-height: 1.4;
555 }
556
557 // ── Right sidebar ─────────────────────────────────────────────────────────────
558 .isl-sidebar {
559 display: flex;
560 flex-direction: column;
561 gap: var(--space-1);
562
563 @media (max-width: 900px) { display: none; }
564 }
565
566 .isl-sb-section {
567 background: var(--bg-surface);
568 border: 1px solid var(--border-default);
569 border-radius: var(--radius-md);
570 padding: var(--space-4);
571 display: flex;
572 flex-direction: column;
573 gap: var(--space-2);
574 }
575
576 .isl-sb-header {
577 display: flex;
578 align-items: center;
579 justify-content: space-between;
580 margin-bottom: var(--space-1);
581 }
582
583 .isl-sb-title {
584 font-size: 11px;
585 font-weight: var(--font-weight-bold);
586 text-transform: uppercase;
587 letter-spacing: 0.07em;
588 color: var(--text-muted);
589 }
590
591 .isl-sb-link {
592 font-size: 11px;
593 color: var(--color-accent);
594 text-decoration: none;
595 &:hover { text-decoration: underline; }
596 }
597
598 .isl-sb-empty { font-size: 12px; color: var(--text-muted); margin: 0; }
599
600 // Labels
601 .isl-sb-labels { display: flex; flex-direction: column; gap: 4px; }
602
603 .isl-sb-label {
604 display: flex;
605 align-items: center;
606 gap: 7px;
607 font-size: 12px;
608 color: var(--text-primary);
609 text-decoration: none;
610 padding: 3px 6px;
611 border-radius: var(--radius-sm);
612 transition: background var(--transition-fast);
613
614 &:hover { background: var(--bg-overlay); text-decoration: none; }
615 &.isl-sb-label--active { background: var(--bg-overlay); font-weight: var(--font-weight-semibold); }
616 }
617
618 .isl-sb-label-dot {
619 width: 9px;
620 height: 9px;
621 border-radius: 50%;
622 flex-shrink: 0;
623 border: 1px solid rgba(255,255,255,0.1);
624 }
625
626 // Assignees / contributors
627 .isl-sb-people { display: flex; flex-direction: column; gap: 4px; }
628
629 .isl-person {
630 display: flex;
631 align-items: center;
632 gap: 8px;
633 text-decoration: none;
634 padding: 3px 6px;
635 border-radius: var(--radius-sm);
636 transition: background var(--transition-fast);
637
638 &:hover { background: var(--bg-overlay); text-decoration: none; }
639 &.isl-person--active { background: var(--bg-overlay); }
640 }
641
642 .isl-person-avatar {
643 width: 22px;
644 height: 22px;
645 border-radius: 50%;
646 display: inline-flex;
647 align-items: center;
648 justify-content: center;
649 font-size: 9px;
650 font-weight: var(--font-weight-bold);
651 color: #fff;
652 flex-shrink: 0;
653 }
654
655 .isl-person-name { font-size: 12px; color: var(--text-primary); }
656
657
658 // ── Issue detail page (.isd-*) ────────────────────────────────────────────────
659 // Hero-first design matching proposal_detail.html visual language.
660
661 .isd-page { min-height: 100vh; }
662
663 // ── Hero ─────────────────────────────────────────────────────────────────────
664 .isd-hero {
665 position: relative;
666 background: linear-gradient(135deg, #0d1117 0%, #0f1923 60%, #0d1117 100%);
667 border-bottom: 1px solid var(--border-default);
668 overflow: hidden;
669 }
670
671 .isd-hero-glow {
672 position: absolute;
673 inset: 0;
674 pointer-events: none;
675
676 &--open {
677 background:
678 radial-gradient(ellipse 55% 70% at 75% 40%, rgba(63,185,80,0.09) 0%, transparent 65%),
679 radial-gradient(ellipse 35% 50% at 15% 70%, rgba(79,142,247,0.05) 0%, transparent 60%);
680 }
681 &--closed {
682 background:
683 radial-gradient(ellipse 55% 70% at 70% 40%, rgba(167,139,250,0.08) 0%, transparent 65%),
684 radial-gradient(ellipse 35% 50% at 15% 70%, rgba(139,148,158,0.04) 0%, transparent 60%);
685 }
686 }
687
688 .isd-hero-inner {
689 position: relative;
690 max-width: 1200px;
691 margin: 0 auto;
692 padding: var(--space-8) var(--space-6) var(--space-5);
693 }
694
695 // ── Eyebrow ───────────────────────────────────────────────────────────────────
696 .isd-eyebrow {
697 display: flex;
698 align-items: center;
699 justify-content: space-between;
700 gap: var(--space-3);
701 flex-wrap: wrap;
702 margin-bottom: var(--space-4);
703 }
704
705 .isd-eyebrow-left {
706 display: flex;
707 align-items: center;
708 gap: var(--space-2);
709 flex-wrap: wrap;
710 }
711
712 .isd-eyebrow-right {
713 display: flex;
714 align-items: center;
715 gap: var(--space-2);
716 font-size: 12px;
717 color: var(--text-muted);
718 white-space: nowrap;
719 flex-shrink: 0;
720 }
721
722 .isd-eyebrow-filed-label {
723 color: var(--text-muted);
724 font-size: 11px;
725 }
726
727 .isd-eyebrow-sep {
728 color: var(--border-default);
729 }
730
731 .isd-eyebrow-time {
732 font-size: 11px;
733 color: var(--text-muted);
734 }
735
736 .isd-state-badge {
737 display: inline-flex;
738 align-items: center;
739 gap: 5px;
740 padding: 3px 10px;
741 border-radius: var(--radius-sm);
742 font-size: 11px;
743 font-weight: 600;
744 letter-spacing: 0.03em;
745 white-space: nowrap;
746
747 svg { flex-shrink: 0; }
748
749 &--open { background: rgba(63,185,80,0.12); color: #3fb950; border: 1px solid rgba(63,185,80,0.3); }
750 &--closed { background: rgba(167,139,250,0.12); color: #a78bfa; border: 1px solid rgba(167,139,250,0.3); }
751 }
752
753 .isd-issue-num {
754 font-family: var(--font-mono);
755 font-size: 13px;
756 color: var(--text-muted);
757 }
758
759 .isd-type-pill {
760 display: inline-flex;
761 align-items: center;
762 gap: 4px;
763 border: 1px solid var(--border-subtle);
764 border-radius: var(--radius-sm);
765 padding: 2px 8px;
766 font-size: 11px;
767 font-weight: 500;
768 letter-spacing: 0.02em;
769 color: var(--text-secondary);
770
771 svg {
772 flex-shrink: 0;
773 opacity: 0.9;
774 }
775 }
776
777 // ── Title + meta ──────────────────────────────────────────────────────────────
778 .isd-title {
779 font-size: 24px;
780 font-weight: 700;
781 color: var(--text-primary);
782 line-height: 1.3;
783 margin: 0 0 var(--space-3);
784 letter-spacing: -0.01em;
785 @media (max-width: 640px) { font-size: 20px; }
786 }
787
788 .isd-actor-link {
789 color: var(--color-accent-link, #4f8ef7);
790 text-decoration: none;
791 font-size: 12px;
792 font-weight: 500;
793 &:hover { text-decoration: underline; }
794 }
795
796 // ── Identity badge — human | agent | org ─────────────────────────────────────
797 .isd-identity-badge {
798 display: inline-flex;
799 align-items: center;
800 gap: 3px;
801 padding: 1px 6px;
802 border-radius: 10px;
803 font-size: 10px;
804 font-weight: 500;
805 letter-spacing: 0.03em;
806
807 // agent — blue (autonomous process)
808 &--agent {
809 background: rgba(88,166,255,0.10);
810 border: 1px solid rgba(88,166,255,0.28);
811 color: #58a6ff;
812 }
813
814 // human — muted slate (person)
815 &--human {
816 background: rgba(139,148,158,0.10);
817 border: 1px solid rgba(139,148,158,0.28);
818 color: #8b949e;
819 }
820
821 // org — amber (organisation)
822 &--org {
823 background: rgba(227,179,65,0.10);
824 border: 1px solid rgba(227,179,65,0.28);
825 color: #e3b341;
826 }
827 }
828
829 // ── Avatar ────────────────────────────────────────────────────────────────────
830 .isd-avatar {
831 display: inline-flex;
832 align-items: center;
833 justify-content: center;
834 width: 24px;
835 height: 24px;
836 border-radius: 50%;
837 background: var(--bg-overlay);
838 border: 1px solid var(--border-subtle);
839 font-size: 10px;
840 font-weight: 700;
841 color: var(--text-secondary);
842 flex-shrink: 0;
843
844 &--lg {
845 width: 32px;
846 height: 32px;
847 font-size: 13px;
848 }
849 }
850
851 // ── Stats strip ───────────────────────────────────────────────────────────────
852 .isd-stats {
853 position: relative;
854 max-width: 1200px;
855 margin: 0 auto;
856 display: flex;
857 gap: 0;
858 border-top: 1px solid var(--border-subtle);
859 padding: 0 var(--space-6);
860 }
861
862 .isd-stat {
863 display: flex;
864 flex-direction: column;
865 align-items: center;
866 gap: 2px;
867 padding: var(--space-3) var(--space-4);
868 border-right: 1px solid var(--border-subtle);
869 min-width: 80px;
870 &:last-child { border-right: none; }
871 }
872
873 .isd-stat-val {
874 font-family: var(--font-mono);
875 font-size: 16px;
876 font-weight: 700;
877 color: var(--text-primary);
878 line-height: 1.2;
879
880 &--accent { color: var(--color-accent-link, #4f8ef7); }
881 }
882
883 .isd-stat-label {
884 font-size: 10px;
885 color: var(--text-muted);
886 text-transform: uppercase;
887 letter-spacing: 0.06em;
888 white-space: nowrap;
889 }
890
891 // ── Body wrap + layout ────────────────────────────────────────────────────────
892 .isd-wrap {
893 max-width: 1200px;
894 margin: 0 auto;
895 padding: var(--space-5) var(--space-6) var(--space-10);
896 }
897
898 .isd-layout {
899 display: grid;
900 grid-template-columns: 1fr 280px;
901 gap: var(--space-6);
902 align-items: start;
903 @media (max-width: 900px) { grid-template-columns: 1fr; }
904 }
905
906 .isd-main { min-width: 0; }
907
908 // ── Panel (shared: anchors, intel, commits, timeline) ─────────────────────────
909 .isd-panel {
910 background: transparent;
911 border: 1px solid var(--border-subtle);
912 border-radius: var(--radius-sm);
913 overflow: hidden;
914 margin-bottom: var(--space-4);
915 transition: border-color 0.15s, background 0.15s;
916
917 &:hover { border-color: var(--border-default); background: rgba(255,255,255,0.015); }
918 }
919
920 .isd-panel-hd {
921 display: flex;
922 align-items: center;
923 gap: var(--space-2);
924 padding: var(--space-3) var(--space-4);
925 border-bottom: 1px solid var(--border-subtle);
926 }
927
928 .isd-panel-icon {
929 font-size: 13px;
930 color: var(--color-accent-link, #4f8ef7);
931 }
932
933 .isd-panel-title {
934 font-size: 10px;
935 font-weight: 700;
936 color: var(--text-muted);
937 text-transform: uppercase;
938 letter-spacing: 0.08em;
939 margin: 0;
940 flex: 1;
941 }
942
943 .isd-panel-count {
944 font-size: 10px;
945 font-family: var(--font-mono);
946 background: var(--bg-hover);
947 border-radius: 8px;
948 padding: 0 6px;
949 color: var(--text-muted);
950 }
951
952 .isd-panel-bd {
953 padding: var(--space-2) var(--space-4);
954 }
955
956 // ── Symbol anchors ────────────────────────────────────────────────────────────
957 .isd-panel-bd--flush {
958 padding: 0;
959 }
960
961 .isd-anchor {
962 display: flex;
963 align-items: center;
964 gap: var(--space-3);
965 padding: var(--space-2) var(--space-4);
966 border-bottom: 1px solid var(--border-subtle);
967 text-decoration: none;
968 transition: background 0.12s;
969
970 &:last-child { border-bottom: none; }
971 &:hover { background: rgba(255,255,255,0.03); }
972 &:hover .isd-anchor-arrow { color: var(--color-accent-link, #4f8ef7); }
973 }
974
975 .isd-anchor-addr {
976 display: flex;
977 align-items: center;
978 gap: 0;
979 flex: 1;
980 min-width: 0;
981 font-family: var(--font-mono);
982 font-size: 12px;
983 overflow: hidden;
984 }
985
986 .isd-anchor-file {
987 color: var(--text-muted);
988 white-space: nowrap;
989 overflow: hidden;
990 text-overflow: ellipsis;
991 min-width: 0;
992 flex-shrink: 1;
993 }
994
995 .isd-anchor-sep {
996 color: var(--border-default);
997 flex-shrink: 0;
998 padding: 0 1px;
999 }
1000
1001 .isd-anchor-sym {
1002 color: var(--color-accent-link, #4f8ef7);
1003 font-weight: 600;
1004 white-space: nowrap;
1005 flex-shrink: 0;
1006 }
1007
1008 .isd-anchor-stats {
1009 display: flex;
1010 align-items: center;
1011 gap: var(--space-2);
1012 flex-shrink: 0;
1013 }
1014
1015 .isd-anchor-stat {
1016 font-family: var(--font-mono);
1017 font-size: 10px;
1018 color: var(--text-muted);
1019 background: var(--bg-overlay);
1020 border: 1px solid var(--border-subtle);
1021 border-radius: 4px;
1022 padding: 1px 5px;
1023 }
1024
1025 .isd-anchor-author {
1026 font-size: 11px;
1027 color: var(--text-muted);
1028 }
1029
1030 .isd-anchor-arrow {
1031 font-size: 12px;
1032 color: var(--border-default);
1033 flex-shrink: 0;
1034 transition: color 0.12s;
1035 }
1036
1037 // ── Issue body card ───────────────────────────────────────────────────────────
1038 .isd-body-card {
1039 background: transparent;
1040 border: 1px solid var(--border-subtle);
1041 border-radius: var(--radius-sm);
1042 overflow: hidden;
1043 margin-bottom: var(--space-4);
1044 transition: border-color 0.15s, background 0.15s;
1045 &:hover { border-color: var(--border-default); background: rgba(255,255,255,0.015); }
1046 }
1047
1048 .isd-body-hd {
1049 display: flex;
1050 align-items: center;
1051 gap: var(--space-2);
1052 padding: var(--space-3) var(--space-4);
1053 border-bottom: 1px solid var(--border-subtle);
1054 }
1055
1056 .isd-body-author {
1057 font-size: 13px;
1058 font-weight: 600;
1059 color: var(--text-primary);
1060 flex: 1;
1061 }
1062
1063 .isd-body-date {
1064 font-size: 12px;
1065 color: var(--text-muted);
1066 }
1067
1068 .isd-body-bd {
1069 padding: var(--space-4);
1070 }
1071
1072 .isd-body-content {
1073 font-size: 14px;
1074 line-height: 1.7;
1075 color: var(--text-primary);
1076
1077 h1,h2,h3,h4 { color: var(--text-primary); margin: var(--space-4) 0 var(--space-2); }
1078 p { margin: 0 0 var(--space-3); }
1079 code {
1080 font-family: var(--font-mono);
1081 font-size: 12px;
1082 background: var(--bg-overlay);
1083 border: 1px solid var(--border-subtle);
1084 border-radius: 4px;
1085 padding: 1px 5px;
1086 }
1087 pre {
1088 background: var(--bg-overlay);
1089 border: 1px solid var(--border-subtle);
1090 border-radius: 6px;
1091 padding: var(--space-3) var(--space-4);
1092 overflow-x: auto;
1093 code { background: none; border: none; padding: 0; }
1094 }
1095 ul, ol { padding-left: var(--space-5); margin: 0 0 var(--space-3); }
1096 blockquote {
1097 border-left: 3px solid var(--border-default);
1098 margin: 0 0 var(--space-3);
1099 padding-left: var(--space-3);
1100 color: var(--text-muted);
1101 }
1102 }
1103
1104 .isd-body-empty {
1105 color: var(--text-muted);
1106 font-size: 13px;
1107 font-style: italic;
1108 }
1109
1110 // ── Commit anchors panel ──────────────────────────────────────────────────────
1111 .isd-panel--commits {
1112 border-color: color-mix(in srgb, var(--text-muted) 25%, var(--border-default));
1113 }
1114
1115 .isd-commit-anchor {
1116 display: flex;
1117 align-items: center;
1118 gap: var(--space-3);
1119 padding: var(--space-2) 0;
1120 border-bottom: 1px solid var(--border-subtle);
1121
1122 &:last-child { border-bottom: none; }
1123 }
1124
1125 .isd-commit-hash {
1126 font-family: var(--font-mono);
1127 font-size: 11px;
1128 font-weight: 600;
1129 color: var(--color-accent-link, #4f8ef7);
1130 background: rgba(79,142,247,0.08);
1131 border: 1px solid rgba(79,142,247,0.18);
1132 border-radius: 4px;
1133 padding: 1px 6px;
1134 flex-shrink: 0;
1135 letter-spacing: 0.04em;
1136
1137 &--sm {
1138 font-size: 10px;
1139 padding: 1px 5px;
1140 }
1141 }
1142
1143 .isd-commit-label {
1144 font-family: var(--font-mono);
1145 font-size: 11px;
1146 color: var(--text-muted);
1147 white-space: nowrap;
1148 overflow: hidden;
1149 text-overflow: ellipsis;
1150 }
1151
1152 // ── Agent provenance block ────────────────────────────────────────────────────
1153 .isd-provenance {
1154 display: flex;
1155 align-items: center;
1156 gap: var(--space-2);
1157 padding: var(--space-2) var(--space-4);
1158 background: rgba(167,139,250,0.05);
1159 border-bottom: 1px solid rgba(167,139,250,0.15);
1160 font-size: 11px;
1161 }
1162
1163 .isd-provenance-icon {
1164 flex-shrink: 0;
1165 font-size: 13px;
1166 line-height: 1;
1167 }
1168
1169 .isd-provenance-detail {
1170 display: flex;
1171 align-items: center;
1172 gap: var(--space-1);
1173 }
1174
1175 .isd-provenance-label {
1176 color: var(--text-muted);
1177 }
1178
1179 .isd-provenance-handle {
1180 font-family: var(--font-mono);
1181 font-size: 11px;
1182 color: var(--agent-accent, #a78bfa);
1183 font-weight: 600;
1184 }
1185
1186 // ── Stat dim variant ──────────────────────────────────────────────────────────
1187 .isd-stat-val--dim {
1188 color: var(--border-default);
1189 font-weight: 400;
1190 font-size: 14px;
1191 }
1192
1193 // ── Activity timeline ─────────────────────────────────────────────────────────
1194 .isd-timeline {
1195 background: transparent;
1196 border: 1px solid var(--border-subtle);
1197 border-radius: var(--radius-sm);
1198 overflow: hidden;
1199 margin-bottom: var(--space-4);
1200 transition: border-color 0.15s, background 0.15s;
1201 &:hover { border-color: var(--border-default); background: rgba(255,255,255,0.015); }
1202 }
1203
1204 .isd-timeline-hd {
1205 display: flex;
1206 align-items: center;
1207 gap: var(--space-2);
1208 padding: var(--space-3) var(--space-4);
1209 border-bottom: 1px solid var(--border-subtle);
1210 }
1211
1212 .isd-timeline-icon {
1213 font-size: 13px;
1214 color: var(--text-muted);
1215 }
1216
1217 .isd-timeline-title {
1218 font-size: 10px;
1219 font-weight: 700;
1220 color: var(--text-muted);
1221 text-transform: uppercase;
1222 letter-spacing: 0.08em;
1223 flex: 1;
1224 }
1225
1226 .isd-timeline-bd {
1227 padding: var(--space-2) 0;
1228 }
1229
1230 // ── Timeline events ───────────────────────────────────────────────────────────
1231 .isd-event {
1232 display: flex;
1233 align-items: flex-start;
1234 gap: var(--space-3);
1235 padding: var(--space-2) var(--space-4);
1236 position: relative;
1237
1238 // Vertical connector line between events
1239 &::before {
1240 content: '';
1241 position: absolute;
1242 left: calc(var(--space-4) + 6px);
1243 top: 26px;
1244 bottom: -8px;
1245 width: 1px;
1246 background: var(--border-subtle);
1247 pointer-events: none;
1248 }
1249 &:last-child::before { display: none; }
1250
1251 &--comment { align-items: flex-start; }
1252 &--reply { padding-left: calc(var(--space-4) + var(--space-6)); }
1253 }
1254
1255 .isd-event-icon {
1256 flex-shrink: 0;
1257 width: 14px;
1258 height: 14px;
1259 display: flex;
1260 align-items: center;
1261 justify-content: center;
1262 font-size: 10px;
1263 margin-top: 2px;
1264 position: relative;
1265 z-index: 1;
1266
1267 &--open { color: #3fb950; }
1268 &--closed { color: var(--text-muted); }
1269 &--comment { color: var(--text-muted); }
1270 &--anchor { color: var(--color-accent-link, #4f8ef7); }
1271 &--proposal { color: #f0883e; }
1272 }
1273
1274 .isd-event-body {
1275 flex: 1;
1276 min-width: 0;
1277 display: flex;
1278 align-items: center;
1279 flex-wrap: wrap;
1280 gap: 4px;
1281 padding: 1px 0;
1282 font-size: 12px;
1283 color: var(--text-muted);
1284 line-height: 1.5;
1285
1286 &--comment {
1287 flex-direction: column;
1288 align-items: flex-start;
1289 gap: 0;
1290 background: transparent;
1291 border: 1px solid var(--border-subtle);
1292 border-radius: var(--radius-sm, 4px);
1293 overflow: hidden;
1294 margin-top: -1px;
1295 }
1296 }
1297
1298 .isd-event-actor {
1299 font-size: 12px;
1300 color: var(--text-secondary);
1301 font-weight: 500;
1302 }
1303
1304 .isd-event-verb {
1305 font-size: 12px;
1306 color: var(--text-muted);
1307 }
1308
1309 .isd-event-time {
1310 font-size: 11px;
1311 color: var(--text-muted);
1312 opacity: 0.7;
1313 white-space: nowrap;
1314 }
1315
1316 .isd-event-author-link {
1317 color: var(--text-secondary);
1318 text-decoration: none;
1319 font-weight: 500;
1320 &:hover { color: var(--text-primary); text-decoration: underline; }
1321 }
1322
1323 .isd-event-comment-hd {
1324 display: flex;
1325 align-items: center;
1326 gap: var(--space-2);
1327 padding: var(--space-2) var(--space-3);
1328 background: transparent;
1329 border-bottom: 1px solid var(--border-subtle);
1330 width: 100%;
1331 font-size: 12px;
1332 }
1333
1334 .isd-event-comment-bd {
1335 padding: var(--space-3);
1336 font-size: 13px;
1337 line-height: 1.65;
1338 color: var(--text-primary);
1339 width: 100%;
1340
1341 p { margin: 0 0 var(--space-2); &:last-child { margin-bottom: 0; } }
1342 code {
1343 font-family: var(--font-mono);
1344 font-size: 11px;
1345 background: rgba(255,255,255,0.05);
1346 border: 1px solid var(--border-subtle);
1347 border-radius: 3px;
1348 padding: 1px 4px;
1349 }
1350 pre {
1351 background: var(--bg-overlay);
1352 border: 1px solid var(--border-subtle);
1353 border-radius: 6px;
1354 padding: var(--space-2) var(--space-3);
1355 overflow-x: auto;
1356 code { background: none; border: none; padding: 0; }
1357 }
1358 }
1359
1360 .isd-event-replies {
1361 width: 100%;
1362 border-top: 1px solid var(--border-subtle);
1363 padding: var(--space-1) var(--space-2);
1364 display: flex;
1365 flex-direction: column;
1366 gap: var(--space-1);
1367
1368 .isd-event { padding: var(--space-1) var(--space-1); }
1369 .isd-event::before { display: none; }
1370 }
1371
1372 .isd-avatar--sm {
1373 width: 20px;
1374 height: 20px;
1375 font-size: 8px;
1376 }
1377
1378 // ── Timeline empty state ──────────────────────────────────────────────────────
1379 .isd-event-empty {
1380 display: flex;
1381 flex-direction: column;
1382 align-items: center;
1383 justify-content: center;
1384 padding: var(--space-8) var(--space-4);
1385 gap: var(--space-2);
1386 }
1387
1388 .isd-event-empty-icon {
1389 font-size: 1.5rem;
1390 color: var(--text-muted);
1391 opacity: 0.4;
1392 }
1393
1394 .isd-event-empty-text {
1395 font-size: 12px;
1396 color: var(--text-muted);
1397 }
1398
1399 // ── Sidebar bd flush variant (rows go edge-to-edge) ──────────────────────────
1400 .isd-sb-bd--flush {
1401 padding: 0;
1402 }
1403
1404 // ── Sidebar commit row ────────────────────────────────────────────────────────
1405 // Two-line layout: line1 = hash + "message", line2 = date author
1406 .isd-sb-commit-row {
1407 display: flex;
1408 flex-direction: column;
1409 gap: 2px;
1410 padding: var(--space-2) var(--space-3);
1411 border-bottom: 1px solid var(--border-subtle);
1412 text-decoration: none;
1413 transition: background 0.12s;
1414
1415 &:last-child { border-bottom: none; }
1416 &:hover { background: var(--bg-overlay); text-decoration: none; }
1417 }
1418
1419 .isd-sb-commit-line1 {
1420 display: flex;
1421 align-items: baseline;
1422 gap: var(--space-2);
1423 overflow: hidden;
1424 }
1425
1426 .isd-sb-commit-line2 {
1427 display: flex;
1428 gap: var(--space-3);
1429 font-size: 10px;
1430 color: var(--text-muted);
1431 }
1432
1433 .isd-sb-commit-hash {
1434 font-family: var(--font-mono);
1435 font-size: 11px;
1436 font-weight: 600;
1437 color: var(--color-accent-link, #4f8ef7);
1438 flex-shrink: 0;
1439 }
1440
1441 .isd-sb-commit-msg {
1442 font-size: 12px;
1443 color: var(--text-primary);
1444 overflow: hidden;
1445 text-overflow: ellipsis;
1446 white-space: nowrap;
1447 flex: 1;
1448 }
1449
1450 .isd-sb-commit-author { font-weight: 500; }
1451 .isd-sb-commit-ts { font-family: var(--font-mono); }
1452
1453 // ── Sidebar proposal row ──────────────────────────────────────────────────────
1454 // Single-line: ○/● #N title
1455 .isd-sb-proposal-row {
1456 display: flex;
1457 align-items: baseline;
1458 gap: var(--space-2);
1459 padding: var(--space-2) var(--space-3);
1460 border-bottom: 1px solid var(--border-subtle);
1461 text-decoration: none;
1462 transition: background 0.12s;
1463 min-width: 0;
1464
1465 &:last-child { border-bottom: none; }
1466 &:hover { background: var(--bg-overlay); text-decoration: none; }
1467 }
1468
1469 .isd-lp-state {
1470 font-size: 12px;
1471 flex-shrink: 0;
1472
1473 &.isd-lp-state--open { color: #3fb950; }
1474 &.isd-lp-state--merged { color: #a371f7; }
1475 &.isd-lp-state--closed { color: var(--text-muted); }
1476 }
1477
1478 .isd-lp-ref {
1479 font-family: var(--font-mono);
1480 font-size: 11px;
1481 color: var(--color-accent-link, #4f8ef7);
1482 flex-shrink: 0;
1483 }
1484
1485 .isd-lp-title {
1486 font-size: 12px;
1487 color: var(--text-primary);
1488 white-space: nowrap;
1489 overflow: hidden;
1490 text-overflow: ellipsis;
1491 min-width: 0;
1492 }
1493
1494 // Signal badge shown in the Linked Proposals card header
1495 .isd-lp-signal-badge {
1496 margin-left: auto;
1497 font-size: 9px;
1498 font-family: var(--font-mono);
1499 font-weight: 600;
1500 text-transform: none;
1501 letter-spacing: 0.02em;
1502 color: #a371f7;
1503 background: rgba(163, 113, 247, 0.12);
1504 border: 1px solid rgba(163, 113, 247, 0.25);
1505 border-radius: var(--radius-sm);
1506 padding: 1px 5px;
1507 white-space: nowrap;
1508 }
1509
1510 // Per-row indicator showing which signal matched this proposal
1511 .isd-lp-sym-dot {
1512 margin-left: auto;
1513 font-size: 8px;
1514 color: #a371f7; // purple — symbol overlap
1515 opacity: 0.7;
1516 flex-shrink: 0;
1517
1518 &--inflight {
1519 color: #3fb950; // green — branch reachability (in-flight work)
1520 }
1521 }
1522
1523 .isd-sb-empty-row {
1524 padding: var(--space-3);
1525 font-size: 12px;
1526 color: var(--text-muted);
1527 font-style: italic;
1528 }
1529
1530 // ── Assignee with identity badge ──────────────────────────────────────────────
1531
1532 // ── Sidebar ───────────────────────────────────────────────────────────────────
1533 .isd-sidebar {
1534 display: flex;
1535 flex-direction: column;
1536 gap: var(--space-3);
1537 }
1538
1539 .isd-sb-card {
1540 background: transparent;
1541 border: 1px solid var(--border-subtle);
1542 border-radius: var(--radius-sm);
1543 overflow: hidden;
1544 transition: border-color 0.15s, background 0.15s;
1545 &:hover { border-color: var(--border-default); background: rgba(255,255,255,0.015); }
1546 }
1547
1548 .isd-sb-hd {
1549 display: flex;
1550 align-items: center;
1551 font-size: 10px;
1552 font-weight: 700;
1553 color: var(--text-muted);
1554 text-transform: uppercase;
1555 letter-spacing: 0.08em;
1556 padding: var(--space-3) var(--space-4);
1557 border-bottom: 1px solid var(--border-subtle);
1558 }
1559
1560 .isd-sb-bd {
1561 padding: var(--space-3);
1562 font-size: 13px;
1563 }
1564
1565
1566 // ── CLI / MCP / REST snippet card ─────────────────────────────────────────────
1567 .isd-cli-label {
1568 font-size: 10px;
1569 font-family: var(--font-mono);
1570 text-transform: uppercase;
1571 letter-spacing: 0.06em;
1572 color: var(--text-tertiary);
1573 margin-bottom: var(--space-1);
1574 }
1575
1576 // Wrapper gives us a positioning context for the copy button.
1577 .isd-snippet-wrap {
1578 position: relative;
1579 margin-bottom: var(--space-2);
1580
1581 &:last-child { margin-bottom: 0; }
1582 }
1583
1584 .isd-cli-snippet {
1585 display: block;
1586 font-family: var(--font-mono);
1587 font-size: 11px;
1588 line-height: 1.65;
1589 color: var(--text-secondary);
1590 background: var(--bg-overlay);
1591 border: 1px solid var(--border-subtle);
1592 border-radius: 6px;
1593 padding: var(--space-2) var(--space-3);
1594 padding-right: 2.4rem; // room for the copy button
1595 white-space: pre;
1596 overflow-x: auto;
1597 word-break: normal;
1598 margin: 0;
1599
1600 // Highlight.js token overrides — match our design-system palette.
1601 .hljs-comment { color: var(--text-tertiary); font-style: italic; }
1602 .hljs-keyword,
1603 .hljs-built_in { color: #79b8ff; }
1604 .hljs-string { color: #9ecbff; }
1605 .hljs-number { color: #f8c555; }
1606 .hljs-literal { color: #79b8ff; }
1607 .hljs-variable,
1608 .hljs-attr { color: var(--text-secondary); }
1609 .hljs-meta,
1610 .hljs-meta-keyword { color: #e3b341; }
1611 .hljs-title { color: #b392f0; }
1612 .hljs-params { color: var(--text-secondary); }
1613 .hljs-punctuation { color: var(--text-tertiary); }
1614 background: var(--bg-overlay); // keep our bg (hljs themes set their own)
1615 }
1616
1617 // Copy button — floats top-right of each snippet.
1618 .isd-copy-btn {
1619 position: absolute;
1620 top: 6px;
1621 right: 6px;
1622 display: flex;
1623 align-items: center;
1624 gap: 3px;
1625 font-family: var(--font-mono);
1626 font-size: 9px;
1627 font-weight: 600;
1628 letter-spacing: 0.05em;
1629 text-transform: uppercase;
1630 color: var(--text-muted);
1631 background: var(--bg-card);
1632 border: 1px solid var(--border-subtle);
1633 border-radius: 4px;
1634 padding: 2px 6px;
1635 cursor: pointer;
1636 transition: color 0.12s, background 0.12s, border-color 0.12s;
1637 line-height: 1.5;
1638 user-select: none;
1639
1640 svg { flex-shrink: 0; }
1641
1642 &:hover {
1643 color: var(--text-secondary);
1644 border-color: var(--border-default);
1645 background: var(--bg-overlay);
1646 }
1647
1648 &.is-copied {
1649 color: #3fb950;
1650 border-color: #3fb95044;
1651 }
1652 }
1653
1654 // ── Act panel tab strip ───────────────────────────────────────────────────────
1655 .isd-sb-hd--tabs {
1656 display: flex;
1657 align-items: center;
1658 gap: 0;
1659 padding: 0 var(--space-1);
1660 }
1661
1662 .isd-act-tab {
1663 flex: 1;
1664 font-size: 10px;
1665 font-family: var(--font-mono);
1666 font-weight: 700;
1667 letter-spacing: 0.07em;
1668 text-transform: uppercase;
1669 color: var(--text-muted);
1670 background: none;
1671 border: none;
1672 border-bottom: 2px solid transparent;
1673 padding: var(--space-2) var(--space-3);
1674 cursor: pointer;
1675 transition: color 0.12s, border-color 0.12s;
1676
1677 &:hover { color: var(--text-secondary); }
1678
1679 &.is-active {
1680 color: var(--color-accent-link, #4f8ef7);
1681 border-bottom-color: var(--color-accent-link, #4f8ef7);
1682 }
1683 }
1684
1685 // ── Sidebar misc ──────────────────────────────────────────────────────────────
1686 .isd-muted {
1687 color: var(--text-muted);
1688 font-size: 12px;
1689 }
1690
1691 .isd-assignee {
1692 display: flex;
1693 align-items: center;
1694 gap: var(--space-2);
1695 }
1696
1697 // ── Release card (Muse-native VCS-derived release tracking) ──────────────────
1698 // Release card header status chip
1699 .isd-rel-status-chip {
1700 display: inline-flex;
1701 align-items: center;
1702 font-size: 9px;
1703 font-weight: 700;
1704 letter-spacing: 0.06em;
1705 text-transform: uppercase;
1706 padding: 1px 5px;
1707 border-radius: var(--radius-full);
1708 margin-left: var(--space-2);
1709 vertical-align: middle;
1710
1711 &--landed { background: rgba(63,185,80,0.15); color: #3fb950; }
1712 &--partial { background: rgba(88,166,255,0.15); color: #58a6ff; }
1713 &--pending { background: rgba(255,255,255,0.06); color: var(--text-muted); }
1714 }
1715
1716 // Release body container
1717 .isd-release-bd {
1718 display: flex;
1719 flex-direction: column;
1720 gap: 6px;
1721 }
1722
1723 // Per-commit block
1724 .isd-rel-commit {
1725 display: flex;
1726 flex-direction: column;
1727 gap: 2px;
1728 padding: 6px 8px;
1729 border-radius: var(--radius-sm);
1730 border: 1px solid transparent;
1731 transition: border-color 0.15s;
1732
1733 &--landed {
1734 background: rgba(63,185,80,0.04);
1735 border-color: rgba(63,185,80,0.12);
1736 }
1737
1738 &--pending {
1739 background: rgba(255,255,255,0.025);
1740 border-color: rgba(255,255,255,0.06);
1741 }
1742 }
1743
1744 .isd-rel-commit-top {
1745 display: flex;
1746 align-items: center;
1747 gap: var(--space-2);
1748 }
1749
1750 .isd-rel-hash {
1751 font-family: var(--font-mono);
1752 font-size: 11px;
1753 font-weight: 600;
1754 color: #58a6ff;
1755 text-decoration: none;
1756 background: rgba(88,166,255,0.1);
1757 padding: 1px 5px;
1758 border-radius: 3px;
1759 flex-shrink: 0;
1760 letter-spacing: 0.02em;
1761
1762 &:hover { color: #79b8ff; background: rgba(88,166,255,0.18); }
1763 }
1764
1765 .isd-rel-landed-in {
1766 display: flex;
1767 align-items: center;
1768 gap: 4px;
1769 flex-wrap: wrap;
1770 }
1771
1772 .isd-rel-ver {
1773 font-family: var(--font-mono);
1774 font-size: 11px;
1775 font-weight: 600;
1776 text-decoration: none;
1777 padding: 1px 5px;
1778 border-radius: 3px;
1779
1780 &--landed {
1781 color: #3fb950;
1782 background: rgba(63,185,80,0.12);
1783 &:hover { background: rgba(63,185,80,0.2); }
1784 }
1785 }
1786
1787 .isd-rel-on-branch {
1788 font-family: var(--font-mono);
1789 font-size: 10px;
1790 color: var(--text-muted);
1791 background: rgba(255,255,255,0.05);
1792 padding: 1px 5px;
1793 border-radius: 3px;
1794 }
1795
1796 .isd-rel-msg {
1797 font-size: 11px;
1798 color: var(--text-secondary);
1799 font-style: italic;
1800 white-space: nowrap;
1801 overflow: hidden;
1802 text-overflow: ellipsis;
1803 padding-left: 2px;
1804 }
1805
1806 .isd-rel-meta {
1807 display: flex;
1808 align-items: center;
1809 gap: 5px;
1810 font-size: 10px;
1811 color: var(--text-muted);
1812 padding-left: 2px;
1813 }
1814
1815 .isd-rel-sep { color: var(--border-default); }
1816
1817 // "next release: v0.3.1 (proposed)" row
1818 .isd-rel-next {
1819 display: flex;
1820 align-items: center;
1821 gap: 6px;
1822 padding: 5px 8px;
1823 background: rgba(255,255,255,0.02);
1824 border: 1px dashed rgba(255,255,255,0.08);
1825 border-radius: var(--radius-sm);
1826 margin-top: 2px;
1827 }
1828
1829 .isd-rel-next-label {
1830 font-size: 10px;
1831 color: var(--text-muted);
1832 text-transform: uppercase;
1833 letter-spacing: 0.06em;
1834 font-weight: 600;
1835 }
1836
1837 .isd-rel-next-tag {
1838 font-family: var(--font-mono);
1839 font-size: 11px;
1840 font-weight: 600;
1841 color: var(--text-secondary);
1842 }
1843
1844 .isd-rel-next-hint {
1845 font-size: 10px;
1846 color: var(--text-muted);
1847 font-style: italic;
1848 }
1849
1850 .isd-release-none {
1851 font-size: 12px;
1852 color: var(--text-muted);
1853 font-style: italic;
1854 }
1855
1856
1857 // ─── Anchor + blast + agent row badges ───────────────────────────────────────
1858
1859 .isl-anchor-badge {
1860 display: inline-flex;
1861 align-items: center;
1862 gap: 2px;
1863 font-size: 10px;
1864 font-family: var(--font-mono);
1865 color: #4f8ef7;
1866 background: color-mix(in srgb, #4f8ef7 10%, transparent);
1867 border: 1px solid color-mix(in srgb, #4f8ef7 25%, transparent);
1868 border-radius: 10px;
1869 padding: 0 6px;
1870 height: 18px;
1871 line-height: 1;
1872 vertical-align: middle;
1873 white-space: nowrap;
1874 }
1875
1876 .isl-blast-badge {
1877 display: inline-flex;
1878 align-items: center;
1879 font-size: 10px;
1880 font-family: var(--font-mono);
1881 border-radius: 10px;
1882 padding: 0 6px;
1883 height: 18px;
1884 line-height: 1;
1885 vertical-align: middle;
1886 white-space: nowrap;
1887 font-weight: var(--font-weight-semibold);
1888
1889 &.blast-badge--low {
1890 color: #4f8ef7;
1891 background: color-mix(in srgb, #4f8ef7 10%, transparent);
1892 border: 1px solid color-mix(in srgb, #4f8ef7 25%, transparent);
1893 }
1894 &.blast-badge--mid {
1895 color: #f97316;
1896 background: color-mix(in srgb, #f97316 10%, transparent);
1897 border: 1px solid color-mix(in srgb, #f97316 25%, transparent);
1898 }
1899 &.blast-badge--high {
1900 color: #ef4444;
1901 background: color-mix(in srgb, #ef4444 10%, transparent);
1902 border: 1px solid color-mix(in srgb, #ef4444 25%, transparent);
1903 }
1904 }
1905
1906 .isl-agent-badge {
1907 display: inline-flex;
1908 align-items: center;
1909 font-size: 10px;
1910 font-family: var(--font-mono);
1911 color: #a78bfa;
1912 background: color-mix(in srgb, #a78bfa 10%, transparent);
1913 border: 1px solid color-mix(in srgb, #a78bfa 25%, transparent);
1914 border-radius: 10px;
1915 padding: 0 6px;
1916 height: 18px;
1917 line-height: 1;
1918 vertical-align: middle;
1919 white-space: nowrap;
1920 text-transform: uppercase;
1921 letter-spacing: 0.04em;
1922 }
1923
1924 .isl-mini-agent-icon {
1925 display: inline-flex;
1926 align-items: center;
1927 color: #a78bfa;
1928 margin-right: 2px;
1929 }
1930
1931 // ─── Sidebar intel sections ───────────────────────────────────────────────────
1932
1933 .isl-sb-subtitle {
1934 font-size: 10px;
1935 color: var(--text-muted);
1936 margin-left: auto;
1937 }
1938
1939 .isl-sb-section--intel {
1940 border-top: 1px solid var(--border-subtle);
1941 padding-top: var(--space-2);
1942 margin-top: 2px;
1943 }
1944
1945 .isl-sb-intel-icon {
1946 font-size: 11px;
1947 margin-right: 3px;
1948
1949 &--hot { color: #4f8ef7; }
1950 &--blast { color: #f97316; }
1951 &--agent { color: #a78bfa; }
1952 }
1953
1954 .isl-sb-intel-desc {
1955 font-size: 11px;
1956 color: var(--text-muted);
1957 margin: 0 0 var(--space-1);
1958 font-style: italic;
1959 }
1960
1961 .isl-sb-intel-list {
1962 display: flex;
1963 flex-direction: column;
1964 gap: 2px;
1965 }
1966
1967 .isl-sb-intel-row {
1968 display: flex;
1969 align-items: flex-start;
1970 gap: 6px;
1971 padding: 5px 4px;
1972 border-radius: var(--radius-sm);
1973 text-decoration: none;
1974 transition: background var(--transition-fast);
1975 &:hover { background: var(--bg-overlay); text-decoration: none; }
1976 }
1977
1978 .isl-sb-intel-num {
1979 font-size: 10px;
1980 font-family: var(--font-mono);
1981 color: var(--text-muted);
1982 flex-shrink: 0;
1983 min-width: 28px;
1984 padding-top: 1px;
1985 }
1986
1987 .isl-sb-intel-body {
1988 display: flex;
1989 flex-direction: column;
1990 gap: 2px;
1991 flex: 1;
1992 min-width: 0;
1993 }
1994
1995 .isl-sb-intel-title {
1996 font-size: 12px;
1997 color: var(--text-secondary);
1998 overflow: hidden;
1999 text-overflow: ellipsis;
2000 white-space: nowrap;
2001 line-height: 1.3;
2002 }
2003
2004 .isl-sb-intel-sub {
2005 font-size: 10px;
2006 color: var(--text-muted);
2007 font-family: var(--font-mono);
2008 overflow: hidden;
2009 text-overflow: ellipsis;
2010 white-space: nowrap;
2011 }
2012
2013 .isl-sb-intel-badge {
2014 font-size: 10px;
2015 font-family: var(--font-mono);
2016 border-radius: 8px;
2017 padding: 0 5px;
2018 height: 16px;
2019 line-height: 16px;
2020 flex-shrink: 0;
2021 align-self: center;
2022 font-weight: var(--font-weight-semibold);
2023
2024 &--hot {
2025 color: #4f8ef7;
2026 background: color-mix(in srgb, #4f8ef7 12%, transparent);
2027 border: 1px solid color-mix(in srgb, #4f8ef7 25%, transparent);
2028 }
2029
2030 &--blast {
2031 color: #f97316;
2032 background: color-mix(in srgb, #f97316 12%, transparent);
2033 border: 1px solid color-mix(in srgb, #f97316 25%, transparent);
2034 }
2035 }
2036
2037 .isl-sb-agent-list {
2038 display: flex;
2039 flex-direction: column;
2040 gap: 4px;
2041 }
2042
2043 .isl-sb-agent-row {
2044 display: flex;
2045 align-items: center;
2046 gap: var(--space-2);
2047 padding: 3px 2px;
2048 }
2049
2050 .isl-sb-agent-pip {
2051 width: 6px;
2052 height: 6px;
2053 border-radius: 50%;
2054 background: #a78bfa;
2055 flex-shrink: 0;
2056 box-shadow: 0 0 4px rgba(#a78bfa, 0.5);
2057 }
2058
2059 .isl-sb-agent-name {
2060 font-size: 12px;
2061 color: var(--text-secondary);
2062 flex: 1;
2063 overflow: hidden;
2064 text-overflow: ellipsis;
2065 white-space: nowrap;
2066 font-family: var(--font-mono);
2067 }
2068
2069 .isl-sb-agent-count {
2070 font-size: 11px;
2071 color: var(--text-muted);
2072 flex-shrink: 0;
2073 }
2074
2075 // ─── CLI sidebar card ─────────────────────────────────────────────────────────
2076
2077 .isl-sb-section--cli {
2078 border-top: 1px solid var(--border-subtle);
2079 margin-top: 2px;
2080 padding-top: var(--space-2);
2081 }
2082
2083 .isl-cli-block {
2084 display: flex;
2085 flex-direction: column;
2086 gap: 1px;
2087 background: var(--bg-overlay);
2088 border: 1px solid var(--border-subtle);
2089 border-radius: var(--radius-sm);
2090 padding: var(--space-2) var(--space-3);
2091 margin-top: var(--space-1);
2092 }
2093
2094 .isl-cli-line {
2095 display: block;
2096 font-family: var(--font-mono);
2097 font-size: 11px;
2098 color: var(--text-secondary);
2099 line-height: 1.6;
2100 white-space: pre;
2101 user-select: all;
2102 }
2103
2104 // ─── Phase 2B: Intelligence panel on issue detail — Singularity Mode ─────────
2105
2106 $intel-low: #4f8ef7;
2107 $intel-mid: #f97316;
2108 $intel-high: #ef4444;
2109
2110 .isd-panel--intel {
2111 .isd-panel-bd { padding: 0; }
2112 }
2113
2114
2115 // ── Section container ─────────────────────────────────────────────────────────
2116 .isd-ic-section {
2117 display: flex;
2118 flex-direction: column;
2119 gap: 7px;
2120 padding: 9px 12px;
2121 border-bottom: 1px solid var(--border-subtle);
2122
2123 &:last-child { border-bottom: none; }
2124
2125 &--blast { background: rgba(255,255,255,0.01); }
2126 &--churn { background: rgba(255,255,255,0.005); }
2127 &--issues { background: rgba($intel-low, 0.03); }
2128 }
2129
2130 .isd-ic-section-label {
2131 display: flex;
2132 align-items: center;
2133 justify-content: space-between;
2134 font-size: 9px;
2135 font-weight: 700;
2136 text-transform: uppercase;
2137 letter-spacing: 0.08em;
2138 color: var(--text-muted);
2139 }
2140
2141 // ── Blast radius hero ─────────────────────────────────────────────────────────
2142 .isd-ic-blast-hero {
2143 display: flex;
2144 flex-direction: column;
2145 gap: 6px;
2146 }
2147
2148 .isd-ic-blast-nums {
2149 display: flex;
2150 align-items: baseline;
2151 gap: 5px;
2152 }
2153
2154 .isd-ic-blast-num {
2155 font-size: 22px;
2156 font-family: var(--font-mono);
2157 font-weight: 800;
2158 line-height: 1;
2159
2160 &--direct { color: $intel-low; }
2161 &--cross { color: $intel-mid; }
2162 }
2163
2164 .isd-ic-blast-sep {
2165 font-size: 10px;
2166 color: var(--text-muted);
2167 font-weight: 500;
2168 letter-spacing: 0.02em;
2169 }
2170
2171 .isd-ic-blast-dot {
2172 font-size: 14px;
2173 color: var(--border-default, #30363d);
2174 margin: 0 1px;
2175 }
2176
2177 // ── Gravity bar (inside blast section) ────────────────────────────────────────
2178 .isd-ic-grav-wrap {
2179 display: flex;
2180 align-items: center;
2181 gap: 7px;
2182 }
2183
2184 .isd-ic-grav-track {
2185 flex: 1;
2186 height: 10px;
2187 background: var(--border-subtle);
2188 border-radius: 3px;
2189 overflow: hidden;
2190 }
2191
2192 .isd-ic-grav-fill {
2193 height: 100%;
2194 border-radius: 2px;
2195 min-width: 3px;
2196 transition: width 0.5s ease;
2197
2198 &--low { background: linear-gradient(to right, rgba($intel-low, 0.4), $intel-low); }
2199 &--mid { background: linear-gradient(to right, rgba($intel-mid, 0.5), $intel-mid); }
2200 &--high { background: linear-gradient(to right, $intel-mid, $intel-high); }
2201 }
2202
2203 .isd-ic-grav-label {
2204 font-family: var(--font-mono);
2205 font-size: 10px;
2206 font-weight: 700;
2207 white-space: nowrap;
2208
2209 &--low { color: $intel-low; }
2210 &--mid { color: $intel-mid; }
2211 &--high { color: $intel-high; }
2212 }
2213
2214 // ── Co-symbol chips (file names) ──────────────────────────────────────────────
2215 .isd-ic-co-syms {
2216 display: flex;
2217 align-items: center;
2218 flex-wrap: wrap;
2219 gap: 4px;
2220 }
2221
2222 .isd-ic-co-label {
2223 font-size: 10px;
2224 color: var(--text-muted);
2225 white-space: nowrap;
2226 margin-right: 2px;
2227 }
2228
2229 .isd-ic-co-sym {
2230 font-size: 10px;
2231 font-family: var(--font-mono);
2232 color: var(--text-secondary);
2233 background: var(--bg-surface);
2234 border: 1px solid var(--border-subtle);
2235 border-radius: 4px;
2236 padding: 2px 6px;
2237 white-space: nowrap;
2238 max-width: 150px;
2239 overflow: hidden;
2240 text-overflow: ellipsis;
2241 cursor: default;
2242
2243 &--more {
2244 color: var(--text-muted);
2245 border-style: dashed;
2246 }
2247
2248 &:hover {
2249 background: var(--bg-overlay);
2250 border-color: var(--border-muted);
2251 color: var(--text-primary);
2252 }
2253 }
2254
2255 // ── Churn section — dense single line + full-width sparkline ──────────────────
2256 .isd-ic-churn-line {
2257 display: flex;
2258 align-items: baseline;
2259 flex-wrap: wrap;
2260 gap: 4px;
2261 font-size: 12px;
2262 color: var(--text-secondary);
2263 line-height: 1.5;
2264 }
2265
2266 .isd-ic-churn-n {
2267 font-family: var(--font-mono);
2268 font-size: 16px;
2269 font-weight: 800;
2270 color: var(--text-primary);
2271 line-height: 1;
2272 }
2273
2274 .isd-ic-churn-txt {
2275 font-size: 11px;
2276 color: var(--text-secondary);
2277 }
2278
2279 .isd-ic-churn-dot {
2280 font-size: 13px;
2281 color: var(--border-default, #30363d);
2282 margin: 0 1px;
2283 }
2284
2285 .isd-ic-churn-ts {
2286 font-family: var(--font-mono);
2287 font-size: 11px;
2288 color: var(--text-muted);
2289 }
2290
2291 .isd-ic-churn-author {
2292 font-size: 11px;
2293 font-weight: 700;
2294 color: var(--text-secondary);
2295 }
2296
2297 // ── Sparkline — fixed-width bars, one per week ───────────────────────────────
2298 .isd-ic-sparkline {
2299 display: flex;
2300 align-items: flex-end;
2301 gap: 2px;
2302 height: 36px;
2303 }
2304
2305 .isd-ic-spark-bar {
2306 display: block;
2307 width: 8px;
2308 flex: none;
2309 border-radius: 2px 2px 0 0;
2310 background: $intel-low;
2311 opacity: 0.85;
2312 transition: opacity 0.15s;
2313
2314 &:hover { opacity: 1; }
2315 }
2316
2317 .isd-ic-spark-gap {
2318 display: block;
2319 width: 8px;
2320 flex: none;
2321 // empty slot — keeps weekly alignment without a bar
2322 }
2323
2324 // ── Open issues ───────────────────────────────────────────────────────────────
2325 .isd-ic-issue-count {
2326 font-family: var(--font-mono);
2327 font-size: 11px;
2328 font-weight: 700;
2329 color: var(--text-secondary);
2330 letter-spacing: 0;
2331 text-transform: none;
2332 }
2333
2334 .isd-ic-issue-list {
2335 display: flex;
2336 flex-wrap: wrap;
2337 gap: 4px;
2338 }
2339
2340 .isd-ic-issue-badge {
2341 font-size: 11px;
2342 font-family: var(--font-mono);
2343 font-weight: 600;
2344 padding: 2px 8px;
2345 border-radius: 10px;
2346 border: 1px solid var(--border-subtle);
2347 background: var(--bg-surface);
2348 color: $intel-low;
2349 text-decoration: none;
2350 transition: background 0.1s, border-color 0.1s;
2351
2352 &:hover {
2353 background: rgba($intel-low, 0.1);
2354 border-color: $intel-low;
2355 text-decoration: none;
2356 }
2357
2358 &--current {
2359 background: rgba($intel-low, 0.14);
2360 border-color: $intel-low;
2361 cursor: default;
2362 pointer-events: none;
2363 }
2364 }
2365
2366 .isd-ic-empty-hint {
2367 font-size: 11px;
2368 color: var(--text-muted);
2369 font-style: italic;
2370 }
2371
2372 // ─── Phase 4C: New Issue page ────────────────────────────────────────────────
2373
2374 .isn-page {
2375 max-width: 960px;
2376 margin: 0 auto;
2377 padding: var(--space-4) var(--space-3);
2378 }
2379
2380 .isn-layout {
2381 display: grid;
2382 grid-template-columns: 1fr 240px;
2383 gap: var(--space-4);
2384 align-items: start;
2385
2386 @media (max-width: 720px) {
2387 grid-template-columns: 1fr;
2388 }
2389 }
2390
2391 .isn-main { min-width: 0; }
2392
2393 .isn-card {
2394 padding: 0;
2395 overflow: hidden;
2396 }
2397
2398 .isn-card-header {
2399 display: flex;
2400 align-items: center;
2401 justify-content: space-between;
2402 padding: var(--space-3) var(--space-4);
2403 border-bottom: 1px solid var(--border-subtle);
2404 }
2405
2406 .isn-card-title {
2407 font-size: 15px;
2408 font-weight: var(--font-weight-semibold);
2409 color: var(--text-primary);
2410 }
2411
2412 .isn-back-link {
2413 font-size: 12px;
2414 color: var(--text-muted);
2415 text-decoration: none;
2416 &:hover { color: var(--text-primary); }
2417 }
2418
2419 .isn-card-body {
2420 padding: var(--space-4);
2421 display: flex;
2422 flex-direction: column;
2423 gap: var(--space-5);
2424 }
2425
2426 .isn-intro {
2427 font-size: 13px;
2428 color: var(--text-secondary);
2429 line-height: 1.6;
2430 margin: 0;
2431 }
2432
2433 .isn-section {
2434 display: flex;
2435 flex-direction: column;
2436 gap: var(--space-3);
2437 }
2438
2439 .isn-section-header {
2440 display: flex;
2441 align-items: center;
2442 gap: var(--space-2);
2443 }
2444
2445 .isn-section-icon {
2446 font-size: 13px;
2447 color: var(--text-muted);
2448 font-family: var(--font-mono);
2449 }
2450
2451 .isn-section-title {
2452 font-size: 13px;
2453 font-weight: var(--font-weight-semibold);
2454 color: var(--text-primary);
2455 }
2456
2457 .isn-cli-block {
2458 display: flex;
2459 flex-direction: column;
2460 gap: var(--space-3);
2461 background: var(--bg-overlay);
2462 border: 1px solid var(--border-subtle);
2463 border-radius: 8px;
2464 padding: var(--space-3);
2465 }
2466
2467 .isn-cli-step {
2468 display: flex;
2469 gap: var(--space-3);
2470 align-items: flex-start;
2471 }
2472
2473 .isn-cli-num {
2474 display: flex;
2475 align-items: center;
2476 justify-content: center;
2477 width: 20px;
2478 height: 20px;
2479 border-radius: 50%;
2480 background: var(--color-accent-link, #4f8ef7);
2481 color: #fff;
2482 font-size: 10px;
2483 font-weight: var(--font-weight-semibold);
2484 flex-shrink: 0;
2485 margin-top: 2px;
2486 }
2487
2488 .isn-cli-step-body {
2489 display: flex;
2490 flex-direction: column;
2491 gap: 6px;
2492 flex: 1;
2493 min-width: 0;
2494 }
2495
2496 .isn-cli-label {
2497 font-size: 12px;
2498 color: var(--text-secondary);
2499 }
2500
2501 .isn-cli-cmd {
2502 display: block;
2503 font-size: 11px;
2504 font-family: var(--font-mono);
2505 color: var(--text-primary);
2506 background: var(--bg-base, #0d1117);
2507 border: 1px solid var(--border-subtle);
2508 border-radius: 5px;
2509 padding: var(--space-2) var(--space-3);
2510 overflow-x: auto;
2511 white-space: pre-wrap;
2512 word-break: break-all;
2513 line-height: 1.6;
2514 }
2515
2516 .isn-mcp-desc {
2517 font-size: 13px;
2518 color: var(--text-secondary);
2519 line-height: 1.6;
2520 margin: 0;
2521
2522 code {
2523 font-family: var(--font-mono);
2524 font-size: 11px;
2525 background: var(--bg-overlay);
2526 padding: 1px 5px;
2527 border-radius: 3px;
2528 border: 1px solid var(--border-subtle);
2529 }
2530 }
2531
2532 .isn-mcp-link {
2533 font-size: 13px;
2534 color: var(--color-accent-link, #4f8ef7);
2535 text-decoration: none;
2536 &:hover { text-decoration: underline; }
2537 }
2538
2539 .isn-anatomy {
2540 display: flex;
2541 flex-direction: column;
2542 border: 1px solid var(--border-subtle);
2543 border-radius: 8px;
2544 overflow: hidden;
2545 }
2546
2547 .isn-anatomy-row {
2548 display: flex;
2549 gap: var(--space-3);
2550 padding: var(--space-2) var(--space-3);
2551 font-size: 12px;
2552 border-bottom: 1px solid var(--border-subtle);
2553
2554 &:last-child { border-bottom: none; }
2555 }
2556
2557 .isn-anatomy-key {
2558 font-family: var(--font-mono);
2559 font-size: 11px;
2560 color: var(--color-accent-link, #4f8ef7);
2561 min-width: 64px;
2562 flex-shrink: 0;
2563 padding-top: 1px;
2564 }
2565
2566 .isn-anatomy-val {
2567 color: var(--text-secondary);
2568 line-height: 1.5;
2569
2570 code {
2571 font-family: var(--font-mono);
2572 font-size: 11px;
2573 background: var(--bg-overlay);
2574 padding: 1px 5px;
2575 border-radius: 3px;
2576 border: 1px solid var(--border-subtle);
2577 }
2578 }
2579
2580 // ── New issue sidebar ──
2581
2582 .isn-sidebar {
2583 display: flex;
2584 flex-direction: column;
2585 gap: var(--space-3);
2586 }
2587
2588 .isn-sb-section {
2589 background: var(--bg-card, #161b22);
2590 border: 1px solid var(--border-default);
2591 border-radius: 8px;
2592 padding: var(--space-3);
2593 display: flex;
2594 flex-direction: column;
2595 gap: var(--space-2);
2596 }
2597
2598 .isn-sb-header {
2599 font-size: 12px;
2600 font-weight: var(--font-weight-semibold);
2601 color: var(--text-secondary);
2602 text-transform: uppercase;
2603 letter-spacing: 0.05em;
2604 }
2605
2606 .isn-sb-links {
2607 display: flex;
2608 flex-direction: column;
2609 gap: 4px;
2610 }
2611
2612 .isn-sb-link {
2613 font-size: 13px;
2614 color: var(--color-accent-link, #4f8ef7);
2615 text-decoration: none;
2616 padding: 3px 0;
2617 &:hover { text-decoration: underline; }
2618 }
2619
2620 .isn-sb-body {
2621 font-size: 12px;
2622 color: var(--text-muted);
2623 line-height: 1.6;
2624 margin: 0;
2625 }
File History 1 commit
sha256:9590cee1e0ccd6c76528f005b95d634d80f5019f0dcb7c371e149adc31d1fb65 refactor: enforce gRPC framing on all MWP wire traffic Sonnet 4.6 minor ⚠ 156 days ago