// ───────────────────────────────────────────────────────────────────────────── // Dependency list page (.deps-*) // ───────────────────────────────────────────────────────────────────────────── .deps-page { max-width: 900px; margin: 0 auto; padding: var(--space-4); } .deps-header { border-bottom: 1px solid var(--border-subtle); padding-bottom: var(--space-4); margin-bottom: var(--space-6); } .deps-header-inner { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-4); } .deps-title { display: flex; align-items: center; gap: 8px; font-size: 18px; font-weight: 700; margin: 0 0 var(--space-2) 0; svg { opacity: 0.6; } } .deps-sub { font-size: 12px; color: var(--text-muted); margin: 0; } .deps-empty { display: flex; flex-direction: column; align-items: center; gap: var(--space-3); padding: var(--space-10) 0; color: var(--text-muted); font-size: 13px; svg { opacity: 0.3; } } .deps-section { margin-bottom: var(--space-6); } .deps-section-title { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.07em; color: var(--text-muted); margin-bottom: var(--space-3); } .deps-node-list { display: flex; flex-direction: column; gap: 1px; } .deps-node { display: flex; align-items: flex-start; gap: 10px; padding: 10px 14px; border: 1px solid var(--border-subtle); border-radius: 7px; background: var(--bg-base); &:hover { background: var(--bg-surface); } } .deps-node-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; margin-top: 3px; &.deps-node-dot--local { background: var(--color-accent); opacity: 0.8; } &.deps-node-dot--cross { background: transparent; border: 2px solid var(--color-purple); border-radius: 2px; transform: rotate(45deg); width: 9px; height: 9px; } } .deps-node-body { display: flex; align-items: center; gap: 8px; flex: 1; min-width: 0; } .deps-node-id { font-family: var(--font-mono); font-size: 12px; color: var(--text-primary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .deps-node-count { font-size: 10px; color: var(--text-muted); font-family: var(--font-mono); white-space: nowrap; } .deps-node-repo { font-size: 11px; color: var(--color-purple); font-weight: 600; white-space: nowrap; } .deps-node-edges { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; width: 100%; padding-left: 20px; } .deps-edge-chip { display: inline-flex; align-items: center; gap: 4px; font-size: 10px; font-family: var(--font-mono); padding: 2px 6px; border-radius: 3px; max-width: 280px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; &.deps-edge-chip--co_change { background: rgba(79, 142, 247, 0.08); color: var(--color-accent); border: 1px solid rgba(79, 142, 247, 0.20); } &.deps-edge-chip--cross_repo { background: rgba(188, 140, 255, 0.08); color: var(--color-purple); border: 1px solid rgba(188, 140, 255, 0.20); } } .deps-edge-weight { font-size: 9px; opacity: 0.7; } .deps-edge-more { font-size: 10px; color: var(--text-muted); padding: 2px 4px; } // ───────────────────────────────────────────────────────────────────────────── // Dependency graph page (.dg-*) // ───────────────────────────────────────────────────────────────────────────── .dg-layout { display: flex; height: calc(100vh - var(--nav-height, 56px)); overflow: hidden; } .dg-sidebar { width: 240px; flex-shrink: 0; border-right: 1px solid var(--border-subtle); background: var(--bg-surface); display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-4); overflow-y: auto; } .dg-sidebar-title { display: flex; align-items: center; gap: 7px; font-size: 13px; font-weight: 700; color: var(--text-primary); svg { opacity: 0.6; } } .dg-stats { display: flex; flex-wrap: wrap; gap: 8px; } .dg-stat { font-size: 11px; color: var(--text-muted); strong { color: var(--text-primary); } } .dg-legend { display: flex; flex-direction: column; gap: 6px; padding: var(--space-2) 0; border-top: 1px solid var(--border-subtle); border-bottom: 1px solid var(--border-subtle); } .dg-legend-row { display: flex; align-items: center; gap: 8px; font-size: 11px; color: var(--text-muted); } .dg-controls { display: flex; gap: 4px; } .dg-filter { font-size: 11px; color: var(--text-secondary); } .dg-filter-label { display: flex; align-items: center; gap: 6px; cursor: pointer; } .dg-filter-cb { accent-color: var(--color-accent); } .dg-node-panel { flex: 1; border: 1px solid var(--border-subtle); border-radius: 7px; padding: var(--space-3); background: var(--bg-overlay); display: flex; flex-direction: column; gap: 6px; } .dg-node-panel-name { font-size: 13px; font-weight: 700; color: var(--text-primary); } .dg-node-panel-meta { display: flex; flex-direction: column; gap: 3px; font-size: 11px; color: var(--text-muted); code { font-family: var(--font-mono); color: var(--text-secondary); font-size: 10px; } } .dg-detail-row { display: block; } .dg-node-panel-links { display: flex; flex-direction: column; gap: 4px; margin-top: var(--space-1); } .dg-detail-link { font-size: 11px; color: var(--color-accent-link); text-decoration: none; &:hover { text-decoration: underline; } } .dg-list-link { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; color: var(--text-muted); text-decoration: none; margin-top: auto; &:hover { color: var(--text-primary); } } .dg-canvas-wrap { flex: 1; overflow: hidden; background: var(--bg-base); position: relative; } .dg-canvas { display: block; width: 100%; height: 100%; } // Selected node highlight .dg-node[data-selected="true"] circle, .dg-node[data-selected="true"] polygon { stroke: var(--text-primary) !important; stroke-width: 2.5 !important; filter: drop-shadow(0 0 6px rgba(255,255,255,0.3)); } // ───────────────────────────────────────────────────────────────────────────── // Symbol search page (.ss-*) // ───────────────────────────────────────────────────────────────────────────── .ss-page { max-width: 800px; margin: 0 auto; padding: var(--space-6) var(--space-4); } .ss-hero { margin-bottom: var(--space-5); } .ss-hero-eyebrow { display: flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: var(--text-muted); margin-bottom: var(--space-2); svg { opacity: 0.5; } } .ss-hero-title { font-size: 22px; font-weight: 700; margin: 0; } .ss-form { margin-bottom: var(--space-5); } .ss-form-row { display: flex; gap: 8px; align-items: center; } .ss-input { flex: 1; padding: 10px 14px; background: var(--bg-surface); border: 1px solid var(--border-default); border-radius: 7px; color: var(--text-primary); font-size: 14px; font-family: var(--font-mono); &:focus { outline: none; border-color: var(--color-accent); box-shadow: 0 0 0 3px rgba(79, 142, 247, 0.12); } } .ss-form-hint { font-size: 11px; color: var(--text-muted); margin: 6px 0 0 0; } .ss-results-header { font-size: 13px; color: var(--text-muted); margin-bottom: var(--space-3); } .ss-results-count { font-weight: 600; color: var(--text-primary); } .ss-results-query { font-family: var(--font-mono); font-size: 12px; color: var(--text-secondary); } .ss-result-list { display: flex; flex-direction: column; gap: 1px; } .ss-result { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border: 1px solid var(--border-subtle); border-radius: 7px; background: var(--bg-base); text-decoration: none; &:hover { background: var(--bg-surface); } } .ss-result-repo { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; font-weight: 600; color: var(--text-muted); min-width: 80px; flex-shrink: 0; svg { opacity: 0.5; } } .ss-result-addr { font-family: var(--font-mono); font-size: 12px; color: var(--text-primary); flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .ss-result-meta { display: flex; align-items: center; gap: 6px; flex-shrink: 0; } .ss-result-sep { color: var(--text-muted); font-size: 11px; } .ss-result-op { font-size: 10px; font-weight: 600; font-family: var(--font-mono); padding: 1px 5px; border-radius: 3px; &.ss-result-op--add { background: rgba(63,185,80,0.12); color: var(--color-success); } &.ss-result-op--modify { background: rgba(79,142,247,0.10); color: var(--color-accent); } &.ss-result-op--delete { background: rgba(248,81,73,0.10); color: var(--color-danger); } } .ss-result-cochange { display: inline-flex; align-items: center; gap: 3px; font-size: 11px; font-family: var(--font-mono); color: var(--text-muted); svg { opacity: 0.5; } } .ss-empty { display: flex; flex-direction: column; align-items: center; gap: var(--space-3); padding: var(--space-10) 0; color: var(--text-muted); font-size: 13px; text-align: center; svg { opacity: 0.3; } code { font-family: var(--font-mono); color: var(--text-secondary); } } .ss-empty-hint { font-size: 12px; color: var(--text-muted); margin: 0; }