gabriel / musehub public
_issues.scss
2,038 lines 52.9 KB
Raw
sha256:a34090cc4a394a78bd72cbbe34b08cc59525141e19135b6c0ab154f10611b9ef debug(push/stream): instrument O-frame decode path with INF… Sonnet 4.6 patch 121 days ago
1 // ─────────────────────────────────────────────────────────────────────────────
2 // Component: Issues (list · detail · new)
3 // File: src/scss/components/_issues.scss
4 //
5 // Visual rules for .isl-* (list), .isd-* (detail), .isn-* (new issue).
6 // Structural layout lives in pages/_issues.scss.
7 // ─────────────────────────────────────────────────────────────────────────────
8
9 // ── Stat strip ────────────────────────────────────────────────────────────────
10
11 .isl-stat-strip {
12 font-size: 13px;
13 color: var(--text-secondary);
14 }
15
16 .isl-strip-select {
17 appearance: none;
18 background: var(--bg-surface);
19 border: 1px solid var(--border-default);
20 border-radius: var(--radius-sm);
21 color: var(--text-secondary);
22 font-size: 12px;
23 font-family: var(--font-mono);
24 padding: 3px 22px 3px 8px;
25 cursor: pointer;
26 transition: border-color var(--transition-fast), background var(--transition-fast);
27 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");
28 background-repeat: no-repeat;
29 background-position: right 6px center;
30
31 &:hover { border-color: var(--border-default); background-color: var(--bg-overlay); }
32 &:focus { outline: none; border-color: var(--color-accent-link); }
33 }
34
35 .isl-strip-clear {
36 font-size: 11px;
37 color: var(--text-muted);
38 text-decoration: none;
39 padding: 3px 6px;
40 border-radius: var(--radius-sm);
41 border: 1px solid var(--border-default);
42 transition: color var(--transition-fast), border-color var(--transition-fast);
43 &:hover { color: var(--text-primary); border-color: var(--border-default); }
44 }
45
46 .isl-stat-pill {
47 display: inline-flex;
48 align-items: center;
49 gap: 5px;
50 text-decoration: none;
51 color: var(--text-secondary);
52 border-radius: 20px;
53 padding: 3px 10px;
54 transition: background var(--transition-fast);
55
56 strong {
57 font-weight: var(--weight-semibold);
58 color: var(--text-primary);
59 font-family: var(--font-mono);
60 }
61
62 &:hover { background: var(--bg-overlay); text-decoration: none; }
63
64 &--active {
65 background: var(--bg-overlay);
66 strong { color: var(--text-primary); }
67 }
68
69 &--agent { strong { color: var(--color-purple); } }
70 &--anchored { strong { color: var(--color-accent); } }
71 }
72
73 .isl-pip {
74 width: 7px;
75 height: 7px;
76 border-radius: 50%;
77 flex-shrink: 0;
78 &--open { background: var(--color-success); box-shadow: 0 0 5px rgba(63,185,80, 0.6); }
79 &--closed { background: var(--color-purple); box-shadow: 0 0 5px rgba(167,139,250, 0.6); }
80 }
81
82 .isl-stat-sep {
83 color: var(--border-default);
84 font-size: 14px;
85 line-height: 1;
86 user-select: none;
87 }
88
89 // ── Bulk action toolbar ───────────────────────────────────────────────────────
90
91 #bulk-toolbar { display: none; }
92
93 .isl-bulk-toolbar {
94 display: flex;
95 align-items: center;
96 gap: var(--space-2);
97 padding: var(--space-2) var(--space-4);
98 background: var(--bg-overlay);
99 border-bottom: 1px solid var(--border-subtle);
100 font-size: 12px;
101 flex-wrap: wrap;
102 }
103
104 .isl-bulk-count { color: var(--text-secondary); font-weight: var(--weight-semibold); }
105 .isl-bulk-sep { width: 1px; height: 14px; background: var(--border-default); flex-shrink: 0; }
106
107 .isl-bulk-select {
108 font-size: 12px;
109 background: var(--bg-surface);
110 border: 1px solid var(--border-default);
111 border-radius: var(--radius-sm);
112 color: var(--text-primary);
113 padding: 3px 8px;
114 }
115
116 .isl-bulk-btn {
117 background: var(--bg-overlay);
118 border: 1px solid var(--border-default);
119 border-radius: var(--radius-sm);
120 color: var(--text-secondary);
121 font-size: 12px;
122 padding: 3px 10px;
123 cursor: pointer;
124 transition: all var(--transition-fast);
125 &:hover { border-color: var(--border-default); color: var(--text-primary); }
126 &.isl-bulk-btn--deselect { color: var(--text-muted); }
127 }
128
129 // ── Toolbar ───────────────────────────────────────────────────────────────────
130
131 .isl-toolbar {
132 display: flex;
133 align-items: center;
134 flex-wrap: wrap;
135 gap: 0;
136 padding: 0 var(--space-4);
137 border-bottom: 1px solid var(--border-subtle);
138 min-height: 48px;
139 }
140
141 .isl-tab {
142 display: inline-flex;
143 align-items: center;
144 gap: 6px;
145 padding: 14px;
146 font-size: 13px;
147 color: var(--text-muted);
148 text-decoration: none;
149 border-bottom: 2px solid transparent;
150 white-space: nowrap;
151 transition: color var(--transition-fast), border-color var(--transition-fast);
152
153 &:hover { color: var(--text-secondary); text-decoration: none; }
154 &.isl-tab--active {
155 color: var(--text-primary);
156 border-bottom-color: var(--color-accent);
157 font-weight: var(--weight-semibold);
158 }
159 }
160
161 .isl-tab-dot {
162 width: 7px;
163 height: 7px;
164 border-radius: 50%;
165 flex-shrink: 0;
166 &--open { background: var(--color-success); }
167 &--closed { background: var(--color-purple); }
168 }
169
170 .isl-tab-ct {
171 background: var(--bg-overlay);
172 border: 1px solid var(--border-subtle);
173 border-radius: var(--radius-full);
174 font-size: 10px;
175 font-weight: var(--weight-semibold);
176 padding: 1px 6px;
177 font-family: var(--font-mono);
178 min-width: 18px;
179 text-align: center;
180 color: var(--text-muted);
181 &.isl-tab-ct--active { color: var(--text-primary); }
182 }
183
184 .isl-filter-select {
185 font-size: 12px;
186 background: var(--bg-surface);
187 border: 1px solid var(--border-subtle);
188 border-radius: var(--radius-sm);
189 color: var(--text-secondary);
190 padding: 4px 8px;
191 cursor: pointer;
192 transition: border-color var(--transition-fast);
193 &:hover { border-color: var(--border-default); color: var(--text-primary); }
194 &:focus { outline: none; border-color: var(--color-accent); }
195 }
196
197 .isl-clear-btn {
198 font-size: 12px;
199 color: var(--text-muted);
200 text-decoration: none;
201 padding: 4px 6px;
202 border-radius: var(--radius-sm);
203 transition: color var(--transition-fast);
204 &:hover { color: var(--color-danger); text-decoration: none; }
205 }
206
207 .isl-result-count {
208 font-size: 12px;
209 color: var(--text-muted);
210 white-space: nowrap;
211 }
212
213 // ── Issue list rows ───────────────────────────────────────────────────────────
214
215 .isl-row {
216 display: flex;
217 align-items: flex-start;
218 gap: var(--space-3);
219 padding: var(--space-3) var(--space-4);
220 border-bottom: 1px solid var(--border-subtle);
221 text-decoration: none;
222 transition: background var(--transition-fast);
223 cursor: pointer;
224
225 &:last-child { border-bottom: none; }
226 &:hover { background: var(--bg-overlay); text-decoration: none; }
227 }
228
229 .isl-check {
230 flex-shrink: 0;
231 margin-top: 3px;
232 accent-color: var(--color-accent);
233 cursor: pointer;
234 }
235
236 .isl-row-icon { flex-shrink: 0; margin-top: 1px; }
237 .isl-icon { display: block; }
238 .isl-icon--open { color: var(--color-success); }
239 .isl-icon--closed { color: var(--color-purple); }
240
241 .isl-row-title {
242 font-size: 14px;
243 font-weight: var(--weight-semibold);
244 color: var(--text-primary);
245 line-height: 1.4;
246 .isl-row:hover & { color: var(--color-accent-link); }
247 }
248
249 .isl-row-num {
250 font-size: 12px;
251 color: var(--text-muted);
252 font-family: var(--font-mono);
253 flex-shrink: 0;
254 }
255
256 .isl-row-meta-line {
257 font-size: 11px;
258 color: var(--text-muted);
259 }
260
261 .isl-label-chip {
262 display: inline-block;
263 padding: 1px 7px;
264 border-radius: var(--radius-full);
265 font-size: 11px;
266 font-weight: var(--weight-medium);
267 border: 1px solid;
268 white-space: nowrap;
269 }
270
271 .isl-meta-author {
272 display: inline-flex;
273 align-items: center;
274 gap: 4px;
275 color: var(--text-secondary);
276 }
277
278 .isl-meta-agent-icon { color: var(--color-purple); font-size: 10px; }
279
280 .isl-meta-sep { color: var(--border-default); }
281
282 .isl-meta-dot {
283 width: 3px;
284 height: 3px;
285 border-radius: 50%;
286 background: var(--border-default);
287 display: inline-block;
288 vertical-align: middle;
289 }
290
291 .isl-meta-label {
292 display: inline-flex;
293 align-items: center;
294 gap: 3px;
295 padding: 1px 6px;
296 border-radius: 10px;
297 font-size: 10px;
298 border: 1px solid;
299 white-space: nowrap;
300 }
301
302 .isl-meta-agent {
303 display: inline-flex;
304 align-items: center;
305 gap: 2px;
306 font-size: 10px;
307 font-family: var(--font-mono);
308 color: var(--color-purple);
309 background: color-mix(in srgb, var(--color-purple) 10%, transparent);
310 border: 1px solid color-mix(in srgb, var(--color-purple) 25%, transparent);
311 border-radius: 10px;
312 padding: 0 5px;
313 height: 16px;
314 }
315
316 .isl-row-ct {
317 font-size: 11px;
318 color: var(--text-muted);
319 white-space: nowrap;
320 }
321
322 .isl-row-updated {
323 font-size: 11px;
324 color: var(--text-muted);
325 white-space: nowrap;
326 font-family: var(--font-mono);
327 }
328
329 // ── Empty state ────────────────────────────────────────────────────────────────
330
331 .isl-empty-icon { font-size: 32px; color: var(--text-muted); opacity: 0.4; }
332 .isl-empty-title {
333 font-size: 16px;
334 font-weight: var(--weight-semibold);
335 color: var(--text-primary);
336 margin: 0;
337 }
338 .isl-empty-sub {
339 font-size: 13px;
340 color: var(--text-muted);
341 margin: 0;
342 }
343
344 // ── Pagination ─────────────────────────────────────────────────────────────────
345
346 .isl-page-btn {
347 display: inline-flex;
348 align-items: center;
349 justify-content: center;
350 min-width: 32px;
351 height: 32px;
352 padding: 0 var(--space-2);
353 border: 1px solid var(--border-subtle);
354 border-radius: var(--radius-sm);
355 background: transparent;
356 color: var(--text-secondary);
357 font-size: 13px;
358 text-decoration: none;
359 transition: background var(--transition-fast), border-color var(--transition-fast);
360 cursor: pointer;
361
362 &:hover { background: var(--bg-overlay); border-color: var(--border-default); text-decoration: none; }
363 &--active {
364 background: var(--color-accent);
365 color: #fff;
366 border-color: var(--color-accent);
367 cursor: default;
368 }
369 &--disabled { opacity: 0.35; pointer-events: none; }
370 }
371
372 // ── Template picker ────────────────────────────────────────────────────────────
373
374 .isl-tpl-card {
375 display: flex;
376 flex-direction: column;
377 gap: var(--space-2);
378 padding: var(--space-3) var(--space-4);
379 background: transparent;
380 border: 1px solid var(--border-subtle);
381 border-radius: var(--radius-sm);
382 text-decoration: none;
383 transition: border-color var(--transition-fast), background var(--transition-fast);
384 cursor: pointer;
385
386 &:hover { border-color: var(--color-accent); background: rgba(255,255,255,0.02); text-decoration: none; }
387 }
388
389 .isl-tpl-icon { font-size: 18px; }
390 .isl-tpl-name { font-size: 13px; font-weight: var(--weight-semibold); color: var(--text-primary); }
391 .isl-tpl-desc { font-size: 11px; color: var(--text-muted); line-height: 1.4; }
392
393 // ── Right sidebar ─────────────────────────────────────────────────────────────
394
395 .isl-sb-section {
396 border-bottom: 1px solid var(--border-subtle);
397 padding: var(--space-3) var(--space-3);
398 &:last-child { border-bottom: none; }
399 }
400
401 .isl-sb-hd {
402 display: flex;
403 align-items: center;
404 gap: var(--space-2);
405 margin-bottom: var(--space-2);
406 }
407
408 .isl-sb-icon { font-size: 12px; color: var(--text-muted); }
409
410 .isl-sb-title {
411 font-size: 11px;
412 font-weight: 700;
413 color: var(--text-muted);
414 text-transform: uppercase;
415 letter-spacing: 0.06em;
416 }
417
418 .isl-sb-subtitle {
419 font-size: 10px;
420 color: var(--text-muted);
421 margin-left: auto;
422 }
423
424 .isl-sb-label {
425 display: flex;
426 align-items: center;
427 gap: 7px;
428 font-size: 12px;
429 color: var(--text-primary);
430 text-decoration: none;
431 padding: 3px 6px;
432 border-radius: var(--radius-sm);
433 transition: background var(--transition-fast);
434
435 &:hover { background: var(--bg-overlay); text-decoration: none; }
436 &.isl-sb-label--active { background: var(--bg-overlay); font-weight: var(--weight-semibold); }
437 }
438
439 .isl-sb-label-dot {
440 width: 9px;
441 height: 9px;
442 border-radius: 50%;
443 flex-shrink: 0;
444 border: 1px solid rgba(255,255,255,0.1);
445 }
446
447 .isl-person {
448 display: flex;
449 align-items: center;
450 gap: 8px;
451 text-decoration: none;
452 padding: 3px 6px;
453 border-radius: var(--radius-sm);
454 transition: background var(--transition-fast);
455
456 &:hover { background: var(--bg-overlay); text-decoration: none; }
457 &.isl-person--active { background: var(--bg-overlay); }
458 }
459
460 .isl-person-avatar {
461 width: 22px;
462 height: 22px;
463 border-radius: 50%;
464 display: inline-flex;
465 align-items: center;
466 justify-content: center;
467 font-size: 9px;
468 font-weight: var(--weight-bold);
469 color: #fff;
470 flex-shrink: 0;
471 }
472
473 .isl-person-name { font-size: 12px; color: var(--text-primary); }
474
475 // ── Intel sidebar sections ────────────────────────────────────────────────────
476
477 .isl-sb-section--intel {
478 border-top: 1px solid var(--border-subtle);
479 padding-top: var(--space-2);
480 margin-top: 2px;
481 }
482
483 .isl-sb-intel-icon {
484 font-size: 11px;
485 margin-right: 3px;
486 &--hot { color: var(--color-accent); }
487 &--blast { color: var(--color-orange); }
488 &--agent { color: var(--color-purple); }
489 }
490
491 .isl-sb-intel-desc {
492 font-size: 11px;
493 color: var(--text-muted);
494 margin: 0 0 var(--space-1);
495 font-style: italic;
496 }
497
498 .isl-sb-intel-row {
499 display: flex;
500 align-items: flex-start;
501 gap: 6px;
502 padding: 5px 4px;
503 border-radius: var(--radius-sm);
504 text-decoration: none;
505 transition: background var(--transition-fast);
506 &:hover { background: var(--bg-overlay); text-decoration: none; }
507 }
508
509 .isl-sb-intel-num {
510 font-size: 10px;
511 font-family: var(--font-mono);
512 color: var(--text-muted);
513 flex-shrink: 0;
514 min-width: 28px;
515 padding-top: 1px;
516 }
517
518 .isl-sb-intel-title {
519 font-size: 12px;
520 color: var(--text-secondary);
521 overflow: hidden;
522 text-overflow: ellipsis;
523 white-space: nowrap;
524 line-height: 1.3;
525 }
526
527 .isl-sb-intel-sub {
528 font-size: 10px;
529 color: var(--text-muted);
530 font-family: var(--font-mono);
531 overflow: hidden;
532 text-overflow: ellipsis;
533 white-space: nowrap;
534 }
535
536 .isl-sb-intel-badge {
537 font-size: 10px;
538 font-family: var(--font-mono);
539 border-radius: 8px;
540 padding: 0 5px;
541 height: 16px;
542 line-height: 16px;
543 flex-shrink: 0;
544 align-self: center;
545 font-weight: var(--weight-semibold);
546
547 &--hot {
548 color: var(--color-accent);
549 background: color-mix(in srgb, var(--color-accent) 12%, transparent);
550 border: 1px solid color-mix(in srgb, var(--color-accent) 25%, transparent);
551 }
552 &--blast {
553 color: var(--color-orange);
554 background: color-mix(in srgb, var(--color-orange) 12%, transparent);
555 border: 1px solid color-mix(in srgb, var(--color-orange) 25%, transparent);
556 }
557 }
558
559 .isl-sb-agent-row {
560 display: flex;
561 align-items: center;
562 gap: var(--space-2);
563 padding: 3px 2px;
564 }
565
566 .isl-sb-agent-pip {
567 width: 6px;
568 height: 6px;
569 border-radius: 50%;
570 background: var(--color-purple);
571 flex-shrink: 0;
572 box-shadow: 0 0 4px rgba(167,139,250, 0.5);
573 }
574
575 .isl-sb-agent-name {
576 font-size: 12px;
577 color: var(--text-secondary);
578 flex: 1;
579 overflow: hidden;
580 text-overflow: ellipsis;
581 white-space: nowrap;
582 font-family: var(--font-mono);
583 }
584
585 .isl-sb-agent-count {
586 font-size: 11px;
587 color: var(--text-muted);
588 flex-shrink: 0;
589 }
590
591 // ── List page CLI sidebar ─────────────────────────────────────────────────────
592
593 .isl-sb-section--cli {
594 border-top: 1px solid var(--border-subtle);
595 margin-top: 2px;
596 padding-top: var(--space-2);
597 }
598
599 .isl-cli-block {
600 display: flex;
601 flex-direction: column;
602 gap: 1px;
603 background: var(--bg-overlay);
604 border: 1px solid var(--border-subtle);
605 border-radius: var(--radius-sm);
606 padding: var(--space-2) var(--space-3);
607 margin-top: var(--space-1);
608 overflow-x: auto;
609 min-width: 0;
610 }
611
612 .isl-cli-line {
613 display: block;
614 font-family: var(--font-mono);
615 font-size: 11px;
616 color: var(--text-secondary);
617 line-height: 1.6;
618 white-space: pre;
619 user-select: all;
620 }
621
622 // ── Row anchor / blast / agent badges ─────────────────────────────────────────
623
624 .isl-anchor-badge {
625 display: inline-flex;
626 align-items: center;
627 gap: 2px;
628 font-size: 10px;
629 font-family: var(--font-mono);
630 color: var(--color-accent);
631 background: color-mix(in srgb, var(--color-accent) 10%, transparent);
632 border: 1px solid color-mix(in srgb, var(--color-accent) 25%, transparent);
633 border-radius: 10px;
634 padding: 0 6px;
635 height: 18px;
636 line-height: 1;
637 vertical-align: middle;
638 white-space: nowrap;
639 }
640
641 .isl-blast-badge {
642 display: inline-flex;
643 align-items: center;
644 font-size: 10px;
645 font-family: var(--font-mono);
646 border-radius: 10px;
647 padding: 0 6px;
648 height: 18px;
649 line-height: 1;
650 vertical-align: middle;
651 white-space: nowrap;
652 font-weight: var(--weight-semibold);
653
654 &.blast-badge--low {
655 color: var(--color-accent);
656 background: color-mix(in srgb, var(--color-accent) 10%, transparent);
657 border: 1px solid color-mix(in srgb, var(--color-accent) 25%, transparent);
658 }
659 &.blast-badge--mid {
660 color: var(--color-orange);
661 background: color-mix(in srgb, var(--color-orange) 10%, transparent);
662 border: 1px solid color-mix(in srgb, var(--color-orange) 25%, transparent);
663 }
664 &.blast-badge--high {
665 color: var(--color-danger);
666 background: color-mix(in srgb, var(--color-danger) 10%, transparent);
667 border: 1px solid color-mix(in srgb, var(--color-danger) 25%, transparent);
668 }
669 }
670
671 .isl-agent-badge {
672 display: inline-flex;
673 align-items: center;
674 font-size: 10px;
675 font-family: var(--font-mono);
676 color: var(--color-purple);
677 background: color-mix(in srgb, var(--color-purple) 10%, transparent);
678 border: 1px solid color-mix(in srgb, var(--color-purple) 25%, transparent);
679 border-radius: 10px;
680 padding: 0 6px;
681 height: 18px;
682 line-height: 1;
683 vertical-align: middle;
684 white-space: nowrap;
685 text-transform: uppercase;
686 letter-spacing: 0.04em;
687 }
688
689 .isl-mini-agent-icon {
690 display: inline-flex;
691 align-items: center;
692 color: var(--color-purple);
693 margin-right: 2px;
694 }
695
696 // ═══════════════════════════════════════════════════════════════════════════════
697 // Issue detail page (.isd-*)
698 // ═══════════════════════════════════════════════════════════════════════════════
699
700 // ── Hero ──────────────────────────────────────────────────────────────────────
701
702 .isd-hero {
703 position: relative;
704 background: linear-gradient(135deg, var(--bg-base) 0%, var(--bg-hero-mid) 60%, var(--bg-base) 100%);
705 border-bottom: 1px solid var(--border-default);
706 overflow: hidden;
707 }
708
709 .isd-hero-glow {
710 position: absolute;
711 inset: 0;
712 pointer-events: none;
713
714 &--open {
715 background:
716 radial-gradient(ellipse 55% 70% at 75% 40%, color-mix(in srgb, var(--color-success) 9%, transparent) 0%, transparent 65%),
717 radial-gradient(ellipse 35% 50% at 15% 70%, color-mix(in srgb, var(--color-accent) 5%, transparent) 0%, transparent 60%);
718 }
719 &--closed {
720 background:
721 radial-gradient(ellipse 55% 70% at 70% 40%, color-mix(in srgb, var(--color-purple) 8%, transparent) 0%, transparent 65%),
722 radial-gradient(ellipse 35% 50% at 15% 70%, color-mix(in srgb, var(--text-secondary) 4%, transparent) 0%, transparent 60%);
723 }
724 }
725
726 // ── Eyebrow ───────────────────────────────────────────────────────────────────
727
728 .isd-eyebrow-right {
729 font-size: 12px;
730 color: var(--text-muted);
731 white-space: nowrap;
732 }
733
734 .isd-eyebrow-filed-label { color: var(--text-muted); font-size: 11px; }
735 .isd-eyebrow-sep { color: var(--border-default); }
736 .isd-eyebrow-time { font-size: 11px; color: var(--text-muted); }
737
738 .isd-state-badge {
739 display: inline-flex;
740 align-items: center;
741 gap: 5px;
742 padding: 3px 10px;
743 border-radius: var(--radius-sm);
744 font-size: 11px;
745 font-weight: 600;
746 letter-spacing: 0.03em;
747 white-space: nowrap;
748
749 svg { flex-shrink: 0; }
750
751 &--open {
752 background: color-mix(in srgb, var(--color-success) 12%, transparent);
753 color: var(--color-success);
754 border: 1px solid color-mix(in srgb, var(--color-success) 30%, transparent);
755 }
756 &--closed {
757 background: color-mix(in srgb, var(--color-purple) 12%, transparent);
758 color: var(--color-purple);
759 border: 1px solid color-mix(in srgb, var(--color-purple) 30%, transparent);
760 }
761 }
762
763 .isd-issue-num {
764 font-family: var(--font-mono);
765 font-size: 13px;
766 color: var(--text-muted);
767 }
768
769 .isd-type-pill {
770 display: inline-flex;
771 align-items: center;
772 gap: 4px;
773 border: 1px solid var(--border-subtle);
774 border-radius: var(--radius-sm);
775 padding: 2px 8px;
776 font-size: 11px;
777 font-weight: 500;
778 letter-spacing: 0.02em;
779 color: var(--text-secondary);
780
781 svg { flex-shrink: 0; opacity: 0.9; }
782 }
783
784 // ── Title + meta ──────────────────────────────────────────────────────────────
785
786 .isd-title {
787 font-size: 24px;
788 font-weight: 700;
789 color: var(--text-primary);
790 line-height: 1.3;
791 margin: 0 0 var(--space-3);
792 letter-spacing: -0.01em;
793 @media (max-width: 640px) { font-size: 20px; }
794 }
795
796 .isd-actor-link {
797 color: var(--color-accent-link);
798 text-decoration: none;
799 font-size: 12px;
800 font-weight: 500;
801 &:hover { text-decoration: underline; }
802 }
803
804 .isd-identity-badge {
805 display: inline-flex;
806 align-items: center;
807 gap: 3px;
808 padding: 1px 6px;
809 border-radius: 10px;
810 font-size: 10px;
811 font-weight: 500;
812 letter-spacing: 0.03em;
813
814 &--agent {
815 background: color-mix(in srgb, var(--color-accent) 10%, transparent);
816 border: 1px solid color-mix(in srgb, var(--color-accent) 28%, transparent);
817 color: var(--color-accent);
818 }
819 &--human {
820 background: color-mix(in srgb, var(--text-secondary) 10%, transparent);
821 border: 1px solid color-mix(in srgb, var(--text-secondary) 28%, transparent);
822 color: var(--text-secondary);
823 }
824 &--org {
825 background: color-mix(in srgb, var(--color-warning) 10%, transparent);
826 border: 1px solid color-mix(in srgb, var(--color-warning) 28%, transparent);
827 color: var(--color-warning);
828 }
829 }
830
831 .isd-avatar {
832 display: inline-flex;
833 align-items: center;
834 justify-content: center;
835 width: 24px;
836 height: 24px;
837 border-radius: 50%;
838 background: var(--bg-overlay);
839 border: 1px solid var(--border-subtle);
840 font-size: 10px;
841 font-weight: 700;
842 color: var(--text-secondary);
843 flex-shrink: 0;
844
845 &--lg { width: 32px; height: 32px; font-size: 13px; }
846 }
847
848 // ── Stats strip ───────────────────────────────────────────────────────────────
849
850 .isd-stats {
851 position: relative;
852 max-width: 1200px;
853 margin: 0 auto;
854 display: flex;
855 gap: 0;
856 border-top: 1px solid var(--border-subtle);
857 padding: 0 var(--space-6);
858 }
859
860 .isd-stat {
861 display: flex;
862 flex-direction: column;
863 align-items: center;
864 gap: 2px;
865 padding: var(--space-3) var(--space-4);
866 border-right: 1px solid var(--border-subtle);
867 min-width: 80px;
868 &:last-child { border-right: none; }
869 }
870
871 .isd-stat-val {
872 font-family: var(--font-mono);
873 font-size: 16px;
874 font-weight: 700;
875 color: var(--text-primary);
876 line-height: 1.2;
877 &--accent { color: var(--color-accent-link); }
878 }
879
880 .isd-stat-label {
881 font-size: 10px;
882 color: var(--text-muted);
883 text-transform: uppercase;
884 letter-spacing: 0.06em;
885 white-space: nowrap;
886 }
887
888 // ── Panel ─────────────────────────────────────────────────────────────────────
889
890 .isd-panel {
891 background: transparent;
892 border: 1px solid var(--border-subtle);
893 border-radius: var(--radius-sm);
894 overflow: hidden;
895 margin-bottom: var(--space-4);
896 transition: border-color 0.15s, background 0.15s;
897
898 &:hover { border-color: var(--border-default); background: rgba(255,255,255,0.015); }
899 }
900
901 .isd-panel-hd {
902 border-bottom: 1px solid var(--border-subtle);
903 }
904
905 .isd-panel-icon { font-size: 13px; color: var(--color-accent-link); }
906 .isd-panel-title {
907 font-size: 10px;
908 font-weight: 700;
909 color: var(--text-muted);
910 text-transform: uppercase;
911 letter-spacing: 0.08em;
912 margin: 0;
913 flex: 1;
914 }
915 .isd-panel-count {
916 font-size: 10px;
917 font-family: var(--font-mono);
918 background: var(--bg-hover);
919 border-radius: 8px;
920 padding: 0 6px;
921 color: var(--text-muted);
922 }
923 .isd-panel-bd { padding: var(--space-2) var(--space-4); }
924 .isd-panel-bd--flush { padding: 0; }
925
926 // ── Symbol anchors ────────────────────────────────────────────────────────────
927
928 .isd-anchor {
929 display: flex;
930 align-items: center;
931 gap: var(--space-3);
932 padding: var(--space-2) var(--space-4);
933 border-bottom: 1px solid var(--border-subtle);
934 text-decoration: none;
935 transition: background 0.12s;
936
937 &:last-child { border-bottom: none; }
938 &:hover { background: rgba(255,255,255,0.03); }
939 &:hover .isd-anchor-arrow { color: var(--color-accent-link); }
940 }
941
942 .isd-anchor-file {
943 color: var(--text-muted);
944 white-space: nowrap;
945 overflow: hidden;
946 text-overflow: ellipsis;
947 min-width: 0;
948 flex-shrink: 1;
949 font-family: var(--font-mono);
950 font-size: 12px;
951 }
952
953 .isd-anchor-sep { color: var(--border-default); flex-shrink: 0; padding: 0 1px; font-family: var(--font-mono); font-size: 12px; }
954 .isd-anchor-sym { color: var(--color-accent-link); font-weight: 600; white-space: nowrap; flex-shrink: 0; font-family: var(--font-mono); font-size: 12px; }
955
956 .isd-anchor-stat {
957 font-family: var(--font-mono);
958 font-size: 10px;
959 color: var(--text-muted);
960 background: var(--bg-overlay);
961 border: 1px solid var(--border-subtle);
962 border-radius: 4px;
963 padding: 1px 5px;
964 }
965
966 .isd-anchor-author { font-size: 11px; color: var(--text-muted); }
967
968 .isd-anchor-arrow {
969 font-size: 12px;
970 color: var(--border-default);
971 flex-shrink: 0;
972 transition: color 0.12s;
973 }
974
975 // ── Issue body card ───────────────────────────────────────────────────────────
976
977 .isd-body-card {
978 background: transparent;
979 border: 1px solid var(--border-subtle);
980 border-radius: var(--radius-sm);
981 overflow: hidden;
982 margin-bottom: var(--space-4);
983 transition: border-color 0.15s, background 0.15s;
984 &:hover { border-color: var(--border-default); background: rgba(255,255,255,0.015); }
985 }
986
987 .isd-body-hd {
988 border-bottom: 1px solid var(--border-subtle);
989 }
990
991 .isd-body-author {
992 font-size: 13px;
993 font-weight: 600;
994 color: var(--text-primary);
995 flex: 1;
996 }
997
998 .isd-body-date { font-size: 12px; color: var(--text-muted); }
999 .isd-body-bd { padding: var(--space-4); }
1000
1001 .isd-body-content {
1002 font-size: 14px;
1003 line-height: 1.7;
1004 color: var(--text-primary);
1005
1006 h1,h2,h3,h4 { color: var(--text-primary); margin: var(--space-4) 0 var(--space-2); }
1007 p { margin: 0 0 var(--space-3); }
1008 code {
1009 font-family: var(--font-mono);
1010 font-size: 12px;
1011 background: var(--bg-overlay);
1012 border: 1px solid var(--border-subtle);
1013 border-radius: 4px;
1014 padding: 1px 5px;
1015 }
1016 pre {
1017 background: var(--bg-overlay);
1018 border: 1px solid var(--border-subtle);
1019 border-radius: 6px;
1020 padding: var(--space-3) var(--space-4);
1021 overflow-x: auto;
1022 code { background: none; border: none; padding: 0; }
1023 }
1024 ul, ol { padding-left: var(--space-5); margin: 0 0 var(--space-3); }
1025 blockquote {
1026 border-left: 3px solid var(--border-default);
1027 margin: 0 0 var(--space-3);
1028 padding-left: var(--space-3);
1029 color: var(--text-muted);
1030 }
1031 a { color: var(--color-accent-link); }
1032 table { border-collapse: collapse; width: 100%; margin: 0 0 var(--space-3); }
1033 th, td { border: 1px solid var(--border-subtle); padding: var(--space-2) var(--space-3); font-size: 13px; }
1034 th { background: var(--bg-overlay); font-weight: 600; }
1035 }
1036
1037 // ── Commit anchor rows ────────────────────────────────────────────────────────
1038
1039 .isd-commit-anchor {
1040 display: flex;
1041 align-items: center;
1042 gap: var(--space-3);
1043 padding: var(--space-2) var(--space-4);
1044 border-bottom: 1px solid var(--border-subtle);
1045 text-decoration: none;
1046 transition: background 0.12s;
1047
1048 &:last-child { border-bottom: none; }
1049 &:hover { background: rgba(255,255,255,0.03); }
1050 }
1051
1052 .isd-commit-hash {
1053 font-family: var(--font-mono);
1054 font-size: 11px;
1055 color: var(--color-accent-link);
1056 flex-shrink: 0;
1057 }
1058
1059 .isd-commit-msg {
1060 font-size: 12px;
1061 color: var(--text-secondary);
1062 flex: 1;
1063 min-width: 0;
1064 overflow: hidden;
1065 text-overflow: ellipsis;
1066 white-space: nowrap;
1067 }
1068
1069 .isd-commit-author {
1070 font-size: 11px;
1071 color: var(--text-muted);
1072 flex-shrink: 0;
1073 }
1074
1075 // ── Agent provenance ──────────────────────────────────────────────────────────
1076
1077 .isd-prov {
1078 display: flex;
1079 align-items: center;
1080 gap: var(--space-2);
1081 padding: var(--space-2) var(--space-4);
1082 background: color-mix(in srgb, var(--color-purple) 5%, transparent);
1083 border-top: 1px solid color-mix(in srgb, var(--color-purple) 15%, transparent);
1084 }
1085
1086 .isd-prov-icon { color: var(--color-purple); font-size: 12px; flex-shrink: 0; }
1087 .isd-prov-label { font-size: 11px; color: var(--text-muted); }
1088 .isd-prov-agent {
1089 font-size: 11px;
1090 font-family: var(--font-mono);
1091 color: var(--color-purple);
1092 }
1093 .isd-prov-model {
1094 font-size: 10px;
1095 color: var(--text-muted);
1096 font-family: var(--font-mono);
1097 background: var(--bg-overlay);
1098 border: 1px solid var(--border-subtle);
1099 border-radius: 4px;
1100 padding: 1px 5px;
1101 }
1102
1103 // ── Activity timeline ─────────────────────────────────────────────────────────
1104
1105 .isd-timeline {
1106 display: flex;
1107 flex-direction: column;
1108 gap: 0;
1109 }
1110
1111 .isd-event {
1112 display: flex;
1113 gap: var(--space-3);
1114 position: relative;
1115 padding: var(--space-3) 0;
1116
1117 &:not(:last-child)::before {
1118 content: '';
1119 position: absolute;
1120 left: 11px;
1121 top: 38px;
1122 bottom: 0;
1123 width: 1px;
1124 background: var(--border-subtle);
1125 }
1126 }
1127
1128 .isd-event-dot {
1129 width: 24px;
1130 height: 24px;
1131 border-radius: 50%;
1132 flex-shrink: 0;
1133 display: flex;
1134 align-items: center;
1135 justify-content: center;
1136 font-size: 11px;
1137 margin-top: 2px;
1138 position: relative;
1139 z-index: 1;
1140
1141 &--open { background: color-mix(in srgb, var(--color-success) 15%, transparent); color: var(--color-success); border: 1px solid color-mix(in srgb, var(--color-success) 35%, transparent); }
1142 &--close { background: color-mix(in srgb, var(--color-purple) 15%, transparent); color: var(--color-purple); border: 1px solid color-mix(in srgb, var(--color-purple) 35%, transparent); }
1143 &--comment { background: var(--bg-overlay); color: var(--text-muted); border: 1px solid var(--border-subtle); }
1144 &--commit { background: color-mix(in srgb, var(--color-accent) 12%, transparent); color: var(--color-accent); border: 1px solid color-mix(in srgb, var(--color-accent) 30%, transparent); }
1145 &--label { background: var(--bg-overlay); color: var(--text-muted); border: 1px solid var(--border-subtle); }
1146 &--agent { background: color-mix(in srgb, var(--color-purple) 12%, transparent); color: var(--color-purple); border: 1px solid color-mix(in srgb, var(--color-purple) 30%, transparent); }
1147 }
1148
1149 .isd-event-body {
1150 flex: 1;
1151 min-width: 0;
1152 }
1153
1154 .isd-event-hd {
1155 display: flex;
1156 align-items: baseline;
1157 gap: 6px;
1158 flex-wrap: wrap;
1159 margin-bottom: 4px;
1160 }
1161
1162 .isd-event-actor {
1163 font-size: 13px;
1164 font-weight: 600;
1165 color: var(--text-primary);
1166 }
1167
1168 .isd-event-action {
1169 font-size: 12px;
1170 color: var(--text-muted);
1171 }
1172
1173 .isd-event-time {
1174 font-size: 11px;
1175 color: var(--text-muted);
1176 margin-left: auto;
1177 flex-shrink: 0;
1178 font-family: var(--font-mono);
1179 }
1180
1181 .isd-event-card {
1182 background: transparent;
1183 border: 1px solid var(--border-subtle);
1184 border-radius: var(--radius-sm);
1185 overflow: hidden;
1186 transition: border-color 0.15s;
1187 &:hover { border-color: var(--border-default); }
1188 }
1189
1190 .isd-event-card-hd {
1191 display: flex;
1192 align-items: center;
1193 gap: var(--space-2);
1194 padding: var(--space-2) var(--space-3);
1195 border-bottom: 1px solid var(--border-subtle);
1196 background: var(--bg-overlay);
1197 }
1198
1199 .isd-event-card-body { padding: var(--space-3) var(--space-4); }
1200
1201 .isd-event-comment-content {
1202 font-size: 13px;
1203 line-height: 1.6;
1204 color: var(--text-primary);
1205
1206 p { margin: 0 0 var(--space-2); &:last-child { margin-bottom: 0; } }
1207 code {
1208 font-family: var(--font-mono);
1209 font-size: 11px;
1210 background: var(--bg-overlay);
1211 border: 1px solid var(--border-subtle);
1212 border-radius: 3px;
1213 padding: 0 4px;
1214 }
1215 }
1216
1217 .isd-reply {
1218 display: flex;
1219 gap: var(--space-3);
1220 padding: var(--space-2) var(--space-3);
1221 border-top: 1px solid var(--border-subtle);
1222 background: rgba(255,255,255,0.01);
1223 }
1224
1225 .isd-reply-dot {
1226 width: 20px;
1227 height: 20px;
1228 border-radius: 50%;
1229 background: var(--bg-overlay);
1230 border: 1px solid var(--border-subtle);
1231 display: flex;
1232 align-items: center;
1233 justify-content: center;
1234 font-size: 9px;
1235 color: var(--text-muted);
1236 flex-shrink: 0;
1237 }
1238
1239 .isd-reply-body { flex: 1; min-width: 0; }
1240
1241 .isd-reply-hd {
1242 display: flex;
1243 align-items: baseline;
1244 gap: 6px;
1245 flex-wrap: wrap;
1246 margin-bottom: 3px;
1247 }
1248
1249 .isd-reply-actor { font-size: 12px; font-weight: 600; color: var(--text-primary); }
1250 .isd-reply-time { font-size: 11px; color: var(--text-muted); font-family: var(--font-mono); }
1251
1252 .isd-reply-content {
1253 font-size: 12px;
1254 line-height: 1.5;
1255 color: var(--text-secondary);
1256 }
1257
1258 .isd-event-empty {
1259 font-size: 13px;
1260 color: var(--text-muted);
1261 font-style: italic;
1262 }
1263
1264 .isd-comment-form {
1265 display: flex;
1266 flex-direction: column;
1267 gap: var(--space-3);
1268 padding: var(--space-4);
1269 background: var(--bg-overlay);
1270 border: 1px solid var(--border-subtle);
1271 border-radius: var(--radius-sm);
1272 margin-top: var(--space-3);
1273 }
1274
1275 .isd-comment-textarea {
1276 width: 100%;
1277 min-height: 80px;
1278 background: var(--bg-base);
1279 border: 1px solid var(--border-subtle);
1280 border-radius: var(--radius-sm);
1281 color: var(--text-primary);
1282 font-size: 13px;
1283 font-family: inherit;
1284 padding: var(--space-3);
1285 resize: vertical;
1286 transition: border-color var(--transition-fast);
1287 box-sizing: border-box;
1288
1289 &:focus { outline: none; border-color: var(--color-accent); }
1290 &::placeholder { color: var(--text-muted); }
1291 }
1292
1293 // ── Detail sidebar ────────────────────────────────────────────────────────────
1294
1295 .isd-sb-card {
1296 background: transparent;
1297 border: 1px solid var(--border-subtle);
1298 border-radius: var(--radius-sm);
1299 overflow: hidden;
1300 margin-bottom: var(--space-3);
1301 transition: border-color 0.15s;
1302 &:hover { border-color: var(--border-default); }
1303 }
1304
1305 .isd-sb-hd {
1306 display: flex;
1307 align-items: center;
1308 gap: var(--space-2);
1309 padding: var(--space-2) var(--space-3);
1310 border-bottom: 1px solid var(--border-subtle);
1311 background: var(--bg-overlay);
1312 }
1313
1314 .isd-sb-title {
1315 font-size: 10px;
1316 font-weight: 700;
1317 color: var(--text-muted);
1318 text-transform: uppercase;
1319 letter-spacing: 0.08em;
1320 flex: 1;
1321 }
1322
1323 .isd-sb-bd { padding: var(--space-2) var(--space-3); }
1324
1325 .isd-sb-assignee {
1326 display: flex;
1327 align-items: center;
1328 gap: 8px;
1329 padding: 3px 0;
1330 font-size: 12px;
1331 color: var(--text-secondary);
1332 }
1333
1334 .isd-sb-label {
1335 display: inline-flex;
1336 align-items: center;
1337 gap: 5px;
1338 padding: 2px 8px;
1339 border-radius: 10px;
1340 font-size: 11px;
1341 border: 1px solid;
1342 white-space: nowrap;
1343 margin: 2px;
1344 }
1345
1346 .isd-sb-label-dot {
1347 width: 8px;
1348 height: 8px;
1349 border-radius: 50%;
1350 flex-shrink: 0;
1351 }
1352
1353 .isd-sb-commit {
1354 display: flex;
1355 align-items: flex-start;
1356 gap: var(--space-2);
1357 padding: var(--space-2) 0;
1358 border-bottom: 1px solid var(--border-subtle);
1359 &:last-child { border-bottom: none; }
1360 }
1361
1362 .isd-sb-commit-hash {
1363 font-family: var(--font-mono);
1364 font-size: 10px;
1365 color: var(--color-accent-link);
1366 flex-shrink: 0;
1367 }
1368
1369 .isd-sb-commit-msg {
1370 font-size: 11px;
1371 color: var(--text-secondary);
1372 flex: 1;
1373 min-width: 0;
1374 overflow: hidden;
1375 text-overflow: ellipsis;
1376 white-space: nowrap;
1377 }
1378
1379 .isd-sb-proposal {
1380 display: flex;
1381 align-items: center;
1382 gap: var(--space-2);
1383 padding: 4px 0;
1384 font-size: 12px;
1385 color: var(--text-secondary);
1386 text-decoration: none;
1387 border-bottom: 1px solid var(--border-subtle);
1388 &:last-child { border-bottom: none; }
1389 &:hover { color: var(--color-accent-link); text-decoration: none; }
1390 }
1391
1392 .isd-sb-prop-num {
1393 font-family: var(--font-mono);
1394 font-size: 11px;
1395 color: var(--text-muted);
1396 flex-shrink: 0;
1397 }
1398
1399 .isd-signal-badge {
1400 display: inline-flex;
1401 align-items: center;
1402 gap: 3px;
1403 font-size: 10px;
1404 font-family: var(--font-mono);
1405 font-weight: 600;
1406 border-radius: 10px;
1407 padding: 0 6px;
1408 height: 18px;
1409 vertical-align: middle;
1410
1411 &--hot {
1412 color: var(--color-accent);
1413 background: color-mix(in srgb, var(--color-accent) 10%, transparent);
1414 border: 1px solid color-mix(in srgb, var(--color-accent) 25%, transparent);
1415 }
1416 &--cold {
1417 color: var(--text-muted);
1418 background: var(--bg-overlay);
1419 border: 1px solid var(--border-subtle);
1420 }
1421 &--rising {
1422 color: var(--color-warning);
1423 background: color-mix(in srgb, var(--color-warning) 10%, transparent);
1424 border: 1px solid color-mix(in srgb, var(--color-warning) 25%, transparent);
1425 }
1426 }
1427
1428 // ── CLI snippet (detail sidebar) ──────────────────────────────────────────────
1429
1430 .isd-cli-card {
1431 background: var(--bg-overlay);
1432 border: 1px solid var(--border-subtle);
1433 border-radius: var(--radius-sm);
1434 overflow: hidden;
1435 margin-bottom: var(--space-3);
1436 }
1437
1438 .isd-cli-hd {
1439 display: flex;
1440 align-items: center;
1441 justify-content: space-between;
1442 padding: var(--space-2) var(--space-3);
1443 border-bottom: 1px solid var(--border-subtle);
1444 }
1445
1446 .isd-cli-label {
1447 font-size: 10px;
1448 font-weight: 700;
1449 color: var(--text-muted);
1450 text-transform: uppercase;
1451 letter-spacing: 0.08em;
1452 }
1453
1454 .isd-cli-copy {
1455 font-size: 10px;
1456 color: var(--text-muted);
1457 background: none;
1458 border: none;
1459 cursor: pointer;
1460 padding: 2px 4px;
1461 border-radius: 3px;
1462 transition: color var(--transition-fast), background var(--transition-fast);
1463 &:hover { color: var(--text-primary); background: var(--bg-surface); }
1464 &.copied { color: var(--color-success); }
1465 }
1466
1467 .isd-cli-bd {
1468 padding: var(--space-2) var(--space-3);
1469 overflow-x: auto;
1470 }
1471
1472 // hljs token overrides inside CLI card
1473 .isd-cli-bd {
1474 .hljs { background: transparent; }
1475 .hljs-keyword { color: var(--color-accent); }
1476 .hljs-string { color: var(--color-success); }
1477 .hljs-comment { color: var(--text-muted); font-style: italic; }
1478 .hljs-built_in { color: var(--color-warning); }
1479 .hljs-number { color: var(--color-orange); }
1480 }
1481
1482 .isd-cli-line {
1483 display: block;
1484 font-family: var(--font-mono);
1485 font-size: 11px;
1486 color: var(--text-secondary);
1487 line-height: 1.6;
1488 white-space: pre;
1489 }
1490
1491 // ── Act panel tabs ────────────────────────────────────────────────────────────
1492
1493 .isd-act-tabs {
1494 display: flex;
1495 border-bottom: 1px solid var(--border-subtle);
1496 background: var(--bg-overlay);
1497 }
1498
1499 .isd-act-tab {
1500 display: inline-flex;
1501 align-items: center;
1502 gap: 5px;
1503 padding: 10px var(--space-4);
1504 font-size: 12px;
1505 color: var(--text-muted);
1506 text-decoration: none;
1507 border-bottom: 2px solid transparent;
1508 transition: color var(--transition-fast), border-color var(--transition-fast);
1509 cursor: pointer;
1510 background: none;
1511 border-top: none;
1512 border-left: none;
1513 border-right: none;
1514
1515 &:hover { color: var(--text-secondary); text-decoration: none; }
1516 &.isd-act-tab--active {
1517 color: var(--text-primary);
1518 border-bottom-color: var(--color-accent);
1519 font-weight: var(--weight-semibold);
1520 }
1521 }
1522
1523 .isd-act-tab-ct {
1524 background: var(--bg-surface);
1525 border: 1px solid var(--border-subtle);
1526 border-radius: var(--radius-full);
1527 font-size: 10px;
1528 padding: 0 5px;
1529 color: var(--text-muted);
1530 font-family: var(--font-mono);
1531 }
1532
1533 // ── Release tracking card ─────────────────────────────────────────────────────
1534
1535 .isd-release-card {
1536 background: transparent;
1537 border: 1px solid var(--border-subtle);
1538 border-radius: var(--radius-sm);
1539 overflow: hidden;
1540 margin-bottom: var(--space-4);
1541 transition: border-color 0.15s;
1542 &:hover { border-color: var(--border-default); }
1543 }
1544
1545 .isd-release-hd {
1546 display: flex;
1547 align-items: center;
1548 gap: var(--space-2);
1549 padding: var(--space-3) var(--space-4);
1550 border-bottom: 1px solid var(--border-subtle);
1551 background: var(--bg-overlay);
1552 }
1553
1554 .isd-release-title {
1555 font-size: 10px;
1556 font-weight: 700;
1557 color: var(--text-muted);
1558 text-transform: uppercase;
1559 letter-spacing: 0.08em;
1560 flex: 1;
1561 }
1562
1563 .isd-release-status {
1564 display: inline-flex;
1565 align-items: center;
1566 gap: 4px;
1567 font-size: 10px;
1568 font-weight: 600;
1569 border-radius: 10px;
1570 padding: 0 7px;
1571 height: 18px;
1572
1573 &--unreleased {
1574 color: var(--color-warning);
1575 background: color-mix(in srgb, var(--color-warning) 10%, transparent);
1576 border: 1px solid color-mix(in srgb, var(--color-warning) 25%, transparent);
1577 }
1578 &--released {
1579 color: var(--color-success);
1580 background: color-mix(in srgb, var(--color-success) 10%, transparent);
1581 border: 1px solid color-mix(in srgb, var(--color-success) 25%, transparent);
1582 }
1583 &--pending {
1584 color: var(--text-muted);
1585 background: var(--bg-overlay);
1586 border: 1px solid var(--border-subtle);
1587 }
1588 }
1589
1590 .isd-rel-commit {
1591 display: flex;
1592 flex-direction: column;
1593 gap: 2px;
1594 padding: var(--space-2) var(--space-3);
1595 border-bottom: 1px solid var(--border-subtle);
1596 &:last-child { border-bottom: none; }
1597 }
1598
1599 .isd-rel-commit-hash {
1600 font-family: var(--font-mono);
1601 font-size: 10px;
1602 font-weight: 600;
1603 color: var(--color-accent-link);
1604 flex-shrink: 0;
1605 }
1606
1607 .isd-rel-commit-msg {
1608 font-size: 11px;
1609 color: var(--text-secondary);
1610 flex: 1;
1611 min-width: 0;
1612 overflow: hidden;
1613 text-overflow: ellipsis;
1614 white-space: nowrap;
1615 padding-left: 2px;
1616 }
1617
1618 .isd-rel-meta {
1619 display: flex;
1620 align-items: center;
1621 gap: 5px;
1622 font-size: 10px;
1623 color: var(--text-muted);
1624 padding-left: 2px;
1625 }
1626
1627 .isd-rel-sep { color: var(--border-default); }
1628
1629 .isd-rel-version {
1630 font-family: var(--font-mono);
1631 font-size: 11px;
1632 font-weight: 600;
1633 color: var(--color-success);
1634 flex-shrink: 0;
1635 }
1636
1637 .isd-rel-next {
1638 display: flex;
1639 align-items: center;
1640 gap: 6px;
1641 padding: 5px 8px;
1642 background: rgba(255,255,255,0.02);
1643 border: 1px dashed rgba(255,255,255,0.08);
1644 border-radius: var(--radius-sm);
1645 margin-top: 2px;
1646 }
1647
1648 .isd-rel-next-label {
1649 font-size: 10px;
1650 color: var(--text-muted);
1651 text-transform: uppercase;
1652 letter-spacing: 0.06em;
1653 font-weight: 600;
1654 }
1655
1656 .isd-rel-next-tag {
1657 font-family: var(--font-mono);
1658 font-size: 11px;
1659 font-weight: 600;
1660 color: var(--text-secondary);
1661 }
1662
1663 .isd-rel-next-hint {
1664 font-size: 10px;
1665 color: var(--text-muted);
1666 font-style: italic;
1667 }
1668
1669 .isd-release-none {
1670 font-size: 12px;
1671 color: var(--text-muted);
1672 font-style: italic;
1673 }
1674
1675 .isd-rel-tag {
1676 font-family: var(--font-mono);
1677 font-size: 11px;
1678 font-weight: 600;
1679 color: var(--color-success);
1680 background: color-mix(in srgb, var(--color-success) 10%, transparent);
1681 border: 1px solid color-mix(in srgb, var(--color-success) 25%, transparent);
1682 border-radius: 4px;
1683 padding: 1px 6px;
1684 }
1685
1686 .isd-rel-landed-in {
1687 font-size: 10px;
1688 color: var(--text-muted);
1689 }
1690
1691 // ═══════════════════════════════════════════════════════════════════════════════
1692 // Intelligence panel (.isd-ic-*) — Singularity Mode
1693 // ═══════════════════════════════════════════════════════════════════════════════
1694
1695 $intel-low: var(--color-accent);
1696 $intel-mid: var(--color-orange);
1697 $intel-high: var(--color-danger);
1698
1699 .isd-panel--intel {
1700 .isd-panel-bd { padding: 0; }
1701 }
1702
1703 .isd-ic-section {
1704 border-bottom: 1px solid var(--border-subtle);
1705
1706 &:last-child { border-bottom: none; }
1707 &--blast { background: rgba(255,255,255,0.01); }
1708 &--churn { background: rgba(255,255,255,0.005); }
1709 &--issues { background: rgba(var(--color-accent-raw, 56,139,253), 0.03); }
1710 }
1711
1712 .isd-ic-section-label {
1713 font-size: 9px;
1714 font-weight: 700;
1715 text-transform: uppercase;
1716 letter-spacing: 0.08em;
1717 color: var(--text-muted);
1718 }
1719
1720 // Blast radius hero
1721 .isd-ic-blast-num {
1722 font-size: 22px;
1723 font-family: var(--font-mono);
1724 font-weight: 800;
1725 line-height: 1;
1726
1727 &--direct { color: $intel-low; }
1728 &--cross { color: $intel-mid; }
1729 }
1730
1731 .isd-ic-blast-sep {
1732 font-size: 10px;
1733 color: var(--text-muted);
1734 font-weight: 500;
1735 letter-spacing: 0.02em;
1736 }
1737
1738 .isd-ic-blast-dot {
1739 font-size: 14px;
1740 color: var(--border-default);
1741 margin: 0 1px;
1742 }
1743
1744 // Gravity bar
1745 .isd-ic-grav-track {
1746 background: var(--border-subtle);
1747 border-radius: 3px;
1748 }
1749
1750 .isd-ic-grav-fill {
1751 height: 100%;
1752 border-radius: 2px;
1753 min-width: 3px;
1754 transition: width 0.5s ease;
1755
1756 &--low { background: linear-gradient(to right, rgba(#{var(--color-accent)}, 0.4), $intel-low); }
1757 &--mid { background: linear-gradient(to right, rgba(#{var(--color-orange)}, 0.5), $intel-mid); }
1758 &--high { background: linear-gradient(to right, $intel-mid, $intel-high); }
1759 }
1760
1761 .isd-ic-grav-label {
1762 font-family: var(--font-mono);
1763 font-size: 10px;
1764 font-weight: 700;
1765 white-space: nowrap;
1766
1767 &--low { color: $intel-low; }
1768 &--mid { color: $intel-mid; }
1769 &--high { color: $intel-high; }
1770 }
1771
1772 // Co-symbol chips
1773 .isd-ic-co-label {
1774 font-size: 10px;
1775 color: var(--text-muted);
1776 white-space: nowrap;
1777 margin-right: 2px;
1778 }
1779
1780 .isd-ic-co-sym {
1781 font-size: 10px;
1782 font-family: var(--font-mono);
1783 color: var(--text-secondary);
1784 background: var(--bg-surface);
1785 border: 1px solid var(--border-subtle);
1786 border-radius: 4px;
1787 padding: 2px 6px;
1788 white-space: nowrap;
1789 max-width: 150px;
1790 overflow: hidden;
1791 text-overflow: ellipsis;
1792 cursor: default;
1793
1794 &--more { color: var(--text-muted); border-style: dashed; }
1795 &:hover { background: var(--bg-overlay); border-color: var(--border-default); color: var(--text-primary); }
1796 }
1797
1798 // Churn section
1799 .isd-ic-churn-line { font-size: 12px; color: var(--text-secondary); line-height: 1.5; }
1800
1801 .isd-ic-churn-n {
1802 font-family: var(--font-mono);
1803 font-size: 16px;
1804 font-weight: 800;
1805 color: var(--text-primary);
1806 line-height: 1;
1807 }
1808
1809 .isd-ic-churn-txt { font-size: 11px; color: var(--text-secondary); }
1810 .isd-ic-churn-dot { font-size: 13px; color: var(--border-default); margin: 0 1px; }
1811 .isd-ic-churn-ts { font-family: var(--font-mono); font-size: 11px; color: var(--text-muted); }
1812 .isd-ic-churn-author { font-size: 11px; font-weight: 700; color: var(--text-secondary); }
1813
1814 // Sparkline
1815 .isd-ic-spark-bar {
1816 display: block;
1817 width: 8px;
1818 flex: none;
1819 border-radius: 2px 2px 0 0;
1820 background: $intel-low;
1821 opacity: 0.85;
1822 transition: opacity 0.15s;
1823 &:hover { opacity: 1; }
1824 }
1825
1826 .isd-ic-spark-gap { display: block; width: 8px; flex: none; }
1827
1828 // Open issues
1829 .isd-ic-issue-count {
1830 font-family: var(--font-mono);
1831 font-size: 11px;
1832 font-weight: 700;
1833 color: var(--text-secondary);
1834 }
1835
1836 .isd-ic-issue-badge {
1837 font-size: 11px;
1838 font-family: var(--font-mono);
1839 font-weight: 600;
1840 padding: 2px 8px;
1841 border-radius: 10px;
1842 border: 1px solid var(--border-subtle);
1843 background: var(--bg-surface);
1844 color: $intel-low;
1845 text-decoration: none;
1846 transition: background 0.1s, border-color 0.1s;
1847
1848 &:hover { background: rgba(#{var(--color-accent)}, 0.1); border-color: $intel-low; text-decoration: none; }
1849
1850 &--current {
1851 background: rgba(#{var(--color-accent)}, 0.14);
1852 border-color: $intel-low;
1853 cursor: default;
1854 pointer-events: none;
1855 }
1856 }
1857
1858 .isd-ic-empty-hint {
1859 font-size: 11px;
1860 color: var(--text-muted);
1861 font-style: italic;
1862 }
1863
1864 // ═══════════════════════════════════════════════════════════════════════════════
1865 // New issue page (.isn-*)
1866 // ═══════════════════════════════════════════════════════════════════════════════
1867
1868 .isn-card {
1869 padding: 0;
1870 overflow: hidden;
1871 background: transparent;
1872 border: 1px solid var(--border-subtle);
1873 border-radius: var(--radius-sm);
1874 }
1875
1876 .isn-card-header {
1877 border-bottom: 1px solid var(--border-subtle);
1878 background: var(--bg-overlay);
1879 }
1880
1881 .isn-card-title {
1882 font-size: 15px;
1883 font-weight: var(--weight-semibold);
1884 color: var(--text-primary);
1885 }
1886
1887 .isn-back-link {
1888 font-size: 12px;
1889 color: var(--text-muted);
1890 text-decoration: none;
1891 &:hover { color: var(--text-primary); }
1892 }
1893
1894 .isn-intro {
1895 font-size: 13px;
1896 color: var(--text-secondary);
1897 line-height: 1.6;
1898 margin: 0;
1899 }
1900
1901 .isn-section-icon {
1902 font-size: 13px;
1903 color: var(--text-muted);
1904 font-family: var(--font-mono);
1905 }
1906
1907 .isn-section-title {
1908 font-size: 13px;
1909 font-weight: var(--weight-semibold);
1910 color: var(--text-primary);
1911 }
1912
1913 .isn-cli-block {
1914 background: var(--bg-overlay);
1915 border: 1px solid var(--border-subtle);
1916 border-radius: 8px;
1917 padding: var(--space-3);
1918 }
1919
1920 .isn-cli-num {
1921 display: flex;
1922 align-items: center;
1923 justify-content: center;
1924 width: 20px;
1925 height: 20px;
1926 border-radius: 50%;
1927 background: var(--color-accent-link);
1928 color: #fff;
1929 font-size: 10px;
1930 font-weight: var(--weight-semibold);
1931 flex-shrink: 0;
1932 margin-top: 2px;
1933 }
1934
1935 .isn-cli-label { font-size: 12px; color: var(--text-secondary); }
1936
1937 .isn-cli-cmd {
1938 display: block;
1939 font-size: 11px;
1940 font-family: var(--font-mono);
1941 color: var(--text-primary);
1942 background: var(--bg-base);
1943 border: 1px solid var(--border-subtle);
1944 border-radius: 5px;
1945 padding: var(--space-2) var(--space-3);
1946 overflow-x: auto;
1947 white-space: pre-wrap;
1948 word-break: break-all;
1949 line-height: 1.6;
1950 }
1951
1952 .isn-mcp-desc {
1953 font-size: 13px;
1954 color: var(--text-secondary);
1955 line-height: 1.6;
1956 margin: 0;
1957
1958 code {
1959 font-family: var(--font-mono);
1960 font-size: 11px;
1961 background: var(--bg-overlay);
1962 padding: 1px 5px;
1963 border-radius: 3px;
1964 border: 1px solid var(--border-subtle);
1965 }
1966 }
1967
1968 .isn-mcp-link {
1969 font-size: 13px;
1970 color: var(--color-accent-link);
1971 text-decoration: none;
1972 &:hover { text-decoration: underline; }
1973 }
1974
1975 .isn-anatomy {
1976 border: 1px solid var(--border-subtle);
1977 border-radius: 8px;
1978 overflow: hidden;
1979 }
1980
1981 .isn-anatomy-row {
1982 font-size: 12px;
1983 border-bottom: 1px solid var(--border-subtle);
1984 &:last-child { border-bottom: none; }
1985 }
1986
1987 .isn-anatomy-key {
1988 font-family: var(--font-mono);
1989 font-size: 11px;
1990 color: var(--color-accent-link);
1991 min-width: 64px;
1992 flex-shrink: 0;
1993 padding-top: 1px;
1994 }
1995
1996 .isn-anatomy-val {
1997 color: var(--text-secondary);
1998 line-height: 1.5;
1999
2000 code {
2001 font-family: var(--font-mono);
2002 font-size: 11px;
2003 background: var(--bg-overlay);
2004 padding: 1px 5px;
2005 border-radius: 3px;
2006 border: 1px solid var(--border-subtle);
2007 }
2008 }
2009
2010 .isn-sb-section {
2011 background: var(--bg-card, var(--bg-surface));
2012 border: 1px solid var(--border-default);
2013 border-radius: 8px;
2014 padding: var(--space-3);
2015 }
2016
2017 .isn-sb-header {
2018 font-size: 12px;
2019 font-weight: var(--weight-semibold);
2020 color: var(--text-secondary);
2021 text-transform: uppercase;
2022 letter-spacing: 0.05em;
2023 }
2024
2025 .isn-sb-link {
2026 font-size: 13px;
2027 color: var(--color-accent-link);
2028 text-decoration: none;
2029 padding: 3px 0;
2030 &:hover { text-decoration: underline; }
2031 }
2032
2033 .isn-sb-body {
2034 font-size: 12px;
2035 color: var(--text-muted);
2036 line-height: 1.6;
2037 margin: 0;
2038 }
File History 1 commit
sha256:a34090cc4a394a78bd72cbbe34b08cc59525141e19135b6c0ab154f10611b9ef debug(push/stream): instrument O-frame decode path with INF… Sonnet 4.6 patch 121 days ago