.crypto-sidebar { display: flex; flex-direction: column; height: 100%; background: #fafafa; .sidebar-tabs { display: flex; border-bottom: 1px solid #eee; .tab { flex: 1; padding: 8px 0; font-size: 0.75rem; font-weight: 600; color: #999; background: transparent; border: none; border-bottom: 2px solid transparent; cursor: pointer; transition: color 0.15s, border-color 0.15s; &:hover { color: #666; } &.active { color: #F7931A; border-bottom-color: #F7931A; } } } .sidebar-search { padding: 8px; border-bottom: 1px solid #eee; input { width: 100%; padding: 6px 10px; font-size: 0.813rem; border: 1px solid #ddd; border-radius: 4px; outline: none; &:focus { border-color: #F7931A; } } } .sidebar-list { flex: 1; overflow-y: auto; } .sidebar-item { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 8px 12px; border: 1px solid transparent; border-bottom: 1px solid #f0f0f0; background: transparent; cursor: pointer; text-align: left; transition: background 0.15s; &:hover { background: #f0f0f0; } &.active { background: #fff3e0; border-left: 3px solid #F7931A; } .item-info { display: flex; flex-direction: column; gap: 1px; .item-kor-name { font-weight: 600; font-size: 0.813rem; color: #222; } .item-symbol { font-size: 0.688rem; color: #999; } } .item-price { display: flex; flex-direction: column; align-items: flex-end; gap: 1px; .price { font-size: 0.813rem; font-weight: 600; font-variant-numeric: tabular-nums; } .change { font-size: 0.688rem; font-variant-numeric: tabular-nums; } .up { color: hsl(var(--crypto-up)); } .down { color: hsl(var(--crypto-down)); } .neutral { color: hsl(var(--crypto-neutral)); } } } .sidebar-empty { padding: 24px; text-align: center; color: #999; font-size: 0.813rem; } } // 시세 변동 보더 플래시 애니메이션 @keyframes flash-border-up { 0% { border-color: hsl(var(--crypto-up)); box-shadow: inset 0 0 0 1px hsl(var(--crypto-up) / 0.3); } 100% { border-color: transparent; box-shadow: none; } } @keyframes flash-border-down { 0% { border-color: hsl(var(--crypto-down)); box-shadow: inset 0 0 0 1px hsl(var(--crypto-down) / 0.3); } 100% { border-color: transparent; box-shadow: none; } } .sidebar-item.flash-up { animation: flash-border-up 0.6s ease-out; } .sidebar-item.flash-down { animation: flash-border-down 0.6s ease-out; }